Home | 简体中文 | 繁体中文 | 杂文 | Github | 知乎专栏 | Facebook | Linkedin | Youtube | 打赏(Donations) | About
知乎专栏

1.24. 人工智能语音交互开发·麦克风

人工智能语音交互产品开发难点是什么?

在人工智能项目的开发中,主要难点是软件和硬件配合,软件和硬件分别隶属于两个独立的团队,并且这个团队所用到的知识是分科的。这导致硬件整合难度极高。

我们的教育体系最大的问题就是分科,而我们生活和给做中会用到大量跨界知识。其实人与人之间产生的差距,很多时候就是人们所掌握的跨界知识造成的。

我门经过K12教育和高等教育,你根你的同学接受的的相同的教育,但是当大家都步入社会之后,十年再聚,你就会发现,餐桌熟悉的面孔,发生了巨大的变化,我这里指的是,收入的变化,这种变化不是差一点,而是巨大的落差。

造成这种情况的其中一个因素就是,他掌握了你没有掌握的跨界知识,你们专业以外的知识。例如金融知识,你们相同的收入,但是他懂的理财。

再讲多了就跑题了,这里是想说,同时懂的硬件和软件的人才,凤毛菱角。极其稀缺!!!

跨界的沟通成本是巨高无比的,并不是吧各个领域的人都凑齐,召集起来,开个会,用时髦的词叫:“拉通对齐和共识”就能解决的。人的思考收到他所掌握专业知识的思维定势。多数技术人员无法 用产品视角去思考并解决问题,产品人员受制于专业知识,也不理解技术遇到的问题。那市场呢、客服呢…… 每个人都受限于自己的认知。

而这个团队需要的是一个能做到,高视点,宽视野,不受思维定势影响的人,否则就会遇到不可预约的天花板,如果是创业团队,只有一个结果:失败。

我曾经提出过一个理论:“多维度架构”,有兴趣可以在网上搜索。起因是因为现在很多公司配置了很多架构师岗位,然后他们分别对自己擅长的领域作出架构设计,最终再讲这些拼合在一起,结果这种问题暴露,事故频发。

从今天开始,我会陆续写一些关于人工智能语音交互开发文章,里面有我们遇到的问题,以及解决方案。

1.24.1. 人工智能语音交互涉及哪些硬件

语音交互绕不开三个硬件,声卡、麦克风和扬声器。

笔记本电脑和手机上都集成了麦克风和扬声器两个设备,声卡通常都是焊接在电路板上的,已经甚少人接触到声卡这个独立硬件。

目前我们人手一部手机,手机都是集成的麦克风、喇叭跟声卡,对用户来说一般不用操心这些技术问题,开机使用即可。更多是我们开发者去操心。

对于常规一般APP来说,开发人员也不用去操心麦克风和喇叭,直接写APP调用即可。例如音视频APP,它们从喇叭播放音乐,比较少使用麦克风,甚至根本用不到。即使使用麦克风时,更多是先把扬声器静音,然后完成声音采样,再回复播放器。另外手机的麦克于听筒位置设计是分开的。扬声器发出的声波并不会直怼麦克风。也不会出现声音回路,产生啸叫。这是手机结构设计的决定的。

如果你是80后,自己组装过台式机,喜欢玩电竞…… 你是否思考过为什么要带电竞耳机?用音箱直出,再安装一个台式麦克风不行吗?答案是不行,我们普通电脑声卡没有声音抑制回声消除功能。多媒体音箱发出的声音,会被麦克风采集到,然后进入电脑,再从音箱中播放出来,形成环路。所以我们必须带耳机,耳机里的声音并不会传递给麦克风。

大家是否还遇到另一个问题,你用电脑听歌,也想让对方也能听到?例如,你打开游戏,进入房间,跟小伙伴组团群聊,此时你打开一个播放器播放音乐,你想烘托一下直播间的气氛,结果你会发现只有自己能听到播放的音乐,其他小伙伴只能听到你麦克风传过去的声音,没有背景音乐。

你用即时通讯软件语音聊天,是否打开录音软件,能把聊天内容程录下来。

在语音交互产品的设计中,你会遇到很多上面类似的问题,还会发现,为什么别人写的软件实现了,你安装SDK去调用,始终不成功?

1.24.2. 语音识别中的麦克风回采

在开发人工智能语音交互中,绕不开一个技术,麦克风回采。

用一句话说明,你的麦克风不能把自己喇叭发出的声音录进去。举例:

你问:小爱同学,今天有什么新闻吗?

小爱:今天新闻…… 然后就一直播放。

此时小爱同学的麦克风在监听你的语音指令,同时也听到了它自己喇叭发出的声音,最终麦克中有自己喇叭的声音,和用户发起的唤醒指令。此时语音识别很混乱,小爱不知道是你在讲话,还是其他声音。

我门希望小爱同学,只听到你讲的语音指令,不希望任何其他声音影响到系统的唤醒和语音识别。

这时就用到了麦克风回采技术。

输出到喇叭的声音,分一路出来送给音频处理芯片,麦克风采集的声音送到音频处理芯片。芯片吧啦吧那一路音频消除,最后送给系统的只有纯净的说话人声音。此时再做语音唤醒和识别,就不会受到干扰,提高了识别精准率

1.24.3. 麦克风识别过程中有哪些影响因素

市场上的麦克风的种类很多,例如:

  1. 动圈麦克风:利用电磁感应原理,将声音信号转化为电信号,适合现场表演和乐器录音。
  2. 电容麦克风:根据振膜的不同分为大振膜和小振膜,适合录制人声和细节丰富的声音。
  3. 铝带麦克风:铝带麦克风是一种通过悬挂在磁场中的薄铝带振动切割磁力线产生电信号,以自然细腻的中频和顺滑的高频响应为特点的动圈式麦克风。
  4. 碳粒麦克风:碳粒麦克风是一种利用声波振动改变碳粒松紧度以调节电阻,从而将声音信号转化为电信号的早期麦克风,结构简单但失真较大,曾广泛用于早期电话等设备。
  5. 驻极体麦克风:驻极体麦克风是一种利用预先带电的驻极体薄膜感应声波振动产生电信号,具有体积小、成本低、灵敏度高特点的电容式麦克风,广泛用于手机、耳机等便携设备。

每种麦克风都有它的应用领域,在我门AI项目中用到最多的拾音麦克风,主要是集体麦克风“驻极体麦克风” 还有,硅麦克风(MEMS Microphone)是采用微机电系统技术制造,通过硅基振膜感应声波并转换为电信号,具有体积微小、性能稳定、抗干扰强的麦克风,广泛应用于智能手机、可穿戴设备等。

其他麦克风体积大,电容麦克风需要48V幻象电源供电,都无法应用在我门的消费电子产品中。不过任何事都有例外,例如我门做的事一个会议系统,大型会场我门可以使用很多动圈麦克风,连接到调音台,在输出给我门系统。

在市场上采购的麦克风,俗称“咪头”,包括了“驻极体麦克风” 还有“硅麦克风”质量参差不齐,造成这种情况的因素很多,例如

他们只是加工厂,并不差搞声学产品的研发的,工人只是按照加工工艺吧产品做出了。很多小厂也没有测试的实验室,也不具备声学测试能力。这些麦克风是消费级别的,很多是用在一次性消费产品上,比如廉价的毛绒玩具。

所以麦克风的参数指标很乱,这就给我门开发过程中遇到很多困扰。因为我门也不是搞声学的,也不知道这些参数将会给产品带来哪些问题。我门锁遇到的问题都是测试同事们反复摸索出来的。

1.24.4. 频率范围与听觉范围的关系

麦克风频率响应范围(Microphone Frequency Response Range)是描述麦克风对不同频率声音信号的灵敏度特性的关键参数,它反映了麦克风在不同频率下输出信号的强弱变化,直接影响麦克风对声音的还原能力。

人类听觉的理论范围约为 20Hz(低频,如雷鸣、低音鼓)到 20kHz(高频,如鸟鸣、小提琴高音)。若麦克风的频率响应范围覆盖这一区间(如 20Hz - 20kHz),则能较好地还原人耳可听的所有声音,适合人声、音乐等通用场景。

事实上所有麦克风都能采集到 20Hz~20khz 的声音,但是普通麦克风存在失真,只有录音棚级别的麦克风能达到参数指标。

生产出 20Hz ~ 20kHz 且失真极地的麦克风,成本很高,技术都掌握那些品牌麦克风手中。华强北消费级的麦克风是无法做到的,折中的做法就是缩小拾音范围,例如人说话的声音频率范围在100-500Hz之间,那么麦克风在设计和选材的时候,只要考虑让这段频率表现最佳,就能做到完美的人声录音。

我门在做人工志刚产品开发的时候,选择麦克风,就要看用途了,因为主要是采集人声,所以在挑选麦克风的时候选择人生优化的麦克风最佳。

1.24.5. 蓝牙麦克风问题

在人工智能领域,也会用到蓝牙麦克风,这里的抗相当多。

首先是带宽问题,蓝牙麦克风不同于内置麦克风,内置麦克风或者有线麦克风直接链接声卡,可以直接无损采集16位PCM音频,采集过程不受其他因素影响。而蓝牙传输是 SBC(Subband Coding,子带编码) 编码,带宽是 320kbps,SBC到达设备之后,再进行PCM音频采集。

然后是延迟问题,蓝牙音频传输是有延迟的。

接着是频谱问题,蓝牙版本4.x/5.x 之分,有经典蓝牙和低功耗蓝牙之分,传输速度有差异,受传输距离影响。蓝牙频率是2.4G 与 Wifi 网络公用,目前2.4G 频率已经饱和,如画公司没有铺设网线,所有电脑都适用AP无线上网,那多半你会遇到,2.4G频谱密度问题,信道资源紧张,导致信号相互压制。此时,你的蓝牙设备会出现断断续续的链接,播放声音卡顿,录音数据帧率丢失,录音断断续续。

最后再使用过程中,你要考虑蓝牙管理管理,这场包括了扫描,配对,连接/断开,广播,还有蓝牙设备切换。这里的逻辑极其复杂。

当蓝牙麦克风链接,你要切换当前麦克风位蓝牙设备。有些安卓版本时自动切的,有些你需要自己维护当前设备。

即使是蓝牙音频设备,也分成耳机,车载音响,蓝牙音箱,真无线耳机等等。。。需要根据你的实际情况进行设置。

当蓝牙麦克风断开,你需要切换回机身麦克风,否则其他APP将识别不到机身麦克风。

每个安卓版本(来自各种厂商的魔改安卓)对默认音频设备的处理规则都不同。你必须一个一个去测试。

有些版本的安卓系统,当HDMI连接后,还会吧音频切到HDMI,有些系统会切喇叭,麦克风不处理。

有些版本的安卓当你连接无线投屏,也会改变默认的音频设备。

总之各种规则,没有规律可循,你需要一个一个测试。

单声道(MONO)和立体声(STEREO) 的问题。

有线录音,是可以实现立体声录音的,也就是两个麦克风同时录音,放在左/右两个声道里。蓝牙麦克风通常只有一路,只能录单声道音频。