智能音箱技术概览
Posted 桂。
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了智能音箱技术概览相关的知识,希望对你有一定的参考价值。
转自: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 其他技术
最后,我们简单列举一些相对成熟,但还没有广泛应用于智能音箱的技术。
声纹识别
声纹识别是据语音波形反映说话人生理和行为特征的语音参数,自动识别说话人身份的一项技术。微信中的声音锁就是声纹技术的一项具体应用。
通过声纹识别,可以设计出更加个性化的服务。
人脸检测
如果音箱配置为摄像头,可以通人脸检测,确定用户的位置。一方面可以有更好的交互设计,另一方面可以辅助声源定位。
人脸识别
同声纹识别类似,人脸识别也可以用来确定用户的身份。
以上是关于智能音箱技术概览的主要内容,如果未能解决你的问题,请参考以下文章