python实现录音并实时播放出来
时间: 2024-10-26 09:02:56 浏览: 8
在Python中,可以使用`pyaudio`库来实现录音功能,并结合其他音频处理库如`playsound`或`pygame`来进行实时播放。以下是简单的步骤:
1. 安装所需库:
```bash
pip install pyaudio playsound # 如果要用pygame,还需安装pygame
```
2. 使用`pyaudio`录制音频:
```python
import pyaudio
import wave
# 初始化PyAudio
chunk = 1024 # 每次读取数据的字节数
fs = 44100 # 取样频率
seconds = 5 # 录音秒数
filename = "recording.wav"
p = pyaudio.PyAudio()
stream = p.open(format=pyaudio.paInt16, channels=1, rate=fs, input=True, frames_per_buffer=chunk)
frames = []
while seconds * fs > stream.tell():
data = stream.read(chunk)
frames.append(data)
stream.stop_stream()
stream.close()
p.terminate()
# 写入wav文件
wave_file = wave.open(filename, 'wb')
wave_file.setnchannels(1) # 单声道
wave_file.setsampwidth(p.get_sample_size(pyaudio.paInt16)) # 16位采样
wave_file.setframerate(fs)
wave_file.writeframes(b''.join(frames))
wave_file.close()
```
3. 使用`playsound`或`pygame`播放音频:
```python
# 使用playsound播放
import playsound
playsound.playsound(filename)
# 或者使用pygame
if not pygame.mixer:
print("请先安装pygame")
else:
pygame.init()
sound = pygame.mixer.Sound(filename)
sound.play()
while sound.get_busy(): # 等待音频播放完成
pass
pygame.quit()
```
请注意,这需要用户权限允许录音,并且在某些环境中可能需要管理员权限。
阅读全文