sairate 2cd753d3d9 feat(第7讲 字母卡牌): 实现记忆游戏并添加开始界面
- 新增 jiyi.py 文件,实现字母翻牌记忆游戏功能
- 添加 youxijiemian.py 文件,创建游戏开始界面
- 使用 turtle 和 tkinter 模块分别实现游戏和界面
- 支持选择不同难度的游戏模式
2025-06-29 09:06:19 +08:00

48 lines
1.4 KiB
Python

# 按下's'开始录制,按下'q'停止录制,文件存为'pyaudio.wav'
import pyaudio
import wave
import keyboard
# 从麦克风录制音频并保存到指定文件
# 创建 PyAudio 对象
p = pyaudio.PyAudio()
# 打开音频流,设置格式、声道数、采样率等参数
stream = p.open(format=pyaudio.paInt16, channels=1, rate=16000, input=True, frames_per_buffer=1024)
# 创建一个空列表用于存储录制的音频数据
frames = []
# 打印提示信息,表示开始录制
print("Press 's' to start recording...")
# 等待用户按下 's' 键开始录制
keyboard.wait('s')
# 打印提示信息,表示开始录制
print("Recording...")
# 开始录制
while True:
# 从音频流中读取 1024 个数据样本
data = stream.read(1024)
# 将数据添加到 frames 列表中
frames.append(data)
# 检查是否按下 'q' 键结束录制
if keyboard.is_pressed('q'):
break
# 打印提示信息,表示录制已停止
print("Recording stopped.")
# 停止音频流
stream.stop_stream()
# 关闭音频流
stream.close()
# 终止 PyAudio 对象
p.terminate()
# 打开文件,以写入模式打开
wf = wave.open("pyaudio.wav", 'wb')
# 设置音频的声道数、采样宽度和采样率
wf.setnchannels(1)
wf.setsampwidth(p.get_sample_size(pyaudio.paInt16))
wf.setframerate(16000)
# 将 frames 列表中的所有数据连接成一个字节串,并写入文件
wf.writeframes(b''.join(frames))
# 关闭文件
wf.close()
print("Done")