snowboy进行语音唤醒,编译snowboy文件 |
您所在的位置:网站首页 › nowboy怎么读 › snowboy进行语音唤醒,编译snowboy文件 |
版权声明:本文为博主原创文章,未经博主允许不得转载。https://blog.csdn.net/weixin_40490238/article/details/88848335 博主环境:树莓派3B,python3,更新过g++,gcc(不过影响不大) 树莓派更换源:https://blog.csdn.net/weixin_40490238/article/details/83786584 通用性应该比较强 github:https://github.com/kitt-ai/snowboy snowboy:https://snowboy.kitt.ai/ 更新pip3 pip3 install --upgrade pip安装依赖环境 sudo apt-get install python-pyaudio python3-pyaudio sox pip install pyaudio测试音频录制 rec temp.wav这里时会报错,can't open input 'default': ....... 这时安装(配置麦克什么的) sudo apt-get install alsa-utils pulseaudio再进行测试 rec test.wavctrl+c停止录音,aplay test.wav 播放成功。 到这就成功了一大半。
在这就得自己下载snowboy,编译出适合自己用的_snowboydetect.so 下载snowboy:https://github.com/kitt-ai/snowboy 安装swig(3.0.10或者更高的版本) sudo apt-get install swig然后安装atlas矩阵计算库:(必须安装,否则编译报错) sudo apt-get install libatlas-base-dev打开snowboy的下载包,解压 cd /snowboy/swig/Python3 make得到了编译好的文件_snowboydetect.so 下载snowboy官方raspberry的包:https://s3-us-west-2.amazonaws.com/snowboy/snowboy-releases/rpi-arm-raspbian-8.0-1.1.1.tar.bz2 解压此包,将_snowboydetect.so放入该目录 在此生成自己的唤醒词:https://snowboy.kitt.ai/hotword/34901 然后将自己的**.pmdl文件放入目录 python3 demo.py jingling.pmdl运行成功,唤醒提示
如果报错,采取以下建议: arecord -l得到的结果类似这样: pi@raspberrypi:~$ arecord -l **** List of CAPTURE Hardware Devices **** card 1: Set [C-Media USB Headphone Set], device 0: USB Audio [USB Audio] Subdevices: 0/1 Subdevice #0: subdevice #0 card 2: Device [USB PnP Sound Device], device 0: USB Audio [USB Audio] Subdevices: 1/1 Subdevice #0: subdevice #0上面的结果说明当前接入了两个录音设备,选择你要使用的录音设备,并记下声卡编号(或名字)和设备编号。例如,我希望使用 USB PnP Sound Device 这个设备,则声卡编号为 2 (声卡名为 Device),设备编号为 0 。 类似的方法获取音响的声卡编号和设备编号: aplay -l结果类似这样: pi@raspberrypi:~$ aplay -l **** List of PLAYBACK Hardware Devices **** card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA] Subdevices: 8/8 Subdevice #0: subdevice #0 Subdevice #1: subdevice #1 Subdevice #2: subdevice #2 Subdevice #3: subdevice #3 Subdevice #4: subdevice #4 Subdevice #5: subdevice #5 Subdevice #6: subdevice #6 Subdevice #7: subdevice #7 card 0: ALSA [bcm2835 ALSA], device 1: bcm2835 ALSA [bcm2835 IEC958/HDMI] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: Set [C-Media USB Headphone Set], device 0: USB Audio [USB Audio] Subdevices: 1/1 Subdevice #0: subdevice #0 card 2: Device [USB PnP Sound Device], device 0: USB Audio [USB Audio] Subdevices: 1/1 Subdevice #0: subdevice #0上面的结果说明当前接入了三个播放设备,其中 card 0 是树莓派自带的声卡,如果您是使用 AUX 3.5 口外接的音响/或耳机,那么应该使用 card 0;card 1 和 card 2 则是其他的设备。记下您要使用的声卡 编号和设备编号。
首先创建 /home/pi/.asoundrc : touch /home/pi/.asoundrc之后添加您选择的声卡编号和设备。这里举两种常见的配置。 第一种:您使用的是一个自带音响和录音的组合设备(例如会议麦克风喇叭,或者一块连接了麦克风和音响的独立USB声卡),那么只需设置 pcm 为该组合设备的编号即可。示例: pcm.!default { type plug slave { pcm "hw:1,0" } } ctl.!default { type hw card 1 }上面的 hw:1,0 表示使用 card 1,设备 0。即 C-Media USB Headphone Set 。如果配成 hw:Set,0 ,效果相同(个人更推荐使用声卡名字)。 第二种:您使用的是一个单独的 USB 麦克风,并直接通过树莓派的 AUX 3.5 口外接一个音响。那么可以参考如下配置: pcm.!default { type asym playback.pcm { type plug slave.pcm "hw:0,0" } capture.pcm { type plug slave.pcm "hw:2,0" } } ctl.!default { type hw card 2 }由于播放设备(playback)和录音设备(capture)是独立的,所以需要各自配置。
完成后可以测试下命令行录音和播放,看看是否能正常工作。
参考文献: https://github.com/dingdang-robot/dingdang-robot/wiki/configuration# |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |