语音子系统应用 | 学习笔记

简介: 简介:快速学习语音子系统应用

开发者学堂课程【YoC 基础软件平台应用介绍:语音子系统应用】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/59/detail/1079


语音子系统应用  


内容介绍

一、功能简介

二、语音子系统交互机制

三、多媒体服务

四、异构多核通信机制


 一、功能介绍

image.png

这张图是YoC整个的软件框架,可以看到语音子系统在智能音箱领域占据着非常重要的位置。语音子系统承载着采集、播放、算法处理、上云识别、云指令响应等功能,涉及到了智能音箱领域中的主要功能。image.png

上图是语音子系统的软件框架,它基于 AliOS 互联网操作系统开发,采用 Aoache License2.0分发,可以运用在智能音箱 、语音机器人、故事机等应用方案上,从底到上主要提供了轻量级的ASR主见、多媒体服务、麦克风服务、AI语音对阶层、NLP命令服务等模块,它有如下几个特点

1.非常的轻量,可以在低成本的解决方案中轻松应用

2.提供了云端对阶层,可以适配使用不同的人工智能云端能类 比如智能音响中常见的NLP、ASR、TTS等功能

3.提供自主开发的多媒体服务,按照经典的播放器四层架构来设计。开发组可以很方便的来裁剪和扩展相关的功能

4.通过DNP指令加速和内存相关的优化提供了高性能的编解码器,同时内存占用也大幅降低

5.提供了轻量级的ASR组件,它主要提供了音频采集和输出功能来屏蔽不同的codec实现。第三方语音芯片如果直接对接好ASR组件的话,仅做简单的修改就可以直接应用于语音子系统中提供的相关的组件 原生支持多核异构架构,算法和应用等可在不同的核上运行  


二、语音子系统交互机制

image.png

1.语音交互的主要流程

以智能音箱为例,麦克风收到用户的语音指令后,会先经过回声消毒算法处理。处理后的数据送到本地语音识别模块,判断当前是否是关键词唤醒。如果是的话会将用户语音数据持续的送到麦克风服务,直到语音结束或响应结束 与此同时,麦克风服务将会从底层收到语音数据,经过语音对接层送到所接入的云平台,在线识别和语音简析,简析到的结果经过NLP命令服务层回调到上层应用来响应具体的指令。如果说此时指令是播放一首歌,上层应用会将解析到的歌曲链接递交到多媒体服务进行播放这样就完成了整个语音交互的过程。 从图中可以看到,语音数据的回声消除等算法的处理,可以通过 MailBox 的核间处理机制,运行在不同的核上。回声消除后的数据统一送到 voice 组件,递交到 MIC 服务。同时可以看到,云对接层 MediaPlayerGDS 等功能可以对接到不同的云平台上,充分运用不同人工智能云平台的优势,以提升整个产品的竞争力


三、多媒体服务

image.png

多媒体系统在智能语音解决方案中占据着特别重要的地位。上图是多媒体系统软件框架,多媒体系统可以播放一个网络音乐,平时听了一个音乐感觉好像很简单,但实际上它会经过很多复杂的过程。

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播放等功能


四、异构多核通信机制

image.png

因为芯片生产工艺成本的原因,单个核的算力是很有限的。然而对于智能语音芯片来说,它要跑很多功能。比如蓝牙、网络协议栈、回声消除算法、语音消除算法。对于多媒体系统而言,还会涉及到音频的编辑码功能,这些都需要很高的算率。 所以通常很多低成本的语音芯片,采用了多核架构来解决这个问题。为了满足多核的这种需求,提供了IPC多核通信组件,来屏蔽底层的实现差异。比如在盘古芯片中,通过将音频编解码,语音识别算法等模块,安排到不同的核算来运行。可以将整个的算类均衡的摊开到不同的核上,充分合理的运用硬件资源。 与此同时,通过将应用和AI算法分开部署,独立在不同的核上开发。这样算法功能师和应用开发师仅在对应的核上来做开发,进一步降低了开发的复杂度。

相关实践学习
达摩院智能语音交互 - 声纹识别技术
声纹识别是基于每个发音人的发音器官构造不同,识别当前发音人的身份。按照任务具体分为两种: 声纹辨认:从说话人集合中判别出测试语音所属的说话人,为多选一的问题 声纹确认:判断测试语音是否由目标说话人所说,是二选一的问题(是或者不是) 按照应用具体分为两种: 文本相关:要求使用者重复指定的话语,通常包含与训练信息相同的文本(精度较高,适合当前应用模式) 文本无关:对使用者发音内容和语言没有要求,受信道环境影响比较大,精度不高 本课程主要介绍声纹识别的原型技术、系统架构及应用案例等。 讲师介绍: 郑斯奇,达摩院算法专家,毕业于美国哈佛大学,研究方向包括声纹识别、性别、年龄、语种识别等。致力于推动端侧声纹与个性化技术的研究和大规模应用。
相关文章
|
开发工具 Android开发
Android平台GB28181设备接入端语音广播技术探究和填坑指南
GB/T28181-2016官方规范和交互流程,我们不再赘述。
110 0
|
8月前
|
Web App开发 安全 API
想开发一款带有视频通话/共享屏幕功能的产品?那WebRTC是你必须要知道的!
一名技术爱好者在研究如何为开源项目集成视频通话功能时,深入学习了WebRTC技术。WebRTC是一个API,允许浏览器和应用实现实时音视频通信,简化了之前复杂的技术挑战,如音视频处理和网络传输。该技术可用于视频通话、桌面共享、视频会议等多种场景。在WebRTC中,通过信令交换、STUN/TURN服务器和ICE框架处理网络连接和通信路径,实现点对点连接。与WebSocket不同,WebRTC专注于高质量实时通信,使用UDP协议以降低延迟。接下来的文章将分享如何实现WebRTC的视频通话功能。
|
8月前
|
并行计算 Linux 异构计算
分享一款刚开源上线3天的音乐人声分离工具!无需联网!页面化操作!
分享一款刚开源上线3天的音乐人声分离工具!无需联网!页面化操作!
131 1
|
Web App开发 开发工具 Android开发
Android平台不需要单独部署流媒体服务如何实现内网环境下一对一音视频互动
我们在做内网环境的一对一音视频互动的时候,遇到这样的技术诉求:如智能硬件场景下(比如操控智能硬件),纯内网环境,如何不要单独部署RTMP或类似流媒体服务,实现一对一音视频互动。
|
开发工具 Android开发 开发者
Android平台GB28181接入端语音广播和语音对讲规范解读和技术实现
我在之前的blog,有提到过Android端GB28181接入端的语音广播和语音对讲,今天主要从GB/T28181-2016官方规范和交互流程,大概介绍下Android平GB28181接入端的语音广播和语音对讲。
252 0
|
人工智能 达摩院 搜索推荐
语音交互如何改变人与互联网的关系 | 学习笔记
快速学习语音交互如何改变人与互联网的关系
132 0
|
缓存 UED
语音直播系统,清理缓存功能的设计细节
语音直播系统,清理缓存功能的设计细节
|
传感器 人工智能 监控
空鼠语音按键三合一交互,这样玩电视更方便
对于智能电视来说,交互方式一直是厂商们在努力研发的方向。传统的遥控器按键对于智能电视是种非常麻烦的交互方式,如何更好地提升操控体验,是各个厂商比拼技术实力的关键点。
430 0
空鼠语音按键三合一交互,这样玩电视更方便