Python 调用pyaudio库录制以及播放wav音频文件
1.Pyaudio简介
PyAudio 是语音处理的 Python 库,提供了比较丰富的功能。
2.功能
python的Pyaud模块可以调用电脑的麦克风或音响进行录音,音频播放,生成wav文件等。
wave是录音是用的标准的WINDOWS文件格式,扩展名为WAV,数据本身的格式为PCM或压缩型,属于无损音乐格式的一种。
3.Pyaudio安装
pip install pyaudio
推荐使用清华源哦,速度快
pip install pyaudio -i https://pypi.tuna.tsinghua.edu.cn/simple
4.使用Pyaudio进行录音
导入所需库
import wave
import pyaudio
def audio_record(out_file, rec_time):
CHUNK = 1024
FORMAT = pyaudio.paInt16 # 16bit编码格式
CHANNELS = 1 # 单声道
RATE = 16000 # 16000采样频率
?
p = pyaudio.PyAudio()
# 创建音频流
stream = p.open(format=FORMAT, # 音频流wav格式
channels=CHANNELS, # 单声道
rate=RATE, # 采样率16000
input=True,
frames_per_buffer=CHUNK)
?
print("开始录制。。。")
?
frames = [] # 录制的音频流
# 录制音频数据
for i in range(0, int(RATE / CHUNK * rec_time)):
data = stream.read(CHUNK)
frames.append(data)
?
# 录制完成
stream.stop_stream()
stream.close()
p.terminate()
?
print("完成。。。。。")将它封装成函数,直接去调用,函数的参数分别为文件名称和录制时间。
5.使用Pyaudio库播放录音
import wave
import pyaudio
?
def play():
chunk = 1024 # 2014kb
wf = wave.open(r"文件名", ‘rb‘)
p = pyaudio.PyAudio()
stream = p.open(format=p.get_format_from_width(wf.getsampwidth()), channels=wf.getnchannels(),
rate=wf.getframerate(), output=True)
?
data = wf.readframes(chunk) # 读取数据
print(data)
while data != b‘‘: # 播放
stream.write(data)
data = wf.readframes(chunk)
print(‘while循环中!‘)
print(data)
stream.stop_stream() # 停止数据流
stream.close()
p.terminate() # 关闭 PyAudio
play()跟多内容参考官方文档`http://people.csail.mit.edu/hubert/pyaudio/docs/`
相关推荐
夜斗不是神 2020-11-17
wordmhg 2020-11-06
世事一场大梦 2020-11-17
xiaoseyihe 2020-11-16
Morelia 2020-11-03
CloudXli 2020-11-03
pythonxuexi 2020-10-30
三石 2020-10-29