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

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

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

相关实践学习
达摩院智能语音交互 - 声纹识别技术
声纹识别是基于每个发音人的发音器官构造不同,识别当前发音人的身份。按照任务具体分为两种: 声纹辨认:从说话人集合中判别出测试语音所属的说话人,为多选一的问题 声纹确认:判断测试语音是否由目标说话人所说,是二选一的问题(是或者不是) 按照应用具体分为两种: 文本相关:要求使用者重复指定的话语,通常包含与训练信息相同的文本(精度较高,适合当前应用模式) 文本无关:对使用者发音内容和语言没有要求,受信道环境影响比较大,精度不高 本课程主要介绍声纹识别的原型技术、系统架构及应用案例等。 讲师介绍: 郑斯奇,达摩院算法专家,毕业于美国哈佛大学,研究方向包括声纹识别、性别、年龄、语种识别等。致力于推动端侧声纹与个性化技术的研究和大规模应用。
相关文章
|
9月前
|
缓存 监控 Ubuntu
在Ubuntu 16.04上配置GitLab Runner以激活GitLab CI/CD流程
完成以上步骤后,每当代码被推送到远端仓库中相对应分支上时,GitLb CI / CD 流水线就会自动触发,并由之前注册好了 GitLb runner 的机器去完成定义好了 ` .gitlabcicd.yml ` 文件里面定义好各种任务(如编译测试部署等).
474 13
|
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原生应用开发入门》升级版书籍。
1284 1
|
JSON 人工智能 自然语言处理
剖析大模型连“Strawberry”的“r”都数不对的原因
本文将从两个常见的大模型翻车问题入手解析这些问题背后体现的大模型技术原理,并解释了为什么会导致这些问题,接着我们利用CoT(思维链)方法解决这些问题并基于上述原理试图剖析CoT方法起作用的可能原因,最后提出【理由先行】风格这一简单有效的Prompt Trick。
1933 36
|
分布式计算 DataWorks 数据处理
产品测评 | 上手分布式Python计算服务MaxFrame产品最佳实践
MaxFrame是阿里云自研的分布式计算框架,专为大数据处理设计,提供高效便捷的Python开发体验。其主要功能包括Python编程接口、直接利用MaxCompute资源、与MaxCompute Notebook集成及镜像管理功能。本文基于MaxFrame最佳实践,详细介绍了在DataWorks中使用MaxFrame创建数据源、PyODPS节点和MaxFrame会话的过程,并展示了如何通过MaxFrame实现分布式Pandas处理和大语言模型数据处理。测评反馈指出,虽然MaxFrame具备强大的数据处理能力,但在文档细节和新手友好性方面仍有改进空间。
|
存储 缓存 算法
LRU(Least Recently Used)算法原理
LRU(Least Recently Used)算法原理
1608 0
|
开发工具 IDE 开发者
通义灵码安装教程
https://developer.aliyun.com/topic/lingma/activities/202405?taskCode=16245&recordId=c0836910524e8a25109e3abeba50938d#/?utm_content=m_fission_1 「通义灵码推荐官,喊你高效 AI 编码,还有iPhone15、机械键盘、双肩包等福利可领。」
|
存储 分布式计算 大数据
MaxCompute产品使用合集之在sql里调用自定义的udf时,设置一次同时处理的数据行数,是并行执行还是串行执行的
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
机器学习/深度学习 存储 SQL
快速入门DVC(一):简介
简述 DVC的开发者为iterative.ai,成立于2017年。它是一款开源的,针对机器学习项目的版本控制系统,同时也提供企业服务。起初,DVC从数据版本化管理概念切入,之后,提供对机器学习全方位的支持。
|
IDE 开发工具 Android开发
mac下安装adb环境的三种方式
mac下安装adb环境的三种方式
12349 0
mac下安装adb环境的三种方式
|
JavaScript 前端开发 小程序
Flutter 完美的验证码输入框(2 种方法)【Flutter 专题 25】
重点是什么? 真实世界的 完美的验证码输入框或 PIN 输入 UI 通常满足以下最低要求: 有 4 个或 6 个文本域,每个文本域只能接受 1 个字符(通常是一个数字) 输入数字后自动聚焦下一个字段 您经常在需要电话号码确认、电子邮件或双因素身份验证的应用程序中看到此功能。
2196 0
Flutter 完美的验证码输入框(2 种方法)【Flutter 专题 25】

热门文章

最新文章