欢迎访问宙启技术站
智能推送

使用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的音频文件。