语音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”模型为例,介绍如何举行在线体会。
模型链接:https://modelscope.cn/models/speech_tts/speech_sambert-hifigan_tts_zh-cn_multisp_pretrain_16k/summary
我们输入文字,点击“执行测试”,等待片刻,便可试听语音分解的成果。
第二种方法是运用编程,通过简单的几行代码,就可以实现自己的语音分解功能,并集成嵌入到具体的利用中去。这种方法适合选定喜欢的发音人后、举行深度的利用开发。
魔搭社区提供了免费的CPU算力(不限额)和GPU算力(NVIDIA-V100-16G 限额100小时),供开发者举行运用,下面我们运用Notebook开发环境来简单演示如何实现运用代码举行语音分解。
让我们选择CPU服务,稍等几分钟服务启动,我们点击“查看NoteBook”,进入开发环境,选择启动一个python脚本。
这些语音AI模型都配备了代码示例,我们可以在模型详情页的代码示例中找到:
将该代码举行复制并粘贴至notebook的python脚本当中,我们可以将代码中‘待分解文本’字符串替换成想要的分解本文,并执行程序,便可以下载生成的音频文件举行试听。
这项语音分解技术背后是达摩院的显式韵律声学模型SAMBERT以及Hifi-GAN声码器的结合。
在语音分解领域,目前以FastSpeech2类似的Non-Parallel模型为主流,它针对基频(pitch)、能量(energy)和时长(duration)三种韵律表征分别建模。但是,该类模型普遍存在一些成果和性能上的问题:独立建模时长、基频、能量,忽视了其内在联系;完全非自返回的网络结构,无法满足工业级实时分解需求;帧级别基频和能量预测不稳定…
因此达摩院设计了SAMBERT,一种基于Non-Parallel结构的改良版TTS模型,它具有以下优点:
1. 建立时长与基频、能量的依赖关系,并运用自返回结构的时长预测模块,提升预测韵律的自然度和多样性;
2. Decoder运用PNCA自返回结构,降低带宽要求,支持CPU实时分解;
3. 音素级别建模基频、能量,提高容错率;
4. 以预训练BERT语言模型为编码器,在小规模数据上成果更好。
二、语音辨别
在魔搭社区上,达摩院语音实验室封闭了核心的语音辨别模型“Paraformer语音辨别-中文-通用-16k-离线”,这是即将大规模商业部署的下一代模型,其训练数据规模达到5万小时以上,通过对非自返回语音辨别模型技术的改进,不仅达到当前类Transformer自返回模型的语音辨别准确率,而且在推理效率上有10倍的加速比提升。
模型链接:https://modelscope.cn/models/damo/speech_paraformer_asr_nat-zh-cn-16k-common-vocab8358-tensorflow1/summary
在魔搭社区中,语音辨别模型与语音分解一样,提供Demo和Notebook两种方法举行成果体会,操作方法请参见上文,不再赘述。
除了封闭最先进的Paraformer模型之外,语音实验室还免费封闭了当红的语音辨别模型UniASR,它在公有云上提供商业化的服务,广受欢迎。UniASR模型含盖了中、英、日、俄等语种,支持8k/16k采样率,可以满足开发者不同场景的开发需求。
模型链接:https://modelscope.cn/models/damo/speech_UniASR-large_asr_2pass-zh-cn-16k-common-vocab8358-tensorflow1-offline/summary
三、语音旌旗灯号处理
旌旗灯号处理也是语音处理的一个重要的技术组成分支,达摩院开源了基于深度学习的应声残余抑制算法。
模型名:DFSMN应声消除-单麦单参考-16k
模型链接:https://modelscope.cn/models/damo/speech_dfsmn_aec_psm_16k/summary
从用户体会角度,一个理想的应声消除算法要达到以下成果:远端单讲(far end single talk)时零应声泄露;近端单讲(near end single talk)时语音无损;双端同时讲话时可以互相听清,也即双讲(double talk)通透。目前在开源的旌旗灯号处理算法当中,双讲时的成果都比较差强人意。这是因为目前的开源旌旗灯号处理算法无法有效区分录音旌旗灯号中的应声旌旗灯号和近端语音旌旗灯号,而且真实通话中双讲出现的时间一般较短、时间占比也很低,所以从策略上为了确保零应声泄露,只好牺牲双讲时的成果。
达摩院这个模型能够进一步提升双讲通话成果,满足用户对语音通信时的音质要求,已在阿里内部音视频项目上完成了工业化部署。大家如果现在运用钉钉视频会议,会发现了多一个较为方便的对讲功能。这次模型开源,希望能对从事webRTC的研究者与开发者有所帮助,欢迎大家基于这个模型举行利用开发,在NoteBook中只需要5行代码就可以得到应声消除结果。
该模型的技术创新点在于借鉴了智能降噪的解决思路:数据模拟->模型优化->模型推理。
具体而言,我们结合应声残余抑制的任务特点,在输入特征上,拼接了线性滤波器的输出旌旗灯号和时延对齐的回采旌旗灯号,并提取FBank举行均值方差归一化。在输出目标上,选择了相位感知的掩蔽值(Phase-Sensitive Mask, PSM)。在模型推理阶段,对PSM与线性输出的旌旗灯号频谱逐点相乘后再举行IFFT (inverse Fast Fourier Transform)获得近端语音。
四、写在最后
在过去的语音 AI 探索当中,达摩院完整实现了从研到发,从模型创新到提供API的全链条。但是随着近年来语音AI的飞速发展,开发者角色变得多元化、各方面需求也变得越来越丰富,传统的“包打天下”的模式已不再合适。面向未来,我们希望通过魔搭这样的封闭、开源的社区来推进语音AI的研究和利用,促进语音AI生态的活跃和繁荣。
魔搭社区官网链接:https://modelscope.cn