树莓派语音交互--语音输入识别

音频输入

之前的树莓派语音识别所用的输入源全都是提前使用电脑PC端进行音频文件的制作然后进行的识别。当时购置了专用的usb麦克风但是录制的音频文件格式有问题导致识别成功率很低,不过又重新探索了一下usb麦克风的使用方法,实现了通过树莓派自身硬件完成音频文件的录制和识别并控制机器狗运动的功能。参考教程基础usb麦克风的配置,修改录入音频文件格式。
在这里插入图片描述

树莓派语音交互--语音输入识别_第1张图片

  • 录制命令
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); 
	            }

总结

经过实际测试,语音识别的准确率和之前的差不多,基本可以准确的识别出设定的关键词进行匹配。如果采用这种音频输入方式的话本质上还是识别录制的音频,不过可以编写脚本使其自动进行循环录制,自动识别,也可以达到向机器狗说话发布指令来控制机器狗运动的效果。不过总感觉这种方案有点蠢,可以做备选。

你可能感兴趣的:(树莓派语音交互--语音输入识别)