Python麥克風監聽聲音後保存文件
时间: 2025-01-13 18:51:10 浏览: 55
### 实现麦克风音频录制并保存为文件
在 Python 中可以利用 `pyaudio` 库来访问计算机的声卡设备,从而能够从麦克风采集声音数据。下面是一个简单的例子展示怎样使用此库完成录音并将结果存储成 WAV 文件[^1]。
```python
import pyaudio
import wave
CHUNK = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 2
RATE = 44100
RECORD_SECONDS = 5
WAVE_OUTPUT_FILENAME = "output.wav"
p = pyaudio.PyAudio()
stream = p.open(format=FORMAT,
channels=CHANNELS,
rate=RATE,
input=True,
frames_per_buffer=CHUNK)
print("* recording")
frames = []
for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
data = stream.read(CHUNK)
frames.append(data)
print("* done recording")
stream.stop_stream()
stream.close()
p.terminate()
wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb')
wf.setnchannels(CHANNELS)
wf.setsampwidth(p.get_sample_size(FORMAT))
wf.setframerate(RATE)
wf.writeframes(b''.join(frames))
wf.close()
```
上述脚本设置了采样率、声道数等参数,并创建了一个 PyAudio 对象用于管理音频流。接着打开输入流开始读取来自麦克风的数据片段,在指定时间内收集足够的样本之后关闭流连接以及释放资源。最后把所有接收到的声音帧写入到一个新的 WAV 文件里去。
对于更复杂的应用场景比如长时间连续监听或者希望将捕获的内容即时转录成文本,则可能还需要引入额外的技术栈如 Vosk 这样的离线语音识别引擎配合 Pyaudio 来达成目标[^2]。
如果考虑最终输出 MP3 格式的音频文件而不是默认支持较好的 WAV ,那么就需要借助像 `pydub` 或者其他专门处理多媒体编码解码工作的第三方模块来进行格式间的转换工作了[^3]。
阅读全文
相关推荐




















