提速300%,PaddleSpeech语音识别高性能部署方案重磅来袭!

news2024/9/25 11:12:18

在人机交互的过程中,语音是重要的信息载体,而语音交互技术离不开语音识别与语音合成技术。飞桨语音模型库PaddleSpeech为开发者们使用这些技术提供了便捷的环境。本次PaddleSpeech迎来重大更新——1.3版本正式发布。让我们一起看看,这次PaddleSpeech为大家带来了哪些新内容吧!

  • 提速300%,提供U2模型和U2++模型高性能C++部署方案;

  • 无监督预训练大模型wav2vec2正式上线,支持全流程微调;

  • 通用语音识别大模型Whisper上线PaddleSpeech CLI;

  • 语音合成支持Android全流程部署;

  • 新增SSML标签实现发音控制;

  • 语音合成支持韵律预测与韵律合成控制。

  • 更多内容可以参考

https://github.com/PaddlePaddle/PaddleSpeech/releases/tag/r1.3.0

4702d160220f54850d615bea2d620f9a.png

亮点速览

e93d6fd47ec5afdc932fe560930c7b28.png提速300%,提供U2模型和U2++模型高性能C++部署方案

U2模型是由企业出门问问联合西北工业大学推出的端到端语音识别模型,实现了流式识别与非流式识别统一的解决方案。U2++则是在U2的基础上添加了Left to Right和Right to Left两个Attention Decoder,进一步降低识别的CER(Char Error Rate,字错误率)。

5c34ddf178015be99ea30bf9653ae43b.png

 U2模型与U2++结构示意图

这次PaddleSpeech 1.3版本发布,带来了U2模型和U2++模型高性能C++部署方案,通过推理加速与量化压缩技术,相较于基于Python的动态图推理,模型推理速度提升300%。

17ca8a0fc41aeb5f529d9fc9f82a7be1.png

U2++模型推理测试RTF结果

注:测试机器为CPU:Intel(R) Xeon(R) Gold 6271C CPU@2.60GHz,RTF=处理语音总时长/语音总时长,RTF数值越小,速度越快。

通过下面的链接可以快速体验推理加速方案带来的极致性能提升!

  • 体验传送门

https://github.com/PaddlePaddle/PaddleSpeech/tree/develop/speechx/examples/u2pp_ol/wenetspeech

4f258febaef091a629249b6cc87c2fb4.png无监督预训练大模型wav2vec2正式上线

在语音识别任务中,除了面临技术上的挑战以外,另一个方面的挑战则是来自数据。采用有监督的学习方式训练语音识别模型,需要海量带标签的高质量语音识别标注数据,而标注数据的价格居高不下,需要大量的资金投入。无监督预训练大模型技术,带来了新的解决方案,业务中产生的大量无标注数据都可以被充分运用。

wav2vec2是语音无监督预训练大模型,可以承接包含语音识别在内的多种语音任务,并且在多个任务场景中取得了SOTA的结果。

22077d9e6c042d10c4c42db9b97332b8.png

wav2vec2结构示意图

本次PaddleSpeech1.3版本发新,将支持wav2vec2的微调工作(目前只支持英文)。你可以通过在自己的数据集上微调wav2vec2模型,从而在特定业务上达到更好的识别效果。

  • wav2vec2 微调传送门

https://github.com/PaddlePaddle/PaddleSpeech/tree/develop/examples/librispeech/asr3

基于Librispeech数据集的微调模型已集成入CLI当中,通过pip安装或者源码安装的方式安装好1.3版本之后,可以使用Python进行快速体验。你可以使用微调后的模型进行语音识别工作,也可以通过wav2vec模型提取音频特征,承接下游任务。

  • wav2vec2示例代码

import paddle
from paddlespeech.cli.ssl import SSLExecutor

ssl_executor = SSLExecutor()

# to recognize text 
text = ssl_executor(
    model='wav2vec2ASR_librispeech',
    task='asr',
    lang='en',
    sample_rate=16000,
    config=None,  # Set `config` and `ckpt_path` to None to use pretrained model.
    ckpt_path=None,
    audio_file='./en.wav',
    device=paddle.get_device())
print('ASR Result: \n{}'.format(text))

# to get acoustic representation
feature = ssl_executor(
    model='wav2vec2',
    task='vector',
    lang='en',
    sample_rate=16000,
    config=None,  # Set `config` and `ckpt_path` to None to use pretrained model.
    ckpt_path=None,
    audio_file='./en.wav',
    device=paddle.get_device())
print('Representation: \n{}'.format(feature))

0aa6d7c885c813969b4da5285251045e.png通用语音识别大模型Whisper上线PaddleSpeech CLI

Whisper是OpenAI今年9月份开源的通用的语音识别模型,在时长为680,000小时的多语言大数据集上,通过有监督的方式训练得到。Whisper也是一个多任务模型,可以同时支持多语言语音识别以及Any-to-English的语音翻译工作。

5721fed51c68165be6fbfdce0af9332d.png

Whisper结构示意

目前,Whisper模型已集成到 PaddleSpeech的CLI中,通过命令行或者Python代码即可快速体验语音识别与语音翻译功能。

  • Whisper CLI命令行示例

# 识别文本
paddlespeech whisper --task transcribe --input ./zh.wav

# 将语音翻译成英语
paddlespeech whisper --task translate --input ./zh.wav

同样地,你也可以使用Python将其快速集成到自己的项目当中。

  • Whisper Python使用示例

import paddle
from paddlespeech.cli.whisper import WhisperExecutor

whisper_executor = WhisperExecutor()

# 识别文本
text = whisper_executor(
    model='whisper-large',
    task='transcribe',
    sample_rate=16000,
    config=None,  # Set `config` and `ckpt_path` to None to use pretrained model.
    ckpt_path=None,
    audio_file='./zh.wav',
    device=paddle.get_device())
print('ASR Result: \n{}'.format(text))

 # 将语音翻译成英语
test_en = whisper_executor(
    model='whisper-large',
    task='translate',
    sample_rate=16000,
    config=None,  # Set `config` and `ckpt_path` to None to use pretrained model.
    ckpt_path=None,
    audio_file='./zh.wav',
    device=paddle.get_device())
print('Representation: \n{}'.format(test_en))

0a39d949e4cd65f9feae09cfd9b65077.png语音合成支持Android部署

这次PaddleSpeech1.3版本,基于Paddle Lite的端侧部署能力,实现了语音合成声学模型FastSpeech2和声码器Multi-band MelGAN模型在Android上进行部署。推理引擎Paddle Lite除了支持上述模型推理外,也支持SpeedySpeech、Parallel WaveGAN和HiFiGAN等其它语音合成模型。

你可以通过点击下方链接,参考示例代码,在自己的设备上编译应用,也可以下载我们提供的APK安装包快速体验语音合成能力。

手机端语音合成部署示例

  • 体验传送门

https://github.com/PaddlePaddle/PaddleSpeech/tree/develop/demos/TTSAndroid

8b9c604fc696554af089c15a4c226651.png新增SSML标签实现发音控制

SSML(Speech Synthesis Markup Language)是语音合成标记语言。在工业生产中,通过SSML标签可以快速对合成过程进行干预。在本次发新中,PaddleSpeech正式添加了SSML的解析支持,目前支持对中文的文本发音进行指定,可以很好的修复由多音字发音不正确导致的发音错误问题。

  • 使用示例

from paddlespeech.cli.tts.infer import TTSExecutor
tts = TTSExecutor()
text = "<speak>人要是行,干一行<say-as pinyin='xing2'>行</say-as>一行,一<say-as pinyin='hang2 xing2 hang2 hang2 xing2'>行行行行行</say-as>。</speak>"
tts(text=text, output="output.wav")
  • 效果示例:

d075994de8e59716eb00a9b368669023.png语音合成支持韵律预测与韵律合成控制

在传统参数法的语音合成过程中,韵律信息会作为特征工程的一部分,通过对语言的韵律结构信息进行建模,从而指导语音合成过程。在技术发展的过程中,韵律层级划分也在不断变化,如标贝科技开源的中文标准女声语音库数据采用四级韵律标记划分,包含韵律词(#1)、韵律短语(#2)、语调短语(#3)和句末(#4)四个层级的标注。

在目前的语音合成产品中,多以四级韵律标记划分为主,部分产品根据业务需要,有的也会采用其它的韵律划分标准,如五级韵律划分与三级韵律划分,这里不做更多讨论,只讨论四级韵律划分标记。

8abc3bdc3311139754cdcaf340441e67.png

汉语韵律结构四级韵律标记划分示意图

进入端到端合成时代,经典的端到端语音合成方法如Tacotron2、TransformerTTS、FastSpeech1和FastSpeech2都采用直接将输入的音素作为建模单元,让模型通过大量的语音合成数据学习语言中的韵律规律。从试验的结果来看,采用此类方法确实可以让模型学习到韵律的发音规律,但是面对复杂的生产场景,偶尔会遇到发音韵律停顿不对的问题。由于输入阶段缺少韵律控制信息指导,导致推理阶段无法进行韵律调控,业务上错误的韵律停顿bad case无法得到及时的响应。

为了进一步提高端到端语音合成的稳定性和可控性,PaddleSpeech提出了一套基于文本输入的韵律预测模型,并在语音合成的输入阶段,引入韵律结构信息,从而实现合成过程中韵律可控。韵律预测任务可以认为是一个五类别的序列标记任务,即输入的每一个文字后面都存在一个槽位,可以使用无韵律或者#1~#4的四级韵律标记,通过微调文心ERNIELinear模型实现韵律预测标记任务。

44889fe692d9d9f922ca0f2b3ff835bb.png

  • 关于韵律预测的更多细节,可通过链接体验

https://github.com/PaddlePaddle/PaddleSpeech/tree/develop/examples/other/rhy

在声学模型的训练阶段,将韵律标记与音素一起输入到声学模型中进行训练,可以得到韵律可控的声学模型。以FastSpeech2为例,支持韵律标注的模型结构如下。

a4fcfb2a8211a5bb41b8fca20bbe77c6.png

  • 带韵律控制信息的FastSpeech2训练体验链接

https://github.com/PaddlePaddle/PaddleSpeech/tree/develop/examples/csmsc/tts3_rhy

dfd37702a8640ef0bdd624307e907fc0.png

飞桨语音技术课程

由PaddleSpeech的核心开发者精心打造的免费公开课《飞桨PaddleSpeech语音技术课程》目前已经在AI Studio中上线。该课程非常适合于零基础的开发者入门智能语音开发工作。课程内容会随着PaddleSpeech的发展建设,持续更新最前沿的技术,同样适合于具有开发经验的语音方向开发者们。让我们一起看看课程中有哪些内容吧!

36220dc577fec7f40c16cac35e98ff72.png

课程内容持续更新中,欢迎大家前往AI Studio中报名参与。

  • 课程传送门

https://aistudio.baidu.com/aistudio/course/introduce/25130

7993be3f410fed26afc37470f7230049.png

精品项目合集

PaddleSpeech建设过程中,也有很多开发者基于PaddleSpeech开发了许多有趣的项目。比如,基于PaddleGAN与PaddleSpeech的虚拟人项目PaddleBoBo,基于PaddleOCR与PaddleSpeech的电表点读系统,基于PaddleSpeech语音识别能力的语音听写桌面应用等等。这些项目都可以在AI Studio中在线体验,并已收录到PaddleSpeech教程与精品项目合集中,欢迎大家前来体验。

cf42acab8758d88e467c9375538516f7.gif

  • 精品项目合集传送门

https://aistudio.baidu.com/aistudio/projectdetail/4692119

飞桨PaddlePaddle公众号后台回复关键词:PaddleSpeech,即可获取飞桨语音技术课程资源、精品项目合集等。

关注【飞桨PaddlePaddle】公众号

获取更多技术内容~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/127540.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

这样实操一下 JVM 调优,面试超加分

1.写在前面 前段时间一位读者面了阿里&#xff0c;在二面中被问到 GC 日志分析&#xff0c;感觉回答的不是很好&#xff0c;过来找我复盘&#xff0c;大致听了他的回答&#xff0c;虽然回答出了部分&#xff0c;但是没抓到重点。 GC 日志分析算是 JVM 调优中比较难的部分&…

【XR】如何提高追踪保真度,确保内向外追踪系统性能

Constellation是Oculus研发的追踪系统。日前&#xff0c;负责AR/VR设备输入追踪的Facebook工程经理安德鲁梅利姆撰文介绍了他们是如何用基于Constellation追踪的控制器来提高交互保真度。具体整理如下&#xff1a; 我们的计算机视觉工程师团队一直在努力为Oculus Quest和Rift …

【再学Tensorflow2】TensorFlow2的模型训练组件(1)

TensorFlow2的模型训练组件&#xff08;1&#xff09;数据管道构建数据通道应用数据转换提升管道性能特征列特征列用法简介特征列使用示例激活函数常用激活函数激活函数使用示例Tensorflow模型中的层内置的层自定义模型中的层参考资料Tensorflow中与模型训练相关的组件主要包括…

图像采样与量化

数字图像有两个重要属性&#xff1a;空间位置(x,y)以及响应值I(x,y)。数字图像中像素的空间位置及响应值都是离散值&#xff0c;传感器输出连续电压信号。为了产生数字图像&#xff0c;需要把连续的数据转换为离散的数字化形式。采用的方式是图像量化与采样。 图像采样 图像量化…

【数据结构】(初阶):二叉搜索树

​ ✨前言✨ &#x1f393;作者&#xff1a;【 教主 】 &#x1f4dc;文章推荐&#xff1a; ☕博主水平有限&#xff0c;如有错误&#xff0c;恳请斧正。 &#x1f4cc;机会总是留给有准备的人&#xff0c;越努力&#xff0c;越幸运&#xff01; &#x1f4a6;导航助手&#x…

Docker+Selenium Grid运行UI自动化

简介 使用Selenium Grid可以分布式运行UI自动化测试&#xff0c;可以同时启动多个不同的浏览器&#xff0c;也可以同时启动同一个浏览器的多个session。这里使用Docker Compose来同时启动不同浏览器的容器和Selenium Grid&#xff0c;只需一条命令就把自动化运行环境部署好了。…

verilog仿真技巧与bug集合

文章目录赋值语句想法一些建议时钟信号关于异步fifo写入数据时wp1&#xff0c;读出数据时rp1一些自己的bug关于操作符&关于if-else关于modelsim使用1.初学者不建议在设计文件中加入仿真语句&#xff1b; 2.初学者也不会在tb里使用类似always一样的设计。 对于1.因为把仿真…

国产RISC-V处理器“黑马”跑分曝光!超过多数国内主流高性能处理器!

来源企业投稿 2010年&#xff0c;开源、开放、精简的RISC-V架构诞生。虽然距今仅有12年&#xff0c;但RISC-V迎来了众多玩家的积极参与&#xff0c;其技术、生态、应用都快速发展。在许多秉持匠心的技术人员的耕耘下&#xff0c;RISC-V也早已从传统强项物联网走出&#xff0c;…

error: ‘uint8_t’,‘uint16_t’ ,‘uint32_t’ does not name a type

文章目录1、报错error: ‘uint8_t’,‘uint16_t’ ,‘uint32_t’ does not name a type2、解决办法3、uint8_t此类数据类型补充4、码字不易&#xff0c;点点赞1、报错error: ‘uint8_t’,‘uint16_t’ ,‘uint32_t’ does not name a type 在网络编程PING程序时遇到的小bug&am…

【BUUCTF】MISC(第二页wp)

文章目录被劫持的神秘礼物刷新过的图片[BJDCTF2020]认真你就输了[BJDCTF2020]藏藏藏被偷走的文件snake[GXYCTF2019]佛系青年[BJDCTF2020]你猜我是个啥秘密文件菜刀666[BJDCTF2020]just_a_rar[BJDCTF2020]鸡你太美[BJDCTF2020]一叶障目[SWPU2019]神奇的二维码梅花香之苦寒来[BJD…

day02-Java基础语法

day02 - Java基础语法 1 类型转换 在Java中&#xff0c;一些数据类型之间是可以相互转换的。分为两种情况&#xff1a;自动类型转换和强制类型转换。 1.1 隐式转换(理解) ​ 把一个表示数据范围小的数值或者变量赋值给另一个表示数据范围大的变量。这种转换方式是自动的&am…

外贸小白适合哪种邮箱?

除了一些企业指定的邮箱&#xff0c;大多数外贸人&#xff0c;尤其是小白的外贸人&#xff0c;都希望选择最合适的邮箱&#xff0c;赢在起跑线上。判断邮箱质量的两个主要因素是投递率和安全性。米贸搜的排列如下: 公共个人邮箱 此时常见的个人邮箱有国外的gmail、hotmail、雅…

2023 年软件开发人员可以学习的 10 个框架

开发者您好&#xff0c;我们现在处于 2023 年的第一周&#xff0c;你们中的许多人可能已经制定了 2023 年要学习什么的目标&#xff0c;但如果您还没有&#xff0c;那么您来对地方了。 早些时候&#xff0c;我分享了成为Java 开发人员、DevOps 工程师、React 开发人员和Web 开…

联合分析案全流程分析

联合分析(conjoint analysis)是一种研究消费者产品选择偏好情况的多元统计分析方法。比如消费者对于手机产品的偏好&#xff0c;对于电脑产品的偏好&#xff0c;也或者消费者对于汽车产品的偏好情况等。联合分析中涉及几个专业术语名词&#xff0c;分别如下所述&#xff1a; 联…

基于深度学习下的稳定学习究竟是什么?因果学习?迁移学习?之一

机器学习 | 稳定学习 | DGBR 深度学习 | 迁移学习 | 因果学习 众所周知&#xff0c;深度学习研究是机器学习领域中一个重要研究方向&#xff0c;主要采用数据分析、数据挖掘、高性能计算等技术&#xff0c;其对服务器的要求极其严格&#xff0c;传统的风冷散热方式已经不足以满…

C++---智能指针

目录 1. 为什么需要智能指针&#xff1f; 2. 内存泄漏 2.1 什么是内存泄漏&#xff0c;内存泄漏的危害 2.2 内存泄漏分类 2.4如何避免内存泄漏 3.智能指针的使用及原理 3.1 RAII 3.2 智能指针的原理 3.3 std::auto_ptr 3.4 std::unique_ptr 3.5 std::shared_ptr 3.6…

使用RMAN传输数据_创建可传输的表空间集(Creating Transportable Tablespace Sets)

传输数据比对相同的数据执行export/import或unload/load操作更快。因为对于用户定义的表空间&#xff0c;数据文件包含所有拷贝到目标位置的实际数据&#xff0c;你使用Data Pump只传输数据库对象的元数据到新数据库。 本章阐述如何使用RMAN通过还原备份来创建可传输的表空间集…

Dockfile是什么

目录 1. Dockfile是什么 2. Dockerfile的基本组成 2.1 FROM 2.2 MAINTAINER 2.3 RUN 2.4 COPY 2.5 ADD 2.6 EXPOSE 2.7 WORKDIR 2.8 ONBUILD 2.9 USER 2.10 VOLUME 2.11 CMD 2.12 ENTRYPOINT 3. dockerfile示例 3.1 准备 3.2 将该目录上传至linux 3.3 构建镜像…

2022年「博客之星」参赛博主:一个处女座的测试

我正在参加年度博客之星评选&#xff0c;请大家帮我投票打分&#xff0c;您的每一分都是对我的支持与鼓励。 五星必回&#xff0c;诚信互评&#xff0c;&#xff08;如果&#xff09;今日已满&#xff0c;明天必回&#xff0c;言出必行&#xff0c;感谢支持&#xff01; 我正在…

【深度探讨】数据存储进化论,区块链才是未来

发表时间&#xff1a;2022年5月23日 信息来源&#xff1a;bsvblockchain.org 需要一个适于处理这种日渐普及的资源的基础设施。 2022年2月&#xff0c;在沙特愿景2030区块链峰会上&#xff0c;BSV区块链协会创始主席Jimmy Nguyen就数据的价值这一话题发表了一场令人叹为观止的…