使用魔搭开发自己的语音AI:从入门到精通

本文涉及的产品
模型训练 PAI-DLC,5000CU*H 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
交互式建模 PAI-DSW,每月250计算时 3个月
简介: 语音AI是最早从实验室走向应用的AI技术,其发展史就是不断创新、解锁应用的历史,从1995年 Dragon Dictate的桌面孤立词语音识别,到2011年苹果的手机语音助手SIRI,再到当下百花齐放的各种智能语音应用。

作者 | 袁斌、鄢志杰 阿里达摩院语音实验室

来源 | 阿里开发者公众号



语音AI是最早从实验室走向应用的AI技术,其发展史就是不断创新、解锁应用的历史,从1995年 Dragon Dictate的桌面孤立词语音识别,到2011年苹果的手机语音助手SIRI,再到当下百花齐放的各种智能语音应用。


由于技术的快速进步,以及各大云计算厂商以API形式提供的语音AI能力,目前开发者已能便捷使用语音AI去搭建应用。但API也存在局限性,不少开发者希望获得更多、更底层的把控力,希望对API背后AI模型有更深入的了解;不只是开发应用,还可以开发模型;不只是调用API接口,还可以通过对模型的训练或微调(fine-tuning),以提升实际应用效果。


为了让所有满怀创意的开发者实现更高水平的创新,在最近推出的魔搭社区ModelScope上,阿里达摩院首批开源开放了40多个语音AI模型,公有云上广受欢迎的付费模型这次也免费开放。模型背后,我们提供了训练或微调脚本工具链,含盖语音AI各个主要方向。


下面,就让我们以语音合成、语音识别、语音信号处理为例,来展示如何玩转魔搭社区的语音AI模型。




一、语音合成

语音合成是将文字作为输入,让AI能够将文字转换为语音的原子能力。例如,我们希望AI朗读如下的一段文字:


“最当初,他只是觉得赛伦看莫颖儿的眼光温柔得超过一般父女或是师徒的感情,在观察了一段时间过后,他才逐渐确定赛伦似乎很在乎这个少女。”


在魔搭社区,可以有两种方式来进行语音合成模型的体验:


第一种方式是使用模型详情页的“在线体验”功能,以最直观的方式对每个语音合成模型进行体验。这对模型的初步体验和把玩品鉴非常高效。


接下来以“SambertHifigan语音合成-中文-多人预训练-16k”模型为例,介绍如何进行在线体验。


模型链接查看文末[1]

image.png


第二种方式是使用编程,通过简单的几行代码,就可以实现自己的语音合成功能,并集成嵌入到具体的应用中去。这种方式适合选定喜欢的发音人后、进行深度的应用开发。


魔搭社区提供了免费的CPU算力(不限额)和GPU算力(NVIDIA-V100-16G 限额100小时),供开发者进行使用,下面我们使用Notebook开发环境来简单演示如何实现使用代码进行语音合成。


让我们选择CPU服务,稍等几分钟服务启动,我们点击“查看NoteBook”,进入开发环境,选择启动一个python脚本。

image.png


这些语音AI模型都配备了代码示例,我们可以在模型详情页的代码示例中找到:

image.png


将该代码进行复制并粘贴至notebook的python脚本当中,我们可以将代码中‘待合成文本’字符串替换成想要的合成本文,并执行程序,便可以下载生成的音频文件进行试听。

image.png


这项语音合成技术背后是达摩院的显式韵律声学模型SAMBERT以及Hifi-GAN声码器的结合。


在语音合成领域,目前以FastSpeech2类似的Non-Parallel模型为主流,它针对基频(pitch)、能量(energy)和时长(duration)三种韵律表征分别建模。但是,该类模型普遍存在一些效果和性能上的问题:独立建模时长、基频、能量,忽视了其内在联系;完全非自回归的网络结构,无法满足工业级实时合成需求;帧级别基频和能量预测不稳定...


因此达摩院设计了SAMBERT,一种基于Non-Parallel结构的改良版TTS模型,它具有以下优点:


  1. 建立时长与基频、能量的依赖关系,并使用自回归结构的时长预测模块,提升预测韵律的自然度和多样性;
  2. Decoder使用PNCA自回归结构,降低带宽要求,支持CPU实时合成;
  3. 音素级别建模基频、能量,提高容错率;
  4. 以预训练BERT语言模型为编码器,在小规模数据上效果更好。

image.png




二、语音识别

在魔搭社区上,达摩院语音实验室开放了核心的语音识别模型“Paraformer语音识别-中文-通用-16k-离线”,这是即将大规模商业部署的下一代模型,其训练数据规模达到5万小时以上,通过对非自回归语音识别模型技术的改进,不仅达到当前类Transformer自回归模型的语音识别准确率,而且在推理效率上有10倍的加速比提升


模型链接参考文末[2]

image.png


在魔搭社区中,语音识别模型与语音合成一样,提供Demo和Notebook两种方式进行效果体验,操作方法请参见上文,不再赘述。


除了开放最先进的Paraformer模型之外,语音实验室还免费开放了当红的语音识别模型UniASR,它在公有云上提供商业化的服务,广受欢迎。UniASR模型含盖了中、英、日、俄等语种支持8k/16k采样率,可以满足开发者不同场景的开发需求。


模型链接参考文末[3]

image.png




三、语音信号处理

信号处理也是语音处理的一个重要的技术组成分支,达摩院开源了基于深度学习的回声残余抑制算法。

模型名:DFSMN回声消除-单麦单参考-16k

模型链接参考文末[4]


从用户体验角度,一个理想的回声消除算法要达到以下效果:远端单讲(far end single talk)时零回声泄露;近端单讲(near end single talk)时语音无损;双端同时讲话时可以互相听清,也即双讲(double talk)通透。目前在开源的信号处理算法当中,双讲时的效果都比较差强人意。这是因为目前的开源信号处理算法无法有效区分录音信号中的回声信号和近端语音信号,而且真实通话中双讲出现的时间一般较短、时间占比也很低,所以从策略上为了确保零回声泄露,只好牺牲双讲时的效果。


达摩院这个模型能够进一步提升双讲通话效果,满足用户对语音通信时的音质要求,已在阿里内部音视频项目上完成了工业化部署。大家如果现在使用钉钉视频会议,会发现了多一个较为方便的对讲功能。这次模型开源,希望能对从事webRTC的研究者与开发者有所帮助,欢迎大家基于这个模型进行应用开发,在NoteBook中只需要5行代码就可以得到回声消除结果。

image.png


该模型的技术创新点在于借鉴了智能降噪的解决思路:数据模拟->模型优化->模型推理。


具体而言,我们结合回声残余抑制的任务特点,在输入特征上,拼接了线性滤波器的输出信号和时延对齐的回采信号,并提取FBank进行均值方差归一化。在输出目标上,选择了相位感知的掩蔽值(Phase-Sensitive Mask, PSM)。在模型推理阶段,对PSM与线性输出的信号频谱逐点相乘后再进行IFFT (inverse Fast Fourier Transform)获得近端语音。

image.png




四、写在最后

在过去的语音 AI 探索当中,达摩院完整实现了从研到发,从模型创新到提供API的全链条。但是随着近年来语音AI的飞速发展,开发者角色变得多元化、各方面需求也变得越来越丰富,传统的“包打天下”的模式已不再合适。面向未来,我们希望通过魔搭这样的开放、开源的社区来推进语音AI的研究和应用,促进语音AI生态的活跃和繁荣。

image.png


魔搭社区官网:https://modelscope.cn/home



参考链接:

[1]https://modelscope.cn/models/speech_tts/speech_sambert-hifigan_tts_zh-cn_multisp_pretrain_16k/summary

[2]https://modelscope.cn/models/damo/speech_paraformer_asr_nat-zh-cn-16k-common-vocab8358-tensorflow1/summary

[3]https://modelscope.cn/models/damo/speech_UniASR-large_asr_2pass-zh-cn-16k-common-vocab8358-tensorflow1-offline/summary

[4]https://modelscope.cn/models/damo/speech_dfsmn_aec_psm_16k/summary



相关实践学习
达摩院智能语音交互 - 声纹识别技术
声纹识别是基于每个发音人的发音器官构造不同,识别当前发音人的身份。按照任务具体分为两种: 声纹辨认:从说话人集合中判别出测试语音所属的说话人,为多选一的问题 声纹确认:判断测试语音是否由目标说话人所说,是二选一的问题(是或者不是) 按照应用具体分为两种: 文本相关:要求使用者重复指定的话语,通常包含与训练信息相同的文本(精度较高,适合当前应用模式) 文本无关:对使用者发音内容和语言没有要求,受信道环境影响比较大,精度不高 本课程主要介绍声纹识别的原型技术、系统架构及应用案例等。 讲师介绍: 郑斯奇,达摩院算法专家,毕业于美国哈佛大学,研究方向包括声纹识别、性别、年龄、语种识别等。致力于推动端侧声纹与个性化技术的研究和大规模应用。
相关文章
|
17天前
|
人工智能 安全 测试技术
探索AI在软件开发中的应用:提升开发效率与质量
【10月更文挑战第31天】在快速发展的科技时代,人工智能(AI)已成为软件开发领域的重要组成部分。本文探讨了AI在代码生成、缺陷预测、自动化测试、性能优化和CI/CD中的应用,以及这些应用如何提升开发效率和产品质量。同时,文章也讨论了数据隐私、模型可解释性和技术更新等挑战。
|
20天前
|
机器学习/深度学习 人工智能 自然语言处理
探索AI的奥秘:机器学习入门指南
【10月更文挑战第30天】本篇文章是一份初学者友好的机器学习入门指南,旨在帮助读者理解并开始实践机器学习。我们将介绍机器学习的基本概念,包括监督学习、无监督学习和强化学习等。我们还将提供一些实用的代码示例,以帮助读者更好地理解和应用这些概念。无论你是编程新手,还是有一定经验的开发者,这篇文章都将为你提供一个清晰的机器学习入门路径。
36 2
|
23天前
|
人工智能 小程序
【一步步开发AI运动小程序】五、帧图像人体识别
随着AI技术的发展,阿里体育等公司推出的AI运动APP,如“乐动力”和“天天跳绳”,使云上运动会、线上健身等概念广受欢迎。本文将引导您从零开始开发一个AI运动小程序,使用“云智AI运动识别小程序插件”。文章分为四部分:初始化人体识别功能、调用人体识别功能、人体识别结果处理以及识别结果旋转矫正。下篇将继续介绍人体骨骼图绘制。
|
24天前
|
人工智能 小程序 vr&ar
AI运动小程序开发常见问题集锦二
截至当前,我们的AI运动识别小程序插件已迭代至第23个版本,广泛应用于健身、体育、体测、AR互动等场景。本文针对近期用户咨询,汇总了常见问题,帮助用户减少开发成本,提高效率。主要涵盖计时与计数模式的区别、综合排行榜生成方法、全屏模式适配及无开发能力用户的解决方案。
|
28天前
|
人工智能 API 决策智能
swarm Agent框架入门指南:构建与编排多智能体系统的利器 | AI应用开发
Swarm是OpenAI在2024年10月12日宣布开源的一个实验性质的多智能体编排框架。其核心目标是让智能体之间的协调和执行变得更轻量级、更容易控制和测试。Swarm框架的主要特性包括轻量化、易于使用和高度可定制性,非常适合处理大量独立的功能和指令。【10月更文挑战第15天】
215 6
|
29天前
|
存储 人工智能 Java
Neo4j从入门到精通:打造高效知识图谱数据库 | AI应用开发
在大数据和人工智能时代,知识图谱作为一种高效的数据表示和查询方式,逐渐受到广泛关注。本文从入门到精通,详细介绍知识图谱及其存储工具Neo4j,涵盖知识图谱的介绍、Neo4j的特点、安装步骤、使用方法(创建、查询)及Cypher查询语言的详细讲解。通过本文,读者将全面了解如何利用Neo4j处理复杂关系数据。【10月更文挑战第14天】
111 6
|
7天前
|
Web App开发 人工智能 自然语言处理
WebChat:开源的网页内容增强问答 AI 助手,基于 Chrome 扩展的最佳实践开发,支持自定义 API 和本地大模型
WebChat 是一个基于 Chrome 扩展开发的 AI 助手,能够帮助用户理解和分析当前网页的内容,支持自定义 API 和本地大模型。
32 0
|
1月前
|
人工智能 编解码 小程序
【一步步开发AI运动小程序】四、小程序如何抽帧
随着AI技术的发展,阿里体育等公司推出的“乐动力”、“天天跳绳”等APP使云上运动会、线上健身等概念备受关注。本文将引导您从零开始开发一个AI运动小程序,利用“云智AI运动识别小程序插件”。文中详细介绍了微信小程序抽帧的相关API、设置及注意事项,帮助开发者更好地实现AI运动功能。下篇将介绍人体识别技术,敬请期待。
|
1月前
|
机器学习/深度学习 人工智能 小程序
【一步步开发AI运动小程序】三、运动识别处理流程
随着人工智能技术的发展,阿里体育等公司推出的“乐动力”、“天天跳绳”等AI运动APP备受关注。本文将引导您从零开始开发一个AI运动小程序,使用“云智AI运动识别小程序插件”。文章介绍了视频帧、帧率FPS、抽帧和人体识别等基本概念,并详细说明了处理流程,包括抽帧、人体识别检测、骨骼图绘制和运动分析等步骤。下篇将介绍如何在小程序中实现抽帧。
|
机器学习/深度学习 人工智能 编解码
用AI还原地道京片子!作者大谷亲自揭秘老北京视频语音修复,网友:黄渤穿越了?
用AI还原地道京片子!作者大谷亲自揭秘老北京视频语音修复,网友:黄渤穿越了?
224 0

热门文章

最新文章

下一篇
无影云桌面