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/Python3make得到了編譯好的文件_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/1Subdevice #0: subdevice #0 card 2: Device [USB PnP Sound Device], device 0: USB Audio [USB Audio]Subdevices: 1/1Subdevice #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/8Subdevice #0: subdevice #0Subdevice #1: subdevice #1Subdevice #2: subdevice #2Subdevice #3: subdevice #3Subdevice #4: subdevice #4Subdevice #5: subdevice #5Subdevice #6: subdevice #6Subdevice #7: subdevice #7 card 0: ALSA [bcm2835 ALSA], device 1: bcm2835 ALSA [bcm2835 IEC958/HDMI]Subdevices: 1/1Subdevice #0: subdevice #0 card 1: Set [C-Media USB Headphone Set], device 0: USB Audio [USB Audio]Subdevices: 1/1Subdevice #0: subdevice #0 card 2: Device [USB PnP Sound Device], device 0: USB Audio [USB Audio]Subdevices: 1/1Subdevice #0: subdevice #0上面的結果說明當前接入了三個播放設備,其中 card 0 是樹莓派自帶的聲卡,如果您是使用 AUX 3.5 口外接的音響/或耳機,那么應該使用 card 0;card 1 和 card 2 則是其他的設備。記下您要使用的聲卡
編號和設備編號。
?
首先創建 /home/pi/.asoundrc :
touch /home/pi/.asoundrc之后添加您選擇的聲卡編號和設備。這里舉兩種常見的配置。
- 第一種:您使用的是一個自帶音響和錄音的組合設備(例如會議麥克風喇叭,或者一塊連接了麥克風和音響的獨立USB聲卡),那么只需設置 pcm 為該組合設備的編號即可。示例:
上面的 hw:1,0 表示使用 card 1,設備 0。即 C-Media USB Headphone Set 。如果配成 hw:Set,0 ,效果相同(個人更推薦使用聲卡名字)。
- 第二種:您使用的是一個單獨的 USB 麥克風,并直接通過樹莓派的 AUX 3.5 口外接一個音響。那么可以參考如下配置:
由于播放設備(playback)和錄音設備(capture)是獨立的,所以需要各自配置。
?
完成后可以測試下命令行錄音和播放,看看是否能正常工作。
?
參考文獻:
https://github.com/dingdang-robot/dingdang-robot/wiki/configuration#
總結
以上是生活随笔為你收集整理的snowboy进行语音唤醒,编译snowboy文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: KITT自动驾驶项目代码+训练集
- 下一篇: 梦幻西游python验证成语_GitHu