樹莓派語音互動--語音輸入識別

菜鳥da發表於2020-11-24

音訊輸入

之前的樹莓派語音識別所用的輸入源全都是提前使用電腦PC端進行音訊檔案的製作然後進行的識別。當時購置了專用的usb麥克風但是錄製的音訊檔案格式有問題導致識別成功率很低,不過又重新探索了一下usb麥克風的使用方法,實現了通過樹莓派自身硬體完成音訊檔案的錄製和識別並控制機器狗運動的功能。參考教程基礎usb麥克風的配置修改錄入音訊檔案格式
在這裡插入圖片描述

在這裡插入圖片描述

  • 錄製命令
sudo arecord -D "plughw:1,0" -d 5 -r 16000 -c 1 -t wav -f S16_LE test.wav

各個引數所代表的意思已在上文提及。預設將test.wav儲存在當前路徑中。
在這裡插入圖片描述

  • 修改iat_publish
    為了方便除錯,直接在原來程式碼的基礎上新增從剛錄製生成的檔案中進行識別。
else if (aud_src == 4)
				{
		            printf("Demo recgonizing the speech from the usb microphone\n");
		            demo_file("/home/liuda/spotmicro/src/spotMicro/robot_voice/bin/wav/test.wav", session_begin_params); 
	            }

總結

經過實際測試,語音識別的準確率和之前的差不多,基本可以準確的識別出設定的關鍵詞進行匹配。如果採用這種音訊輸入方式的話本質上還是識別錄製的音訊,不過可以編寫指令碼使其自動進行迴圈錄製,自動識別,也可以達到向機器狗說話釋出指令來控制機器狗運動的效果。不過總感覺這種方案有點蠢,可以做備選。

相關文章