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