索爱麦克风免驱动的语音录入测试

树莓派上麦克风的使用方式 - 知乎 (zhihu.com)

 1 有趋和免趋

无论是麦克风,还是摄像头,都有“有趋”和“免趋”类型,想在linux上能用,最好都是选择免驱的。因为,大多数小的设备是小公司生产,没有力量开发linux驱动程序,如果没有免驱规则,它们将无法使用。

这里亲测索爱的pcm2902麦克风.

2 麦克风安装和检测

将索爱麦克风接入USB口,输入:

lsusb

会出现如下反馈:

 就说明麦克没有问题,可以立刻工作。

3 音频文件制作

确定接入后,可以写个命令测试下:

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.

4 播放录音

如果想要播放音频的话,可以用omxplayer软件。

惯例

sudo apt-get update
sudo apt-get upgrade

开始安装

sudo apt-get install omxplayer

安装完成后,开始播放

omxplayer -o local temp.wav

如果没声音的话,记得在raspi-config>Advanced Options>Audio中调整音频输出哦。

5 写成Shell代码

下面分享一段自己写的shell代码,用起来更加方便:

(一) shell录音文件:

sudo  vim  Vrecord.sh

#!/bin/bash
cd /home/huatec/recording/
echo '请输入要保存的音频文件名:'
echo '(默认保存路径/home/huatec/recording)'
read r
echo '保存的文件名为'$r'.wav'
echo '请设置录音时间:'
echo '(默认不输入为无限,至按ctrl+c结束)'
read t

if [ -z "$t" ];
then
  echo '开始录音...'
  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'
else
  if [[ ! $t =~ [0-9] ]]
  then
    echo -e '输入时间有误!\n默认无限时间,至按ctrl+c结束'
    echo '开始录音...'
   arecord -D "plughw:2,0" $r'.wav'
  else
    echo '开始录音'$t'秒...'
    arecord -D "plughw:2,0" -f S16_LE -r 16000 -d $t $r'.wav'
    
  fi

fi

sudo chmode +w+x  Vrecord.sh

(二)播放音频shell文件:

sudo vim Vplay.sh

#!/bin/bash
cd /home/pi/recording/
echo '请输入要读取的音频文件名:'
echo '(默认读取路径/home/huatec/recording)'
read p
num=`find -name $p'.wav' |wc -l`
echo $num
if [ $num -eq 0 ];
then
  echo '没有该文件!'
else
  echo '开始播放'$p'.wav...'
  omxplayer -o local $p'.wav'
fi

sudo chmode +w+x  Vplay.sh

猜你喜欢

转载自blog.csdn.net/gongdiwudu/article/details/120757075