訂閱
糾錯
加入自媒體

百度大腦遠場語音開發(fā)套件評測—快速上手,超贊語音交互體驗

2019-10-29 14:21
來源: 粵訊

(五)藍牙連接

輸入命令 :bt_realtek_start 即可啟動藍牙:

百度大腦遠場語音開發(fā)套件評測—快速上手,超贊語音交互體驗

打開電腦的藍牙,可以發(fā)現名為realtek_bt的藍牙設備,嘗試進行配對:

百度大腦遠場語音開發(fā)套件評測—快速上手,超贊語音交互體驗

配對成功后,就可以用藍牙進行音樂播放等操作了。斷開藍牙連接:

百度大腦遠場語音開發(fā)套件評測—快速上手,超贊語音交互體驗

測試發(fā)現的問題:

1、初次打開藍牙播放音頻時,聲音過大,調整聲音后,又發(fā)現最大聲音音量有的小了。

2、雖然本套件藍牙可以一次性連接多個藍牙(我嘗試了連接兩個藍牙設備),但是,兩個連接成功后,當用一個藍牙設備播放音樂,然后停止,再用另一個藍牙設備播放音樂時,發(fā)現播放失敗,只能用之前的那個藍牙設備播放音樂。

(六)錄音、播放音頻測試

查看tmp目錄內容:cd tmp

進行錄音:arecord -D hw:2,0 -c 8 -r 16000 -f S16_LE /tmp/test.wav

結束錄音后,查看目錄文件信息:

百度大腦遠場語音開發(fā)套件評測—快速上手,超贊語音交互體驗

使用 aplay 命令就可以播放錄音文件:aplay test.wav

百度大腦遠場語音開發(fā)套件評測—快速上手,超贊語音交互體驗

錄音效果還是不錯的。

(七)語音合成測試

示例程序會將文本“456hello你好今天天氣不錯”傳送給服務器,由服務器生成對應的語音,保存為pcm文件,用戶可以進行播放體驗。進入語音合成示例目錄:cd /oem/BDSpeechSDK/sample/tts

執(zhí)行語音合成操作:LD_LIBRARY_PATH=/oem ./online-test

運行結束后,會在當前目錄下生成一個xxx.pcm,其中xxx是一個測試時的時間戳.在終端執(zhí)行如下命令體驗語音合成效果:aplay -t raw -c 1 -f S16_LE -r 16000 xxx.pcm

(八)交叉編譯

1、下載SDK

將rk3308板子內的oem內的BDSpeechSDK目錄復制到虛擬機內?梢赃M行adb pull /oem/BDSpeechSDK指令download下來,隨后將sdk放到虛擬機。

我這里就直接將整個/oem 目錄下載放到了“下載”目錄。

2、交叉工具鏈:

百度大腦遠場語音開發(fā)套件評測—快速上手,超贊語音交互體驗


rk3308的編譯在標準linux上是編不出來的。我們這里需要用到交叉編譯工具鏈,這是一個特殊的編譯器,可以認為是在A平臺編譯出B平臺才能運行的工具包。

我這里將交叉編譯鏈復制到虛擬機的桌面上了。

3、按要求構建項目工程目錄結構

百度大腦遠場語音開發(fā)套件評測—快速上手,超贊語音交互體驗

創(chuàng)建如下的目錄結構:

百度大腦遠場語音開發(fā)套件評測—快速上手,超贊語音交互體驗

百度大腦遠場語音開發(fā)套件評測—快速上手,超贊語音交互體驗

編寫(copy) sample代碼

目錄sample/wakeup/src中的e2e_wp_asr_test.cpp中有相應的demo代碼,這里我就直接將wakeup/src中的sample代碼拷貝到這里替換main.cpp

這里先不做任何改動,就照搬就行。目前的第一目的是盡快正確交叉編譯并成功在板子上跑起來。

編寫(copy) Makefile代碼

makefile可以幫助工程快速連接編譯,它能省掉很多功夫。由于本人不是純正的c++開發(fā)工程師,所以這里copy了 sample/wakeup/ 中的Makefile代碼:

百度大腦遠場語音開發(fā)套件評測—快速上手,超贊語音交互體驗

百度大腦遠場語音開發(fā)套件評測—快速上手,超贊語音交互體驗

嘗試編譯:

配置完成后,需要在Makefile所在的目錄執(zhí)行:

百度大腦遠場語音開發(fā)套件評測—快速上手,超贊語音交互體驗

上述語句中的 /home/snow/桌面1/rk3308_arm_tool_chain 代表著工具鏈rk3308_arm_tool_chain的根目錄/bin,如果路徑填寫錯誤,會出現如下錯誤:

百度大腦遠場語音開發(fā)套件評測—快速上手,超贊語音交互體驗

make: arm-rockchip-linux-gnueabihf-g++:命令未找到

可以進入rk3308_arm_tool_chain 目錄 ,使用pwd命令獲取rk3308_arm_tool_chain 的路徑:

百度大腦遠場語音開發(fā)套件評測—快速上手,超贊語音交互體驗

使用正確的路徑,重新編譯:

百度大腦遠場語音開發(fā)套件評測—快速上手,超贊語音交互體驗

百度大腦遠場語音開發(fā)套件評測—快速上手,超贊語音交互體驗

如果出現上述錯誤,說明缺少alsa的so庫,我們可以從oem目錄中pull一個文件下來。他在/oem目錄下,名為libbd_alsa_audio_client.so。將它復制到BDSpeechSDK/lib下,這個目錄專門放外部依賴的庫文件,這個也放這里吧。

然后再次嘗試編譯,沒有任何錯誤提示了,編譯通過。

編譯成功,發(fā)現工程目錄下多了一個main文件,這就是我們編譯好的可執(zhí)行程序了。

將main可執(zhí)行程序復制到/tmp目錄(tmp目錄在斷電后會清空)下:adb push ./main /tmp

運行程序:

LD_LIBRARY_PATH=/oem:/oem/BDSpeechSDK/lib:/oem/BDSpeechSDK/extern/lib ./main

出現錯誤:

error:5, domain:38, desc:Wakeup: dat file invalid., sn:

這里意思是沒成功載入dat文件。我們看一下代碼。在wakeup_config函數中,可以看到它配置dat文件的路徑,是../../resources/asr_resource/esis_resource.pkg只要把這個層級改成絕對路徑,或者把路徑改短 ./esis_resource.pkg,并把pkg文件拷貝過來即可。

然后重新編譯,adb push到tmp下,還是這個錯誤,那是因為雖然改了文件路徑,但是我們還沒有把 esis_resource.pkg 也push到tmp文件夾里,進入 /home/snow/下載/oem/BDSpeechSDK/resources/asr_resource 文件夾,執(zhí)行 adb push ./esis_resource.pkg /tmp

再次執(zhí)行,出現錯誤:error:-1, domain:10, desc:alsa_audio_client_open failed, sn: ,

因為我們的main也依賴于alsa的服務,所以需要開啟alsa服務

或者可以將上述語句寫入 /oem/Rklunch.sh 文件,這個文件是rk3308板子開機后會跑的一個執(zhí)行文件,我們可以把所有需要在開機時啟動的東西,都寫在這個文件里,這樣板子下次就會幫我們自動啟動alsa了。

執(zhí)行成功后,再次運行main程序:

cd /tmpLD_LIBRARY_PATH=/oem:/oem/BDSpeechSDK/lib:/oem/BDSpeechSDK/extern/lib ./main

執(zhí)行成功。

(九)交叉編譯-語音合成

按照上面的方法,我們可以編譯一下語音合成示例(可以把合成的文字改為自己喜歡的,我這里就改成了“Hello World,今天時七夕情人節(jié),中國的傳統(tǒng)節(jié)日!”,有條件的,可以嘗試輸入文本,再合成語音)。

編譯程序:

上述警告可以忽略。把編譯完成的可執(zhí)行文件下載到開發(fā)板并運行:

出現錯誤,仔細查看源代碼,發(fā)現main 函數中需要引用配置文件speech_sdk_log.conf,但路徑為 ../../resources/speech_sdk_log.conf

并將speech_sdk_log.conf文件push到/tmp路徑下

重新執(zhí)行:

LD_LIBRARY_PATH=/oem:/oem/BDSpeechSDK/lib:/oem/BDSpeechSDK/extern/lib ./main

執(zhí)行成功,可以看到/tmp目錄多了一個6832.pcm文件,運行命令 aplay -t raw -c 1 -f S16_LE -r 16000 6832.pcm,執(zhí)行后,就能播放女生版的語音內容了。

<上一頁  1  2  3  4  下一頁>  余下全文
聲明: 本文系OFweek根據授權轉載自其它媒體或授權刊載,目的在于信息傳遞,并不代表本站贊同其觀點和對其真實性負責,如有新聞稿件和圖片作品的內容、版權以及其它問題的,請聯系我們。

發(fā)表評論

0條評論,0人參與

請輸入評論內容...

請輸入評論/評論長度6~500個字

您提交的評論過于頻繁,請輸入驗證碼繼續(xù)

暫無評論

暫無評論

人工智能 獵頭職位 更多
掃碼關注公眾號
OFweek人工智能網
獲取更多精彩內容

粵公網安備 44030502002758號