首页 > 代码库 > 【转】智能音箱技术概览

【转】智能音箱技术概览

转自:http://blog.csdn.net/jackytintin/article/details/62040823


对于没有使用过智能音箱的读者,可以观看 Echo 的官方广告,直观地体验下智能音箱。

目前的智能音箱多基于语音控制,其基本交互流程可以用图1 概括:1)用户通过自然语言向音箱提出服务请求或问题 2)音箱拾取用户声 
音(音箱本地完成)并分析(一般在服务器端完成)3)音箱通过语言播报(音箱端)和 APP 推送(关联的手机等)对用户的请求进行反馈。

技术分享

图1. 智能音箱基本交互方式

智能音箱可以以自然的方式(自然语言),为用户提供一些常用的服务,未来还可能成为为家庭的控制中枢

从用户的角度,可直观感知硬件和功能(图2)。其中,智能音箱的功能关系到产品设计和用户体验, 直接关系到产品的成败,我们会在产品分析的文章中进行深入分析。本文对智能音箱的硬件及运行在硬件之上,作为音箱“大脑”的系列算法进行简要介绍,希望读者能对智能音箱有更全面的了解。

技术分享

图2. 智能音箱硬件组成和功能示意

1. 硬件

图3展示了 Echo 拆解后的部件。可以看到,智能音箱的硬件并不算复杂(相对于无人驾驶等“重型”AI 产品)。但正如下面我们会反复强调的,智能音箱的各个模块都需要结合生产工艺、算法设计、产品体验等多个方面进行细致的打磨,才能达到比较满足的效果,而这其中做出需要多“痛苦的”折衷。

技术分享图3. Amazon Echo 拆解图【来源】

1.1 外观设计

智能音箱想要成为常驻案头的“家庭成员”,其形态必然是经过精心设计,在形状、大小、灯效甚至重量等因素要充分考虑在内。图 4 展示了一些智能音箱,读者可根据自己的审美,判断下哪些是想要或不想要放在家里的。

技术分享 
图4. 音箱ID设计(按阅读顺序依次为:Amazon Echo、Google Home、叮咚、若琪、若琪月石、联想音箱)(仅图示设计,不代表实际产品尺寸)

ID 设计除了出于美学和交互设计的考虑外,还要和音腔设计(影响音效)、麦列方案(影响语音交互)等相互耦合,需要通盘考虑。

1.2 扬声器

智能音箱本质上还是一款音箱,因此,提供用户认可的音质是产品存在的前提。但是智能音箱在扬声器的选择上,除了受到音箱尺寸限制,还要考虑麦列的拾间及后续的信号处理。

技术分享图5. Echo 扬声器及音腔设计【来源】

技术分享
图6. 若琪扬声器及音腔设计【来源】

图5和图6分别展示了 Echo 和若琪的扬声器设计,两者对比可以看到在选择扬声器上的不同折衷和权衡。

  • Echo 采用封闭式扬声器设计,高音和低音喇叭上下相对,声音各个方向是对称的,这有有利于前端信号处理,但音效会受到限制。若琪采用开口式设计,喇叭朝前,这样音效可以设计的更好,但信号处理难度会大。

  • 仅就音效而言,音腔越大越有利于设计,但这会导致最后智能音箱非常笨重。也因此,许多设计上都有音腔部分略微鼓起的外观设计(如 Google Home,叮咚)。

  • 为了支持双工(例如,在播放音乐的同时可以对音箱下达命令),扬声器的功率不能太大,这样就限制了音箱的最大音量。反过来,如果要确保音箱有较大的音量,可能会限制双工条件下的音箱理解用户语音的灵敏度。

1.3 麦克风阵列(Microphone Array)

麦克风阵列(以下简称麦列),是由一定数目的麦克风组成,用来对声场的空间特性进行采样并处理的系统。简单而言,使用麦列而非单个麦克风,是为了在用户距离音箱较远时,依然能够正常的收听用户的语音指令。智能音箱多使用环状麦列(图7),目前以 6(+1)麦为主流方案,也有2、4和8麦的产品。 

技术分享 
图7. 6+1 麦列

麦列方案主要受成本和算法两个因素限制。一方面,虽然麦克风本身成本并不是特别高,但增加麦克风数量需要配套的增加采样等后续硬件的投入,会大大增加成本。另一方面,麦列涉及一系列算法(见下文),算法设计难度和计算复杂度都会随着麦克风数量的增加而加大。

在选择麦克风时,除了指向性、灵敏度、信噪比、频响范围、失真度等常规的参数要求,其安放位置、开口设计也要考虑ID设计和扬声器的位置、功放等,需要全盘考虑。

1.4 主控板

本质上,和手机等移动设备的主板并无差别,包括主板、CPU、存储器等(如图8)。主控板的选择要在满足响应延迟的前提下,尽量压缩成本和功耗。 
技术分享

图8. 全志G102【来源】

1.5 蓝牙/WIFI

智能音箱需要服务器提供大部分功能,因此,WiFi 是不可缺少的模块。有些音箱会通过蓝牙同手机通信。

1.6 电池

目前主要的智能音箱还是依赖电源线供电,但不排除随着电源蓄电能力和成本的改善,智能音箱会向手机一样,脱离成为可自由移动的设备。如果使用电池,还要结合 ID 设计、音腔设计等因素,合理选择电池的大小和位置、充电方案等。图 9 展示的是 Echo Tab 的电池方案。

技术分享
图 9. Echo Tab 电池方案设计【来源】

2. 算法

用户在同音箱进行语音交互的时,后台有一系列算法在支撑的交互的正确进行。

如图10所示,总体而言,音箱工作时,麦列始终处于拾音状态(持续对声音信号进行采样、量化)。进过基本的信号处理(静音检测、降噪等),唤醒模块会判断是否出现唤醒词,如果是,后续语音会进行更复杂的语音信号处理,(理想情况下)得到干净的语音信号,开始真正的语音交互流程。 
技术分享

图10. 智能音箱交互

2.1 前端信号处理

2.1.1 语音检测(VAD)

语音检测(英文一般称为 Voice Activity Detection,VAD)的目标是,准确的检测出音频信号的语音段起始位置,从而分离出语音段和非语音段(静音或噪声)信号。由于能够滤除不相干非语音信号,高效准确的 VAD 不但能减轻后续处理的计算量,提高整体实时性,还能有效提高下游算法的性能。

VAD 算法可以粗略的分为三类:基于阈值的 VAD、作为分类器的 VAD、模型 VAD。

  • 基于阈值的 VAD:通过提取时域(短时能量、短期过零率等)或频域(MFCC、谱熵等)特征,通过合理的设置门限,达到区分语音和非语音的目的。这是传统的 VAD 方法。
  • 作为分类器的 VAD:可以将语音检测视作语音/非语音的两分类问题,进而用机器学习的方法训练分类器,达到检测语音的目的。
  • 模型 VAD:可以利用一个完整的声学模型(建模单元的粒度可以很粗),在解码的基础,通过全局信息,判别语音段和非语音段。

VAD 作为整个流程的最前端,需要在本地实时的完成。由于计算资源非常有限,因此,VAD 一般会采用阈值法中某种算法;经过工程优化的分类法也可能被利用;而模型 VAD 目前难以在本地部署应用。

2.1.2 降噪

实际环境中存在着空调、风扇以及其他各种各样的噪声。降低噪声干扰,提高信噪比,降低后端语音识别的难度。 
常用的降噪算法有 自适应 LMS 和维纳滤波等。

2.1.3 声学回声消除(Acoustic Echo Cancellaction, AEC)

AEC也是一种常见的技术,在语音通话中,AEC是必不可少的基础技术。 
技术分享

图11. AEC 示意【来源】 

具体的,AEC 的目的是,在音箱扬声器工作(播放音乐或语音)时,从麦克风中收集的语音中,去除自身播放的声音信号。这是双工模式的前提。否则,当音乐播放时,我们的声音信号会淹没在音乐声中,不能继续对音箱进行有效的语音控制。

2.1.4 去混响处理

在室内,语音会被墙壁等多次反射,麦克风采集到(图12)。混响对于人耳完全不是问题,但是,延迟的语音叠加产生掩蔽效应,这对语音识别是致命的障碍。

技术分享

图12. 混响【来源】 

对于混响,一般从两个方面来尝试解决:1)去混响 2)对语音识别的声学模型加混响训练。由于真实环境的复杂性,一定的前端去混响算法还是非常有必要的。

2.1.5 声源定位(Direction of Arrival estimation, DOA)

声源定位是根据麦列收集的声音语,确定说话人的位置。DOA 至少有两个用途,1)用于方位灯的展示,增强交互效果;2)作为波束形成的前导任务,确定空间滤波的参数。

声源定位有如下常用方法有基于波束扫描的声源定位基于起分辨率率谱估计的声源定位以及 基于到达时间差(Time Difference of Arrival, TDOA)的声源定位。考虑到算法复杂性和延时,一般采用TDOA方法。

2.1.6 波束形成(Beam Forming, BF)

波束形成是利用空间滤波的方法,将多路声音信号,整合为一路信号。通过波束形成,一方面可以增强原始的语音信号,另一方面抑制旁路信号,起到降噪和去混响的作用(图13)。

技术分享

图13. 波形成示意图【来源】 

2.2 唤醒

出于保护用户隐私和减少误识别两个因素的考虑,智能音箱一般在检测到唤醒词之后,才会开始进一步的复杂信号处理(声源定位、波束形成)和后续的语音交互过程。

一般而言,唤唤醒模块是一个小型语音识别引擎。由于目标单一(检测 出指定的唤醒词),唤醒只需要较小的声学模型和语言模型(只需要区分出有无唤醒词出现),声学打分和解码可以很快,空间占用少,能够在本地实时。

也有唤醒做为关键词检索(key word search)或文本相关的声纹识别问题来解决。

2.3 语音交互

语音交互的基本流程如图16所示。下面分别对各个环节进行简要介绍。 

技术分享

图14. 语音交互基本流程

ICASSP’17 关于对话系统的 tutorial ,并附有系统性的参考文献。

2.3.1 语音识别(Automatic Speech Recognition, ASR)

语音识别的目的是将语音信号转化为文本。语音识别技术相对成熟。目前,基于近场信号的、受控环境(低噪声、低混响)下的标准音语音识别能够达到很的水平。然而在智能音箱开放性的真实环境,语音识别依然是一个不小的挑战,需要接合前端信号处理一起来优化。

2.3.2 自然语言理解(Natural Language Understanding, NLU)

NLU 作为一个研究课题还远没有被解决。但是在限定领域下,结合良好的产品设计,我们还是能够利用现有技术,做出实用的产品。

可以将基于框架的(frame-based) NLU 分为三个子问题去解决(图15): 
领域分类:识别出用户命令所属领域。其中,领域是预先设计的封闭集合(如产品设计上,音箱只支持音乐、天气等领域),而每个领域都只支持无限预设的查询内容和交互方式。 
意图分类:在相应领域,识别用户的意图(如播放音乐、暂停或切换等)。意图往往对应着实际的操作。 
实体抽取(槽填充):确定意图(操作)的参数(如确定,具体是播放哪首歌或哪位歌手的歌曲)。

技术分享

图15. 基于框架的自然语言理解

2.3.3 对话管理(Diaglou Management, DM)

多轮对话对于自然的人工交互非常重要。比如,当我们询问“北京明天的天气怎么?”,之后,更习惯追问“那深圳呢?”而不是重复的说”**深圳明天的天气怎么?**

在 NLU 无有得到很好解决的情况下,对话管理似乎不可能。好在限范围下,结合产品设计,还是能做的不错。一般的作法是,将轮对话解析出的参数做为上下文(全局变量),带入到下一轮对话;当前轮对话,根据一定的条件判断,是否保持在上一轮的领域,是否清空上下文。

不同于纯粹的聊天机器的对话管理,智能音箱的对话管理还有实际的操作功能(查询信息、提供控制指令)。

2.3.4 自然语言生成(Natural Language Generation, NLG)

目前完全自动化的 NLG 方法还不成熟。实际产品中,多采用预先设计的文本模板来生成文本输出。比如,播放歌曲时,生成语句为:“即将为您播放【歌手名】的【歌曲名】”。

2.3.5 语音合成(Speech Synthesis)

语音合成又叫做文语转换(Text-to-Speech,TTS),更常见可能是 TTS 这一称呼。TTS 的终极目标是,使机器能够像人一样朗读任意给定的文本。

评价实用的语音合成系统的两个主要的标准是1)可懂度(人能够听懂)和2)自然度(使人听着舒服)。目前,可懂度的问题基本得到解决。参数合成和拼接合成是TTS的两种主要合成方法,其中,参数计算量小,部署灵活,但自然较差;拼接接近真人发音,存储和计算资源高,一般只能在线合成。例如,Echo 采用的基于单元选择(unit selection)的拼接合成。

2.4 其他技术

最后,我们简单列举一些相对成熟,但还没有广泛应用于智能音箱的技术。

声纹识别

声纹识别是据语音波形反映说话人生理和行为特征的语音参数,自动识别说话人身份的一项技术。微信中的声音锁就是声纹技术的一项具体应用。

通过声纹识别,可以设计出更加个性化的服务。

人脸检测

如果音箱配置为摄像头,可以通人脸检测,确定用户的位置。一方面可以有更好的交互设计,另一方面可以辅助声源定位。

人脸识别

同声纹识别类似,人脸识别也可以用来确定用户的身份。

【转】智能音箱技术概览