📌  相关文章
📜  如何使用 pyaudio (1)

📅  最后修改于: 2023-12-03 15:08:23.484000             🧑  作者: Mango

如何使用 PyAudio

PyAudio是Python中一个流行的音频处理库,它提供了一系列功能,可以用于录制和播放音频。

安装

安装PyAudio可以通过PIP来完成:

pip install pyaudio

但是在安装前,需要先安装PortAudio库。如果在安装过程中遇到问题,可以参考官方文档来解决。

录制音频

以下示例代码可以用于录制音频:

import pyaudio
import wave

# 设置录音参数
CHUNK = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 2
RATE = 44100
RECORD_SECONDS = 5
WAVE_OUTPUT_FILENAME = "output.wav"

# 初始化PyAudio
audio = pyaudio.PyAudio()

# 打开流
stream = audio.open(format=FORMAT,
                    channels=CHANNELS,
                    rate=RATE,
                    input=True,
                    frames_per_buffer=CHUNK)

print("录音中...")

# 缓存数据
frames = []

# 录音
for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
    data = stream.read(CHUNK)
    frames.append(data)

print("录音结束!")

# 停止录音
stream.stop_stream()
stream.close()
audio.terminate()

# 保存数据到WAV文件
wavfile = wave.open(WAVE_OUTPUT_FILENAME, 'wb')
wavfile.setnchannels(CHANNELS)
wavfile.setsampwidth(audio.get_sample_size(FORMAT))
wavfile.setframerate(RATE)
wavfile.writeframes(b''.join(frames))
wavfile.close()

在这个示例中,我们设置了录制5秒钟的音频(RECORD_SECONDS = 5),并将音频数据保存到一个名为output.wav的WAV文件中。

播放音频

以下示例代码可以用于播放音频:

import pyaudio
import wave

# 打开WAV文件
file = wave.open('output.wav', 'rb')

# 初始化PyAudio
audio = pyaudio.PyAudio()

# 打开流
stream = audio.open(format=audio.get_format_from_width(file.getsampwidth()),
                    channels=file.getnchannels(),
                    rate=file.getframerate(),
                    output=True)

# 播放音频
data = file.readframes(1024)
while data:
    stream.write(data)
    data = file.readframes(1024)

# 停止播放
stream.stop_stream()
stream.close()
audio.terminate()

在这个示例中,我们使用wave库打开了刚刚录制的WAV文件,并通过PyAudio库播放了音频数据。

总结

通过PyAudio库,可以很方便地完成音频处理工作,包括录制和播放音频。在使用库之前,需要先安装PortAudio库,并且需要明确所需的参数,例如录制时的音频采样率、通道数、采样宽度等。