要实现“播放系统录音”的功能,可以使用以下代码示例:
import pyaudio
import wave
# 定义参数
chunk = 1024
sample_format = pyaudio.paInt16
channels = 2
fs = 44100
# 录音
def record_audio(output_filename, record_seconds):
p = pyaudio.PyAudio()
stream = p.open(format=sample_format,
channels=channels,
rate=fs,
frames_per_buffer=chunk,
input=True)
frames = []
for i in range(0, int(fs / chunk * record_seconds)):
data = stream.read(chunk)
frames.append(data)
stream.stop_stream()
stream.close()
p.terminate()
wf = wave.open(output_filename, 'wb')
wf.setnchannels(channels)
wf.setsampwidth(p.get_sample_size(sample_format))
wf.setframerate(fs)
wf.writeframes(b''.join(frames))
wf.close()
# 播放录音
def play_audio(input_filename):
wf = wave.open(input_filename, 'rb')
p = pyaudio.PyAudio()
stream = p.open(format=p.get_format_from_width(wf.getsampwidth()),
channels=wf.getnchannels(),
rate=wf.getframerate(),
output=True)
data = wf.readframes(chunk)
while data:
stream.write(data)
data = wf.readframes(chunk)
stream.stop_stream()
stream.close()
p.terminate()
# 示例用法
output_filename = 'output.wav'
record_seconds = 5
record_audio(output_filename, record_seconds)
input_filename = 'output.wav'
play_audio(input_filename)
以上代码使用了pyaudio
库来录制和播放音频。首先定义了一些参数,如采样率、声道数等。然后,record_audio
函数使用pyaudio
进行录音,并将录音数据保存到指定的输出文件中。play_audio
函数读取指定的录音文件,并使用pyaudio
进行播放。
示例用法中,首先调用record_audio
函数录制5秒的音频,并保存到output.wav
文件中。然后,调用play_audio
函数播放output.wav
文件的音频。
请注意,运行此代码需要安装pyaudio
库。可以使用pip install pyaudio
命令进行安装。在某些操作系统上,可能还需要安装额外的依赖项(如portaudio
)。