用python写一个能在笔记本电脑实时录音和播放的软件
import pyaudio
import wave
import threading
import queue
# 音频参数设置
CHUNK = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 44100
RECORD_SECONDS = 5 # 每次录音时长,可按需调整
# 用于存放录音数据的队列
audio_queue = queue.Queue()
# 录音函数
def record_audio():
audio = pyaudio.PyAudio()
stream = audio.open(format=FORMAT,
channels=CHANNELS,
rate=RATE,
input=True,
frames_per_buffer=CHUNK)
print("开始录音...")
for _ in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
data = stream.read(CHUNK)
audio_queue.put(data)
print("录音结束")
stream.stop_stream()
stream.close()
audio.terminate()
# 播放函数
def play_audio():
audio = pyaudio.PyAudio()
stream = audio.open(format=FORMAT,
channels=CHANNELS,
rate=RATE,
output=True,
frames_per_buffer=CHUNK)
print("开始播放...")
while not audio_queue.empty():
data = audio_queue.get()
stream.write(data)
print("播放结束")
stream.stop_stream()
stream.close()
audio.terminate()
if __name__ == "__main__":
record_thread = threading.Thread(target=record_audio)
play_thread = threading.Thread(target=play_audio)
record_thread.start()
record_thread.join() # 等待录音线程完成录音
play_thread.start()
play_thread.join() # 等待播放线程完成播放