先说一下这次博客的背景,在做一个小玩意,但是这个小玩意用到了语音识别,如果按照Dragonboard 410c的参考设计直接焊接一个mic就可以了,但是问题就出在这了,mic录的声音中噪声太大,有时完全听不清说的什么,可想而知,语音识别完全识别不了,经过分析应该是mic本身的质量不好导致的,所以打算换个mic或者其他的录音方式,最终决定用蓝牙耳机输入。
前面噪声大的问题应该可以解决了吧,于是用蓝牙耳机进行测试,现在来说说蓝牙耳机调试过程中遇到的问题。
1.蓝牙耳机连接上开发板后进行录音,在播放的时候发现没有声音,于是怀疑源代码中是不是没有做蓝牙录音或者播放的功能,于是打算去源代码中看看,但是最后一次录音的时候发现一个细节,录音的过程中指针是在动的,虽然幅度比较小,所以猜测是有声音录进去的,其次,由于自己想的是蓝牙录音,speaker输出声音,所以在录音的过程中只是对着蓝牙耳机说话,并没有戴在耳朵上。于是作出了如下两个假设
(1)通过蓝牙耳机录制声音成功,但是播放的时候是通过蓝牙耳机播放的,并不是speaker。
(2)播放的时候是有声音的,但是声音很小,以致听不到。
问题解决:
首先戴着耳机听了一下,好像是有的声音,但不能十分确定,于是通过修改代码将录制的声音增大。
首先查看log信息:
可以知道blueteeth-mic走的是“handset-mic”
498 <path name="handset-mic">
1 <path name="adc1" />
2 <ctl name="IIR1 INP1 MUX" value="DEC1" />
3 </path>
接下来就是曾大音量了
设备中相应的文件路径:/system/etc/mixer_paths_sbc.xml
找到下面一行,我将值设为了最大,发现有声音了。
<ctl name="DEC1 Volume" value="100" />
2.第一个问题终于解决了,问题很简单但是绕了点远,现在是第二个问题,蓝牙耳机录进去的声音,播放的时候也是通过耳机播放出来的,但我需要通过speaker播放出来,这个问题看了一下,但是还没找到解决方法,所以问题先放在这,后面解了再添加上。