日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

snowboy进行语音唤醒,编译snowboy文件

發布時間:2024/3/12 编程问答 62 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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.wav

ctrl+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 為該組合設備的編號即可。示例:
pcm.!default {type plug slave {pcm "hw:1,0"} }ctl.!default {type hwcard 1 }

上面的 hw:1,0 表示使用 card 1,設備 0。即 C-Media USB Headphone Set 。如果配成 hw:Set,0 ,效果相同(個人更推薦使用聲卡名字)。

  • 第二種:您使用的是一個單獨的 USB 麥克風,并直接通過樹莓派的 AUX 3.5 口外接一個音響。那么可以參考如下配置:
pcm.!default {type asymplayback.pcm {type plugslave.pcm "hw:0,0"}capture.pcm {type plugslave.pcm "hw:2,0"} }ctl.!default {type hwcard 2 }

由于播放設備(playback)和錄音設備(capture)是獨立的,所以需要各自配置。

?

完成后可以測試下命令行錄音和播放,看看是否能正常工作。

?

參考文獻:

https://github.com/dingdang-robot/dingdang-robot/wiki/configuration#

總結

以上是生活随笔為你收集整理的snowboy进行语音唤醒,编译snowboy文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。