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

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

开发者学堂课程【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算法分开部署,独立在不同的核上开发。这样算法功能师和应用开发师仅在对应的核上来做开发,进一步降低了开发的复杂度。

相关实践学习
一键创建和部署高分电影推荐语音技能
本场景使用天猫精灵技能应用平台提供的技能模板,在2-5分钟内,创建一个好玩的高分电影推荐技能,使用模板后无须代码开发,系统自动配置意图、实体等,新手0基础也可体验创建技能的乐趣。
达摩院智能语音交互 - 声纹识别技术
声纹识别是基于每个发音人的发音器官构造不同,识别当前发音人的身份。按照任务具体分为两种: 声纹辨认:从说话人集合中判别出测试语音所属的说话人,为多选一的问题 声纹确认:判断测试语音是否由目标说话人所说,是二选一的问题(是或者不是) 按照应用具体分为两种: 文本相关:要求使用者重复指定的话语,通常包含与训练信息相同的文本(精度较高,适合当前应用模式) 文本无关:对使用者发音内容和语言没有要求,受信道环境影响比较大,精度不高 本课程主要介绍声纹识别的原型技术、系统架构及应用案例等。 讲师介绍: 郑斯奇,达摩院算法专家,毕业于美国哈佛大学,研究方向包括声纹识别、性别、年龄、语种识别等。致力于推动端侧声纹与个性化技术的研究和大规模应用。
相关文章
|
8月前
|
API
天猫精灵的自定义语音技能创建流程
天猫精灵的自定义语音技能创建流程
166 0
|
8月前
|
开发工具 Android开发
Android平台GB28181设备接入端语音广播技术探究和填坑指南
GB/T28181-2016官方规范和交互流程,我们不再赘述。
|
3天前
|
前端开发 计算机视觉
人脸识别平台批量导入绑定设备的一种方法
人脸识别平台批量导入绑定设备的一种方法
11 0
|
3天前
|
并行计算 Linux 异构计算
分享一款刚开源上线3天的音乐人声分离工具!无需联网!页面化操作!
分享一款刚开源上线3天的音乐人声分离工具!无需联网!页面化操作!
|
8月前
|
人工智能 自然语言处理 应用服务中间件
用户和天猫精灵通过语音交互的一个典型流程分析
用户和天猫精灵通过语音交互的一个典型流程分析
107 0
|
8月前
|
编解码 监控 前端开发
如何快速实现Android平台前端设备接入能力
SIP(会话初始化协议)是在 IP网络上进行多媒体通信的应用层控制协议,以几种RFC的形式提供,其中最重要的是包含核心协议规范的RFC3261。该协议用于创建,修改和终止与一个或多个参与者的会话。通过会话,我们了解了一组进行通信的发送方和接收方,以及在通信过程中这些发送方和接收方保持的状态。会话的示例可以包括Internet电话呼叫,多媒体分发,多媒体会议,分布式计算机游戏等。
|
8月前
|
开发工具 Android开发 开发者
Android平台GB28181接入端语音广播和语音对讲规范解读和技术实现
我在之前的blog,有提到过Android端GB28181接入端的语音广播和语音对讲,今天主要从GB/T28181-2016官方规范和交互流程,大概介绍下Android平GB28181接入端的语音广播和语音对讲。
158 0
|
8月前
|
Android开发 开发者
Android平台GB28181设备接入端语音广播如何实现实时音量调节
Android平台GB28181设备接入,语音广播功能非常重要,本文要介绍的,不是语音广播的流程,语音广播流程,之前的blog也有非常详细的分享,感兴趣的可以参考官方规范书的交互流程:
|
存储 搜索推荐
语音平台开发,展现社交属性的重要功能
语音平台开发,展现社交属性的重要功能