基于python,实现流式音频输入
时间: 2024-11-03 22:18:59 浏览: 22
Python简易计算器
5星 · 资源好评率100%
在Python中,我们可以使用`pyaudio`库来实现实时的流式音频输入。首先,你需要安装这个库,可以通过pip进行安装:
```bash
pip install pyaudio
```
接下来,这是一个简单的例子,展示了如何获取麦克风输入的实时音频流:
```python
import pyaudio
import wave
# 初始化PyAudio
chunk_size = 1024 # 每次处理的音频块大小
sample_rate = 44100 # 采样率,一般为CD质量的44.1kHz
p = pyaudio.PyAudio()
# 打开默认的录音设备
stream = p.open(format=pyaudio.paInt16,
channels=1, rate=sample_rate,
input=True, frames_per_buffer=chunk_size,
stream_callback=lambda x: None) # 使用空函数作为回调,只是用来打开流
# 开始录音
print("Press Ctrl+C to stop recording...")
try:
while True:
data = stream.read(chunk_size)
except KeyboardInterrupt:
pass
# 关闭流并释放资源
stream.stop_stream()
stream.close()
p.terminate()
# 将录制的音频保存到文件(如果你需要)
with wave.open('recording.wav', 'wb') as w:
w.setnchannels(1)
w.setsampwidth(p.get_sample_size(pyaudio.paInt16))
w.setframerate(sample_rate)
w.writeframes(data)
```
这个脚本会不断从麦克风接收音频,并在没有任何处理的情况下打印出来。如果你想在每个数据块上做一些处理(如ASR语音识别),只需要将`lambda x: None`替换为处理函数即可。
阅读全文