If I died,nobody except my family will remember me.
I did nothing good or bad to people, no one knowns me.
I don't want to die, I love my mother so much.
I won't die.
2010年9月17日星期五
2010年9月5日星期日
Alsa SoC上消除通话侧音
工作记录:
开发的某语音软件运行在开发板上,存在一个问题:自己的声音从microphone进去后会从扬声器Speaker里面出来,这在通 讯术语中叫做侧音。
其实我们自己家里用的电话也是有侧音的,但是侧音很小,也是被保留下的,可以增强语音通话的质量;如果侧音过强,则会严重损伤通话效果。为此,我 们需要减小侧音。
具体的工作是实验室一个师妹进行的,我把其中一些关键内容记录下来,以免忘记,也供更多的为此困扰的人参考。
我们解决问题的过程是:
这也说明隔行是如同隔山一样。
Mark 之,虽然很可能到本人见马克思的时候都用不上了。
开发的某语音软件运行在开发板上,存在一个问题:自己的声音从microphone进去后会从扬声器Speaker里面出来,这在通 讯术语中叫做侧音。
其实我们自己家里用的电话也是有侧音的,但是侧音很小,也是被保留下的,可以增强语音通话的质量;如果侧音过强,则会严重损伤通话效果。为此,我 们需要减小侧音。
具体的工作是实验室一个师妹进行的,我把其中一些关键内容记录下来,以免忘记,也供更多的为此困扰的人参考。
我们解决问题的过程是:
- 自己的声音从Speaker出来的现象,定位其学术、科技名为:侧音(英文叫做Sidetone)。这 是成功的一半。
- 对于技术问题,本人一般用Google多,发现侧音在中文中出现都是一些概念介绍,偶尔有一些介绍消减方法也多少硬件设计,这对我们 解决问题时带来了不小的疑惑,我们怀疑还能否用软件的方式解决这个问题;
- 黔驴技穷后,我们使用了关键词sidetone alsa,然后发现在alsa for embedded Linux中有专门的soc定制,里面提到过sidetone,心里顿时感觉前途一片光明;
- 我们团队就合作分工阅读alsa的soc framework、driver source、alsa-utils等资料和源码。这 时候我再次感谢张焕国老师在我们本科上信息安全课程时提到的:最重要的课程是语数英。找资料还是得找英文原著,有时候甚至在看资料的时候 纠结:为什么自己不会法文、德文。。。还好那些体系的文字翻译是比较成功的。
- 我们最后发现,我们所使用的开发板的音频芯片AD/DA是wm9713,其驱动里面带有sidetone的控制。通过alsa- utils里面的amixer工具,可以和阅读wm9713驱动一样,发现该芯片本身提供了sidetone控制接口。Sidetone Mux的Setereo、Mic 1、Mic 2、 Mute四种方式。经过一定的测试后发现确实有效。
- 最后,我们通过参考amixer的源码,为此问题画上了一个句号。
这也说明隔行是如同隔山一样。
Mark 之,虽然很可能到本人见马克思的时候都用不上了。
订阅:
博文 (Atom)