使用Python和PyAudio录制音频文件的方法
发布时间:2024-01-09 09:12:04
要使用Python和PyAudio录制音频文件,首先需要安装PyAudio库。可以使用pip命令来安装PyAudio:
pip install pyaudio
一旦安装完成,就可以使用下面的步骤来录制音频文件:
1. 导入必要的库:
import pyaudio import wave
2. 设置录制参数,例如音频文件的采样率、位深度和通道数等:
FORMAT = pyaudio.paInt16 CHANNELS = 2 RATE = 44100 CHUNK = 1024 RECORD_SECONDS = 5
3. 创建一个PyAudio对象:
audio = pyaudio.PyAudio()
4. 打开音频输入流:
stream = audio.open(format=FORMAT, channels=CHANNELS,
rate=RATE, input=True,
frames_per_buffer=CHUNK)
5. 创建一个空的音频帧列表来存储从输入流中读取的音频数据:
frames = []
6. 开始录制音频数据,并将它们添加到音频帧列表中:
print("Recording started...")
for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
data = stream.read(CHUNK)
frames.append(data)
print("Recording completed.")
7. 停止录制并关闭音频输入流:
stream.stop_stream() stream.close()
8. 关闭PyAudio对象:
audio.terminate()
9. 创建一个新的音频文件,并将音频帧列表中的数据写入文件:
wavefile = wave.open("output.wav", 'wb')
wavefile.setnchannels(CHANNELS)
wavefile.setsampwidth(audio.get_sample_size(FORMAT))
wavefile.setframerate(RATE)
wavefile.writeframes(b''.join(frames))
wavefile.close()
以上就是使用Python和PyAudio录制音频文件的方法。完整的示例代码如下所示:
import pyaudio
import wave
FORMAT = pyaudio.paInt16
CHANNELS = 2
RATE = 44100
CHUNK = 1024
RECORD_SECONDS = 5
audio = pyaudio.PyAudio()
stream = audio.open(format=FORMAT, channels=CHANNELS,
rate=RATE, input=True,
frames_per_buffer=CHUNK)
frames = []
print("Recording started...")
for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
data = stream.read(CHUNK)
frames.append(data)
print("Recording completed.")
stream.stop_stream()
stream.close()
audio.terminate()
wavefile = wave.open("output.wav", 'wb')
wavefile.setnchannels(CHANNELS)
wavefile.setsampwidth(audio.get_sample_size(FORMAT))
wavefile.setframerate(RATE)
wavefile.writeframes(b''.join(frames))
wavefile.close()
这个例子会录制5秒钟的音频数据,并将其保存为名为output.wav的音频文件。
