去做一个固定采样率音频录制器"/>
Python 运用pyaudio库去做一个固定采样率音频录制器
首先要去下载一个对应的pyaudio库的whl文件,目前最新版本是cp38的那个,如果版本太低是用不了的,下载好后在编译环境下的控制台输入pip install +whl文件路径+XXX.whl+回车
# -*- coding: utf-8 -*-
"""
Spyder EditorThis is a temporary script file.
"""
import pyaudio
import waveCHUNK=256#设置底缓存块的大小为256
FORMAT=pyaudio.paInt16#设置采样深度为16位
CHANNELS=2#设置声道数为2
RATE=16000#设置采样率16
RECORD_SECONDS=10#录音时长为10s
p=pyaudio.PyAudio()#实例化一个对象
#打开声卡
stream=p.open(format=FORMAT,channels=CHANNELS,rate=RATE, input=True,frames_per_buffer=CHUNK)
#创建列表用来储存采样的音频数据
record_buf=[]print("***开始录音:请在10s内输入语音***")
for i in range(0,int(RATE/CHUNK*RECORD_SECONDS)):data=stream.read(CHUNK)record_buf.append(data)
print("***录音结束***")wf=wave.open('audiol.wav','wb')
wf.setnchannels(CHANNELS)
wf.setsampwidth(p.get_sample_size(FORMAT))
wf.setframerate(RATE)
wf.writeframes(b''.join(record_buf))wf.close()#写完后关闭声卡
stream.stop_stream()#停止声卡
stream.close()#关闭声卡
p.terminate()#终止pyaudio
先前我出现了一个错误:一直提示sample width not specified(采样深度没有被指定)
在我无数次检查后发现出错的地方是程序中sample少打了个字母'e'
最后在相应的文件夹下会出现wav文件
更多推荐
Python 运用pyaudio库去做一个固定采样率音频录制器
发布评论