Python 运用pyaudio库去做一个固定采样率音频录制器

首先要去下载一个对应的pyaudio库的whl文件,目前最新版本是cp38的那个,如果版本太低是用不了的,下载好后在编译环境下的控制台输入pip install +whl文件路径+XXX.whl+回车 

# -*- coding: utf-8 -*-
"""
Spyder Editor

This is a temporary script file.
"""
import pyaudio
import wave

CHUNK=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文件

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Obito_TXP

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值