- 新增 jiyi.py 文件,实现字母翻牌记忆游戏功能 - 添加 youxijiemian.py 文件,创建游戏开始界面 - 使用 turtle 和 tkinter 模块分别实现游戏和界面 - 支持选择不同难度的游戏模式
48 lines
1.4 KiB
Python
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") |