python pyaudio
时间: 2023-11-21 19:59:22 浏览: 84
Python人工智能之路 之PyAudio 实现录音 自动化交互实现问答
Pyaudio是Python中用于音频输入和输出的库。它是对PortAudio库的封装,提供了简单而强大的API,用于处理音频流。你可以使用Pyaudio库来录制和播放声音,处理音频数据,进行音频特征提取,并将声音数据与其他Python库集成。
以下是使用Pyaudio库进行音频录制和播放的示例代码:
1. 音频录制:
```python
import pyaudio
import wave
# 设置参数
chunk = 1024 # 每次读取的音频数据大小
format = pyaudio.paInt16 # 音频数据的格式
channels = 1 # 声道数
rate = 44100 # 采样率
record_seconds = 5 # 录制时长
# 创建PyAudio对象
p = pyaudio.PyAudio()
# 打开音频流
stream = p.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()
# 关闭PyAudio对象
p.terminate()
# 保存录制的音频数据为WAV文件
wf = wave.open("recorded_audio.wav", "wb")
wf.setnchannels(channels)
wf.setsampwidth(p.get_sample_size(format))
wf.setframerate(rate)
wf.writeframes(b"".join(frames))
wf.close()
```
2. 音频播放:
```python
import pyaudio
import wave
# 打开WAV文件
wf = wave.open("recorded_audio.wav", "rb")
# 创建PyAudio对象
p = pyaudio.PyAudio()
# 打开音频流
stream = p.open(format=p.get_format_from_width(wf.getsampwidth()),
channels=wf.getnchannels(),
rate=wf.getframerate(),
output=True)
print("开始播放音频...")
# 播放音频数据
data = wf.readframes(chunk)
while data:
stream.write(data)
data = wf.readframes(chunk)
print("播放完成!")
# 停止音频流
stream.stop_stream()
stream.close()
# 关闭PyAudio对象
p.terminate()
```
请注意,上述代码中的"recorded_audio.wav"是录制音频的保存路径,你可以根据需要修改为你想要保存的文件名和路径。
阅读全文