发布时间:2025-12-09 22:10:39 浏览次数:3
树莓派上麦克风的使用方式 - 知乎 (zhihu.com)
无论是麦克风,还是摄像头,都有“有趋”和“免趋”类型,想在linux上能用,最好都是选择免驱的。因为,大多数小的设备是小公司生产,没有力量开发linux驱动程序,如果没有免驱规则,它们将无法使用。
这里亲测索爱的pcm2902麦克风.
将索爱麦克风接入USB口,输入:
lsusb
会出现如下反馈:
就说明麦克没有问题,可以立刻工作。
确定接入后,可以写个命令测试下:
arecord -D "plughw:2,0" -f S16_LE -r 16000 -d 10 record.wav-D这个参数的意思就选择设备, 外部设备就是plughw:1,0,内部设备就是plughw:0,0, 树莓派本身并没有录音模块,故没有内部设备。-d 10的意思就是录制时间为10秒,如果不加这个参数就是一直录音直到ctrl+c停止, 最后生成的文件名字叫做temp.wav.
如果想要播放音频的话,可以用omxplayer软件。
惯例
sudo apt-get updatesudo apt-get upgrade开始安装
sudo apt-get install omxplayer安装完成后,开始播放
omxplayer -o local temp.wav如果没声音的话,记得在raspi-config>Advanced Options>Audio中调整音频输出哦。
下面分享一段自己写的shell代码,用起来更加方便:
sudo vim Vrecord.sh
#!/bin/bashcd /home/huatec/recording/echo '请输入要保存的音频文件名:'echo '(默认保存路径/home/huatec/recording)'read recho '保存的文件名为'$r'.wav'echo '请设置录音时间:'echo '(默认不输入为无限,至按ctrl+c结束)'read tif [ -z "$t" ];thenecho '开始录音...'arecord -D "plughw:2,0" -f S16_LE -r 16000 $r'.wav'# arecord -D "plughw:2,0" -f S16_LE -r 16000 -d 10 $r'.wav'elseif [[ ! $t =~ [0-9] ]]thenecho -e '输入时间有误!\n默认无限时间,至按ctrl+c结束'echo '开始录音...'arecord -D "plughw:2,0" $r'.wav'elseecho '开始录音'$t'秒...'arecord -D "plughw:2,0" -f S16_LE -r 16000 -d $t $r'.wav'fifisudo chmode +w+x Vrecord.sh
sudo vim Vplay.sh
#!/bin/bashcd /home/pi/recording/echo '请输入要读取的音频文件名:'echo '(默认读取路径/home/huatec/recording)'read pnum=`find -name $p'.wav' |wc -l`echo $numif [ $num -eq 0 ];thenecho '没有该文件!'elseecho '开始播放'$p'.wav...'omxplayer -o local $p'.wav'fisudo chmode +w+x Vplay.sh