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

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

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

相关实践学习
达摩院智能语音交互 - 声纹识别技术
声纹识别是基于每个发音人的发音器官构造不同,识别当前发音人的身份。按照任务具体分为两种: 声纹辨认:从说话人集合中判别出测试语音所属的说话人,为多选一的问题 声纹确认:判断测试语音是否由目标说话人所说,是二选一的问题(是或者不是) 按照应用具体分为两种: 文本相关:要求使用者重复指定的话语,通常包含与训练信息相同的文本(精度较高,适合当前应用模式) 文本无关:对使用者发音内容和语言没有要求,受信道环境影响比较大,精度不高 本课程主要介绍声纹识别的原型技术、系统架构及应用案例等。 讲师介绍: 郑斯奇,达摩院算法专家,毕业于美国哈佛大学,研究方向包括声纹识别、性别、年龄、语种识别等。致力于推动端侧声纹与个性化技术的研究和大规模应用。
相关文章
|
4月前
|
缓存 监控 Ubuntu
在Ubuntu 16.04上配置GitLab Runner以激活GitLab CI/CD流程
完成以上步骤后,每当代码被推送到远端仓库中相对应分支上时,GitLb CI / CD 流水线就会自动触发,并由之前注册好了 GitLb runner 的机器去完成定义好了 ` .gitlabcicd.yml ` 文件里面定义好各种任务(如编译测试部署等).
230 13
|
开发工具 Android开发 git
解决Android AAPT: error: resource android:attr/lStar not found. 问题
解决Android AAPT: error: resource android:attr/lStar not found. 问题
1281 0
|
机器学习/深度学习 人工智能 网络架构
Transformer原理解析——一种Open AI和DeepMind都在用的神经网络架构
Transformer模型是一种日益流行的神经网络结构。它最近被OpenAI用于他们的语言模型中。与此同时,近期也被DeepMind用于它们的程序“星际争霸”中击败了一名顶级职业星际玩家。 Transformer模型的开发是为了解决序列转换及神经机器翻译问题。
9318 0
|
API
HarmonyOS 3.1/4项目在DevEco Studio 5.0(HarmonyOS NEXT)版本下使用的问题
有读者在使用《鸿蒙HarmonyOS应用开发入门》书中的源码时遇到问题,主要原因是使用的DevEco Studio版本不同所致。本文提供了三种解决方案:1) 降级DevEco Studio至3.1版本;2) 按照5.0版本修改书中示例;3) 等待并使用《鸿蒙之光HarmonyOS NEXT原生应用开发入门》升级版书籍。
1103 1
|
JSON 人工智能 自然语言处理
剖析大模型连“Strawberry”的“r”都数不对的原因
本文将从两个常见的大模型翻车问题入手解析这些问题背后体现的大模型技术原理,并解释了为什么会导致这些问题,接着我们利用CoT(思维链)方法解决这些问题并基于上述原理试图剖析CoT方法起作用的可能原因,最后提出【理由先行】风格这一简单有效的Prompt Trick。
1615 36
|
存储 数据管理 Linux
Linux命令sg的深入解析与应用
**Linux的`sg`命令用于高效管理SCSI设备,它基于DMA和Scatter-Gather技术,提供直接设备控制和高效数据传输。`sg`常通过`sg3_utils`工具集来使用,例如`sg_io`,用于执行SCSI命令。在实际应用中,需注意权限、数据安全和兼容性问题,遵循备份、详细阅读文档和逐步测试的最佳实践。**
|
网络协议 应用服务中间件 网络安全
免费泛域名https证书教程—无限免费续签
随着互联网安全意识提升,越来越多网站采用HTTPS协议。本文介绍如何通过JoySSL轻松获取并实现免费泛域名SSL证书的无限续签。JoySSL提供永久免费通配符SSL证书,支持无限制域名申请及自动续签,全中文界面适合国内用户。教程涵盖注册账号、选择证书类型、验证域名所有权、下载与安装证书以及设置自动续签等步骤,帮助网站简化SSL证书管理流程,确保长期安全性。
1072 20
|
数据可视化 大数据 Linux
OpenEuler虚拟机安装保姆级教程 | 附可视化界面
本文介绍了如何在VMware中安装openEuler操作系统,从选择合适的镜像版本下载开始,到创建虚拟机、配置CPU虚拟化、进行系统安装、设置网络连接,直至安装DDE桌面环境实现图形化操作。openEuler是一款由华为开源的操作系统,支持多种处理器架构,广泛应用于数据库、大数据、云计算等领域。文中还分享了安装过程中的注意事项及解决网络问题的方法,适合初次接触openEuler的用户参考学习。
5223 4
OpenEuler虚拟机安装保姆级教程 | 附可视化界面
|
开发工具 IDE 开发者
通义灵码安装教程
https://developer.aliyun.com/topic/lingma/activities/202405?taskCode=16245&recordId=c0836910524e8a25109e3abeba50938d#/?utm_content=m_fission_1 「通义灵码推荐官,喊你高效 AI 编码,还有iPhone15、机械键盘、双肩包等福利可领。」
|
存储 缓存 算法
LRU(Least Recently Used)算法原理
LRU(Least Recently Used)算法原理
854 0