本帖最后由 WangChong 于 2025-5-23 07:13 编辑
简介
在安信可离线语音模组 VC-01、VC-02 系列教程 【中级入门篇】中我们根据设置的不同回复词和命令字进行了固件生成。我在出教程的时候在考虑有没有什么办法来替换到SDK中的音频. 在我尝试了各种办法后发现很难办到 (建议直接使用云平台生成。 不要在SDK里手动添加, 匹配不上)
1- 首先我使用了TTSmaker生成了一段音频数据 “你好,我是小美”
2- 我使用在线MP3转换WAV文件将其转换成了WAV并且放到了wav_tones文件夹下
其构建脚本res_build_tool.py 文件会自动将wav文件转换成MP3 或者转换成PCM文件供语音识别成功播放。
3- 搜索了项目中所有的唤醒词 “你好小美” 的配置音频播放
比如/home/vc02/Downloads/uni_hb_m_solution/unione_lite_app_hb_m/include/uni_nlu_content.h
比如/home/vc02/Downloads/uni_hb_m_solution/unione_lite_app_hb_m/tools/scripts/cmd_reply_data.json
比如/home/vc02/Downloads/uni_hb_m_solution/unione_lite_app_hb_m/tools/scripts/custom_config.json
比如/home/vc02/Downloads/uni_hb_m_solution/unione_lite_app_hb_m/tools/scripts/pcm_map.txt
4- 我把上述文件中关于PCM播放的全部都替换成了对应的命名 108.PCM和 WAV音频文件保持了一致。
但是在编译成固件之后,所有的音频响应等还是沿用之前的并没有改变。
5- 于是我尝试修改/home/vc02/Downloads/uni_hb_m_solution/unione_lite_app_hb_m/tools/scripts/cmd_reply_data.json 和 /home/vc02/Downloads/uni_hb_m_solution/unione_lite_app_hb_m/tools/scripts/custom_config.json 。 实际上这两个文件就算全部清空掉。 也对程序没有任何影响。
6- 我尝试修改了上述配置文件中的唤醒等待时间(默认是十秒)。 实际上编译后并不生效。(只能各个事件的KEY words 查找使用)
7- 于是我将所有的唤醒回复词的音频 103.WAV 104.WAV 105.WAV 和对应的MP3全部进行了删除, 然后使用108(我自己生成的音频文件)命名成上述删除的103-105进行替换。 并且进行了程序烧录。 所有的语音唤醒回复词全部失效。所以我猜测所有的音频文件或者是语音识别的模型等,在下载SDK的时候,其内部嵌入的声学模型都已经对文件进行了某种校验或者加密算法。 当识别到文件hash值相同或者输入音频的nlu映射一致的话才能触发。
注意: 如果你尝试了上述操作造成音频不播放的情况,请使用原本固件的音频文件夹替换现在SDK里的音频文件夹即可恢复
总结
对于音频文件的替换等, 不建议使用SDK进行二次开发,建议直接使用安信可语音平台进行生成。 然后生成后可以根据不同的事件来播放对应的音频。 不过也并不是没办法实现音频的播放,我们将在下一篇文章中进行介绍。
|