开发者学堂课程【YoC 基础软件平台应用介绍:语音子系统应用】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/59/detail/1079
语音子系统应用
内容介绍
一、功能简介
二、语音子系统交互机制
三、多媒体服务
四、异构多核通信机制
一、功能介绍
这张图是YoC整个的软件框架,可以看到语音子系统在智能音箱领域占据着非常重要的位置。语音子系统承载着采集、播放、算法处理、上云识别、云指令响应等功能,涉及到了智能音箱领域中的主要功能。
上图是语音子系统的软件框架,它基于 AliOS 互联网操作系统开发,采用 Aoache License2.0分发,可以运用在智能音箱 、语音机器人、故事机等应用方案上,从底到上主要提供了轻量级的ASR主见、多媒体服务、麦克风服务、AI语音对阶层、NLP命令服务等模块,它有如下几个特点
1.非常的轻量,可以在低成本的解决方案中轻松应用
2.提供了云端对阶层,可以适配使用不同的人工智能云端能类 比如智能音响中常见的NLP、ASR、TTS等功能
3.提供自主开发的多媒体服务,按照经典的播放器四层架构来设计。开发组可以很方便的来裁剪和扩展相关的功能
4.通过DNP指令加速和内存相关的优化提供了高性能的编解码器,同时内存占用也大幅降低
5.提供了轻量级的ASR组件,它主要提供了音频采集和输出功能来屏蔽不同的codec实现。第三方语音芯片如果直接对接好ASR组件的话,仅做简单的修改就可以直接应用于语音子系统中提供的相关的组件 原生支持多核异构架构,算法和应用等可在不同的核上运行
二、语音子系统交互机制
1.语音交互的主要流程
以智能音箱为例,麦克风收到用户的语音指令后,会先经过回声消毒算法处理。处理后的数据送到本地语音识别模块,判断当前是否是关键词唤醒。如果是的话会将用户语音数据持续的送到麦克风服务,直到语音结束或响应结束 与此同时,麦克风服务将会从底层收到语音数据,经过语音对接层送到所接入的云平台,在线识别和语音简析,简析到的结果经过NLP命令服务层回调到上层应用来响应具体的指令。如果说此时指令是播放一首歌,上层应用会将解析到的歌曲链接递交到多媒体服务进行播放这样就完成了整个语音交互的过程。 从图中可以看到,语音数据的回声消除等算法的处理,可以通过 MailBox 的核间处理机制,运行在不同的核上。回声消除后的数据统一送到 voice 组件,递交到 MIC 服务。同时可以看到,云对接层 MediaPlayerGDS 等功能可以对接到不同的云平台上,充分运用不同人工智能云平台的优势,以提升整个产品的竞争力
三、多媒体服务
多媒体系统在智能语音解决方案中占据着特别重要的地位。上图是多媒体系统软件框架,多媒体系统可以播放一个网络音乐,平时听了一个音乐感觉好像很简单,但实际上它会经过很多复杂的过程。
1.媒体数据如果是在网络上,需要把这个数据给获取下来。这个过程叫做媒体数据源的获取。获取之后把数据中音频相关的数据给它挑选出来,为解复用。
2. 挑选出来的数据是一个压缩的音频编码后的数据,需要把它还原成原始数据,这个过程为解码。
3.还原后的数据叫音频 PCM 数据,可以对它做音频处理、音效处理,然后得到一个很好听的声音,这个过程叫做音频后处理。
4. 这些声音需要喇叭给播放出来,这个过程叫做输出渲染。
5.整个的处理过程其实需要很多的组件支撑,比如说用于 MP3 解码的解码器、比如一些高保真的音乐,像 aac、flac,比如说可以用于 voip 通信的 opus 编解码器,比如说可以让声音好听的音效组件
voice 多媒体服务主要有这些功能和特点
1.非常的轻量,整个装备系统可以做到50k以内,同时它非常易于裁剪和扩展,满足不同的产品要求
2.提供了核间解码功能,第四部分会详细讲解
3.音频解码的大致流程大概需要 halfone 解码、反量化、或者余弦反变换等处理模块。对于某些解码器可能还需要评断复制和参数立体声这几个模块的处理后,解码得到音频。通过研究发现音频编辑码计算量较大的就是这几个模块,所以基于此,我们对这些模块进行重写或者优化,降低了算类的需求最终为大家提供了高性能的音频编辑码器。
4.最后得益于我们所做的这些工作,音频首播延迟可以做到20ms以内。对于智能音箱这些语音产品是非常重要的,它提升了语音的响应速度,进一步提升了产品的竞争力。目前支持如下这些功能
·对于取流方式,支持内存取流、文件取流、atp取流、fifo 取流
·对于媒体复用格式,支持mp3、mp4、adts、flac、amrnb、ts、ogg等复用格式
·对于编码格式,支持 adpcm、mp3、aav、amrnb、amrwb、speex、opus、flac、G.711 等多种编码格式
·同时也支持hls直播、点播功能 ·还支持重采样、软件音量、音效、倍数播放、seek播放等功能
四、异构多核通信机制
因为芯片生产工艺成本的原因,单个核的算力是很有限的。然而对于智能语音芯片来说,它要跑很多功能。比如蓝牙、网络协议栈、回声消除算法、语音消除算法。对于多媒体系统而言,还会涉及到音频的编辑码功能,这些都需要很高的算率。 所以通常很多低成本的语音芯片,采用了多核架构来解决这个问题。为了满足多核的这种需求,提供了IPC多核通信组件,来屏蔽底层的实现差异。比如在盘古芯片中,通过将音频编解码,语音识别算法等模块,安排到不同的核算来运行。可以将整个的算类均衡的摊开到不同的核上,充分合理的运用硬件资源。 与此同时,通过将应用和AI算法分开部署,独立在不同的核上开发。这样算法功能师和应用开发师仅在对应的核上来做开发,进一步降低了开发的复杂度。