1、方案背景
智能语音交互作为物联网领域的一个重要生态成员,是一种全新的交互方式,它能够解放双手,随时提供服务,无须借助任何按键。近年来智能家居逐渐走入千家万户,产业市场规模不断增长。智能家居产品种类繁多,很多家庭有着智能门锁、扫地机器人、智能电视、智能洗衣机、智能电冰箱等不同类型的智能家居产品,这些产品需要一个交互性好的控制中心,基于智能语音交互技术的智能音箱脱颖而出。想必很多开发者都有玩过天猫精灵、小爱同学或者小度吧,看到这些炫酷的人工智能产品,是不是也很想搞清楚它到底怎么工作的冲动,是不是也想自己打造一台专属智能语音交互产品。仅仅通过说出“HaaS HaaS”、“天猫精灵”、或“小爱同学”,就可以唤醒它进行语音交互。在商业领域的人工智能产品要么是C或者C++开发,工作量巨大。本方案以HaaS EDU K1为硬件载体,基于HaaS云端一体智能语音交互框架,通过数100行Python代码帮助你轻松打造一款智能音箱。
2、智能语音交互技术
智能语音交互涉及语音识别、语音合成、自然语言理解等技术,实现“能听、会说、懂你”式的智能人机交互体验。通过语音识别将语音转为句子,通过NLP自然语音处理让机器理解句子并回答,再将句子转为语音。
2.1 智能语音交互全链路
智能语音交互的全链路较长,从语音输入到语音合成输出通常包括端点检测、信号处理、语音唤醒、语音识别、自然语言处理、语音合成、语音播放等步骤,如下图所示:
其中语音交互包含的内容如下图所示,按照算法流程分成以下四项:
1)识别是否唤醒设备 (KWS,语音唤醒)
2)识别说的话(ASR ,Automatic Speech Recognition 自动语音识别技术)
3)对识别的内容提取信息并处理(NLP,Natural Language Processing自然语言处理 )
4)把处理结果发出声音给人(TTS,TextToSpeech 从文本到语音技术)
2.1.1 语音唤醒技术
语音唤醒在学术上被称为keyword spotting(简称KWS),需要在连续语流中实时地检测出说话人的特定片段。这里要注意,检测的“实时性”是一个关键点,语音唤醒的目的就是将设备从休眠状态激活至运行状态,所以唤醒词说出之后,需要立刻被检测出来。那么,该怎样评价语音唤醒的效果呢?通行的指标有四个方面,即唤醒率、虚警率、响应时间和功耗水平:
- 唤醒率,指用户交互的成功率,专业术语为召回率(被唤醒次数中正确唤醒的比例)。
- 虚警率,用户未进行交互而设备被唤醒的概率(被唤醒次数中被误唤醒的比例)。
- 响应时间,指从用户说完唤醒词后,到设备给出反馈的时间差。
- 功耗水平,即唤醒系统的耗电情况。很多智能设备是通过电池供电,需要满足长时续航,对功耗水平就比较在意。
语音唤醒能力主要依赖于语音唤醒模型(下称“唤醒模型”),是整个语音唤醒核心。唤醒模型主要负责在听到唤醒词后马上切换为工作状态,所以必须要实时监测,才能做到听到后及时反馈。一是需要实时响应,二是唤醒模型对算力的要求不高,一般唤醒模型是做在本地的(区别于云端的ASR识别)。这就是我们即使没有联网,你叫“HaaS HaaS”,她也会答应你的原因。
2.1.2 语音识别技术
语音识别技术即Automatic Speech Recognition(简称ASR),是指将人说话的语音信号转换为可被计算机程序所识别的信息,从而识别说话人的语音指令及文字内容的技术。语音识别主要是将人类语音中的词汇内容转换为计算机可读的输入,一般都是可以理解的文本内容,也有可能是二进制编码或者字符序列。但是,我们一般理解的语音识别其实都是狭义的语音转文字的过程,简称语音转文本识别(Speech To Text,STT)更合适,这样就能与语音合成(Text To Speech,TTS)对应起来。
语音技术在近年来开始改变我们的生活和工作方式。对于某些嵌入式设备来说,语音成为了人机交互的主要方式。出现这种趋势的原因,首先是计算能力的不断提升,通用GPU等高计算能力设备的发展,使得训练更复杂、更强大的声学模型(Acoustic Model, AM)变得可能,高性能的嵌入式处理器的出现,使得语音识别的终端应用变得可能;其次,借助近乎无处不在的互联网和不断发展的云计算,我们可以得到海量的语音数据资源,真实场景的数据使得语音识别系统变得更加鲁棒;最后,移动设备、可穿戴设备、智能家居设备、车载信息娱乐系统正变得越来越流行,在这些设备上,语音交互变成了一个无法避免的交互方式。目前,基于近场信号的、受控环境(低噪声、低混响)下的标准音语音识别能够达到很高的水平。然而在智能音箱开放性的真实环境,语音识别依然是一个不小的挑战,需要结合前端信号处理一起来优化。
2.1.3 自然语言处理技术
NLP: 自然语言处理(Natural Language Processing) 是研究人与计算机交互的语言问题的一门学科,是指用计算机对自然语言的形、音、义等信息进行处理,即对字、词、句、篇章的输入、输出、识别、分析、理解、生成等的操作和加工。实现人机间的信息交流,是人工智能界、计算机科学和语言学界所共同关注的重要问题。在人工智能领域或者是语音信息处理领域中,学者们普遍认为采用图灵试验可以判断计算机是否理解了某种自然语言,具体的判别标准有以下几条:
- 第一,问答,机器人能正确回答输入文本中的有关问题;
- 第二,文摘生成,机器有能力生成输入文本的摘要;
- 第三,释义,机器能用不同的词语和句型来复述其输入的文本;
- 第四,翻译,机器具有把一种语言翻译成另一种语言的能力。
2.1.4 语音合成技术
语音合成是通过机械的、电子的方法产生人造语音的技术。TTS技术(又称文语转换技术)隶属于语音合成,它是将计算机自己产生的、或外部输入的文字信息转变为可以听得懂的、流利的汉语口语输出的技术。
语音合成的系统可分为前端和后端,如下图所示:
基于深度学习的语音合成:随着AI技术不断发展,基于深度学习的语音合成技术逐渐被人们所知道,DNN/CNN/RNN等各种神经网络构型都可以用来做语音合成系统的训练,深度学习的算法可以更好地模拟人声变化规律。
2.1.4.1 语音合成步骤
文本处理
这一步做的事情是把文本转化成音素序列,并标出每个音素的起止时间、频率变化等信息。
作为一个预处理步骤,它的重要性经常被忽视,但是它涉及到很多值得研究的问题,比如拼写相同但读音不同的词的区分、缩写的处理、停顿位置的确定等等。
语音合成
狭义上这一步专指根据音素序列(以及标注好的起止时间、频率变化等信息)生成语音,广义上它也可以包括文本处理的步骤。
3、HaaS云端一体智能语音交互方案
云端一体涉及端、云,设备端以HaaS EDU K1为硬件载体,集成AliOS Things
3.1 硬件组成
3.1.1 HaaS语音扩展板
HaaS语音扩展板是专门为HaaS EDU K1教育神器打造的,无缝对接,即插即用。
3.1.2 麦克风和喇叭
如果没有HaaS语音扩展板也没有关系,请按照如下步骤接入麦克风和喇叭:
3.2 系统框架
整个框架及交互流程如下:
从框架可以看到,它是一个完整的云端一体智能语音全链路交互流程,包括了本地语音唤醒、回声消除、降噪、ASR、NLP、TTS等。基于它可以实现智能语音交互产品的开发。
接下来看一下基于HaaS AI框架的云端一体开发流程,左侧是HaaS EDU K1设备端通过麦克风进行语音采样,经过回声消除和降噪后进行唤醒识别,再通过阿里云智能语音交互的一句话识别能力进行后续的语音对话识别。然后通过阿里云对话机器人对识别的结果进行语义的理解,再进行回答。最后再通过阿里云智能语音交互平台的语音合成功能将回答文字结果转换成语音下载到设备端进行语音播放。开发者可以通过阿里云智能语音交互平台提供的丰富定制化能力定制语音类型、比如杭州话,并且可以通过个性化人声定制将语音助手定制为老婆或女友的声色。通过这个流程帮助开发者快速打造定制化程度很高的智能语音交互产品。
3.1.1 阿里云智能语音交互平台
3.1.1.1 语音识别(ASR)
阿里云智能语音交互平台的语音识别包含不同的识别服务:
- 实时语音识别服务:对长时间的语音数据流进行识别,适用于会议演讲、视频直播等长时间不间断识别的场景。
- 一句话识别服务:对一分钟内的短语音进行识别,适用于对话聊天,控制口令等较短的语音识别场景。
- 录音文件识别服务:对上传的音频文件进行识别,适用于非实时识别场景。
在本方案中运用了一句话识别功能,用于识别语音指令。
3.1.1.2 语音合成(TTS)
阿里云智能语音交互平台的语音合成服务包括:
- 语音合成服务:将文本转化为接近真人的语音服务,包含男女童音、多语言/方言。适用于智能客服、电话外呼等虚拟对话场景。
- 长文本语音合成服务:将超长文本(十万字)合成为接近真人的语音服务,包含男女童音、多语言/方言(且拥有音频重复使用权)。适用于文学伴读、新闻阅读等场景。
- 离线语音合成:在弱网或无网状态下,通过设备本地的语音合成模型,将文本转换成自然流畅的语音。
在本方案中运用了它的第一个语音合成服务,对短文本进行合成。
3.1.2 阿里云智能对话机器人平台
阿里云智能对话机器人依托阿里云AI技术,提供一体化对话机器人服务,精准理解用户意图,支持界面化流程配置、自定义三方业务集成等功能。本方案中运用它来构建问答、多轮对话流、闲聊等功能。
3.3 系统架构
HaaS EDU K1主控设备中集成AliOS Things物联网操作系统,它构建了智能语音交互相关的应用组件,可以通过Python语言很方便的进行功能调用。
- AI Agent组件:是AliOS Things上的AI引擎核心模块,后端接入不同的推理引擎,本案例中使用了TFLite-Micro推理引擎,结合ARM CMSIS NN算子库适配在HaaS EDU K1上,用于本地离线唤醒词或快捷词识别。
- uCloud AI组件:集成了阿里云智能语音交互及对话机器人接口,与云端进行交互。
- uVoice组件:是AliOS Things上智能语音解决方案的核心组件,提供了本地音频,URL音频,TTS合成等基础功能,音频格式支持mp3, m4a, wav, opus等主流格式,本案例中使用它来进行本地mp3语料的响应播报。
4、案例展示
基于本方案实现的智能语音交互助手案例如下:
https://player.bilibili.com/player.html?bvid=BV1QM4y1G7Yf
详细请参考文章《爆肝一周,用Python在物联网设备上写了个智能语音助手》
5、总结
近年来,智能语音交互技术在当今很多领域已经得到充分应用,比如智能家居、可穿戴设备、智能车载等领域,智能语音作为交互入口发挥着巨大作用。但是很多开发者想要学习运用智能语音技术门槛高,没有一个比较完整的方案或途径进行学习。而HaaS云端一体智能语音交互方案以HaaS EDU K1物联网教育开发板为硬件载体,让开发者能够学习如何开发云端一体智能语音交互产品,纯Python的开发方式也将大大缩短开发时间,得以快速场景化应用。