因为在做一个语音识别机器人,需要用到录音模块,本来想直接用arecord命令:
os.system('arecord -d 4 -r 16000 -c 1 -t wav -f S16_LE -D plughw:1,0 record.wav')
但每次运行结束后再次运行就会出现“arecord”资源被占用,输入ps -aux|grep python查看进程发现我的robot.py虽然已停止,但必须得kill -9 PID才能再次运行。这个问题至今还没找到答案,如果有知道的伙伴麻烦告知一声,感激不尽。
基于以上原因,我决定用pyaudio录音,参考了一些博主的代码进行加工。
环境:python2.7
需要导入的包: wave 和 pyaudio
pyaudio怎么安装请自行百度,直接上代码
#_*_ coding:UTF-8 _*_
import wave
from pyaudio import PyAudio,paInt16
# 设置采样参数
NUM_SAMPLES = 2000
TIME = 2
chunk = 1024
# 读wav文件
def read_wave_file(filename):
fp = wave.open(filename,'rb')
nf = fp.getnframes() #获取采样点数量
f_len = nf*2
audio_data = fp

本文探讨了使用arecord命令进行录音时遇到的资源被占用问题,并分享了解决方案。同时,详细介绍了如何利用pyaudio库在Python环境中实现录音功能,包括设置采样参数、读写wav文件、录音及播放过程。
最低0.47元/天 解锁文章

3868





