一文读懂PaddleSpeech中英混合语音识别技术

news/2024/5/16 9:14:26/文章来源:https://blog.csdn.net/PaddlePaddle/article/details/129292654

bcb58be0272eba17fe4b6d62f3cacb8d.gif

语音识别技术能够让计算机理解人类的语音,从而支持多种语音交互的场景,如手机应用、人车协同、机器人对话、语音转写等。然而,在这些场景中,语音识别的输入并不总是单一的语言,有时会出现多语言混合的情况。例如,在中文场景中,我们经常会使用一些英文专业术语来表达意思,如“GPS信号弱”、“Java工程师”等,这就给语音识别技术带来了新的挑战。

本次PaddleSpeech发布的中英文语音识别预训练模型Conformer_talcs可以通过PaddleSpeech封装的命令行工具CLI或者Python接口快速使用,开发者们可以基于此搭建自己的智能语音应用,也可以参考示例训练自己的中英文语音识别模型。

  • 示例链接

https://github.com/PaddlePaddle/PaddleSpeech/tree/develop/examples/tal_cs/asr1

快速体验

  • 示例音频

https://paddlespeech.bj.bcebos.com/PaddleAudio/ch_zh_mix.wav

使用命令行工具CLI 快速体验语音识别效果,命令如下:

bashpaddlespeech asr --model conformer_talcs --lang zh_en --codeswitch True --input ./ch_zh_mix.wav -v# 终端输出:今天是monday 明天是tuesday

Python 接口快速体验,代码实现如下:

python
>>> import paddle
>>> from paddlespeech.cli.asr import ASRExecutor
>>> asr_executor = ASRExecutor()
>>> text = asr_executor(model='conformer_talcs',lang='zh_en',sample_rate=16000,config=None, ckpt_path=None,audio_file='./ch_zh_mix.wav',codeswitch=True,force_yes=False,device=paddle.get_device())
>>> print('ASR Result: \n{}'.format(text))
ASR Result:
今天是 monday 明天是tuesday

76dcbe49d4ff0d141bcb10ca6d704701.png

中英文语音识别技术

cbb3fa6de96887c40c4af3869218bb7b.png

中英文语音识别难点

中英文语音识别相较于单语言的语音识别而言,主要难点如下:

数据量少

中英混合数据相较于单语言的数据更少。目前开源的中文语音识别数据集如WenetSpeech(10000小时有监督,2500小时弱监督,10000小时无监督)、英文语音识别数据集Giga Speech(10000小时有监督,33000小时无监督)都达到了万小时级别,但是混合的开源中英文语音识别数据只有SEAME(120小时)和TAL_CSASR(587小时)两个开源数据,混合数据集比单语言数据集会更少。

中英相似发音易混淆

中英文语音识别需要一个单一的模型来学习多种语音,相似但具有不同含义的发音通常会导致模型的复杂度和计算量增加,同时由于它需要区分处理不同语言的类似发音,因此在模型建模时就需要按照不同语言区分不同的建模单元。

634befa22e0202570376ae3b8b6dbd3e.png

PaddleSpeech 中英文语音识别方案

模型选择与介绍

本方案使用了一种端到端语音识别模型Conformer U2模型,其采用了Joint CTC/Attention with Transformer or Conformer的结构。训练时使用CTC 和 Attention Loss 联合优化,并且通过dynamic chunk的训练技巧,使Shared Encoder能够处理任意大小的chunk(即任意长度的语音片段)。其还使用CTC-Prefix Beam Search和Attention Decoder的方式进行解码,得到最终结果,同时实现了流式和非流式的语音识别,支持控制推理延迟。

本次PaddleSpeech开源的预训练模型,是非流式的端到端识别Conformer U2模型,chunk中包含全部上下文信息,需要整句输入进行识别。如果你想训练流式中英文语音识别模型,也可以参考PaddleSpeech的Conformer U2/U2++模型流式语音识别的示例训练自己的流式中英文语音识别模型。

  • 示例链接

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

2fae810345f5f33890f627df155a8c93.png

Conformer U2 结构示意图[1]

数据集介绍

本次使用了TAL_CSASR中英混合语音数据集。语音场景为语音授课音频,包括中英混合讲课的情况,总计587小时语音。

  • 数据集下载地址

https://ai.100tal.com/dataset

c833ca7c58dbbebc44997a54f9f601fd.png

数据集介绍[2]

中英混合语音识别建模单元

在中文语音识别系统中,常采用音素、汉字、词等作为声学模型的建模单元,在英文语音识别系统中则常采用英文音素、国际音标、子词等作为声学模型的建模单元。

本次PaddleSpeech开源的预训练中英文语音识别模型是采用端到端语音识别模型Conformer U2,未接入语言模型,使用了中文字/词加英文子词的建模方法,将中英文分开建模,通过模型推理,直接得到识别后的结果。

6df10023c8cdd4c42bf06039575a0b84.png

试验结果对比

由于本项目使用的是中英文混合数据集,所以我们选择混合错误率(MER,Mix Error Rate)作为评价指标,中文部分计算字错误率(CER,Character Error Rate),英文部分计算词错误率(Word Error Rate)。测试数据集选择TAL_CSASR中已经划分好的测试集。由于不同的解码方式识别的效果不同,这里我们使用 Attention、CTC Greedy Search、CTC Prefix Beam Search、Attention Rescoring 四种解码方式进行试验,解码效果最佳为Attention Rescoring,混合错误率MER为0.084,折算为我们常说的语音识别正确率91.6%。

9475a9f762a6c9816157248a18629f8d.png

进一步优化与效果提升

当前中英文语音识别方案的效果还有进一步提升的空间,比如在Conformer U2 模型后面加入Language Model,通过语言模型学习中英文语言信息,PaddleSpeech中提供了基于N-Gram的语言模型训练方案。此外,可以在训练过程中加入Language ID,使用token级别或者帧级别的语言ID标注信息,可以进一步提高中英文语音识别的效果。如果你有更大的中英文混合数据集或者是场景相关的数据集,可以通过微调或者进一步训练,提高在业务场景中的识别效果。

3bc8297edffb9be15db6f4fd94ef0b19.png

PaddleSpeech 语音识别技术介绍

除了中英文混合的Conformer U2模型以外,飞桨语音模型库PaddleSpeech中包含了多种语音识别模型,能力涵盖了声学模型、语言模型、解码器等多个环节,支持多种语言。目前PaddleSpeech已经支持的语音识别声学模型包括DeepSpeech2、Transfromer、Conformer U2/U2 ++,支持中文和英文的单语言识别以及中英文混合识别;支持CTC前束搜索(CTC Prefix Beam Search)、CTC贪心搜索(CTC Greedy Search)、注意力重打分(Attention Rescoring)等多种解码方式;支持 N-Gram语言模型、有监督多语言大模型Whisper、无监督预训练大模型wav2vec2;同时还支持服务一键部署,可以快速封装流式语音识别和非流式语音识别服务。通过PaddleSpeech提供的命令行工具CLI和Python接口可以快速体验上述功能。

通过PaddleSpeech精品项目合集,可以在线体验PaddleSpeech的优秀项目,上面更有PaddleSpeech核心开发者精心打造的《飞桨PaddleSpeech语音技术课程》,帮助开发者们快速入门。

  • 项目传送门

https://aistudio.baidu.com/aistudio/projectdetail/4692119?contributionType=1

6a0ac5c28dd01ffc50151e6b3a570eab.gif

如果您想了解更多有关PaddleSpeech的内容,欢迎前往PaddleSpeech主页学习更多用法,Star 关注,获取PaddleSpeech最新资讯。

  • PaddleSpeech地址

https://github.com/PaddlePaddle/PaddleSpeech

af593e21460772ab0cf7718c53a7ac0c.png

引用

[1] 模型结构图

https://arxiv.org/pdf/2012.05481.pdf

[2] 数据集介绍

https://ai.100tal.com/dataset

拓展阅读

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

  • 定制音库成本骤降98%,PaddleSpeech小样本语音合成方案重磅来袭


04bd7c69ddabca4daad8ed82e004ad2d.gif

关注【飞桨PaddlePaddle】公众号

获取更多技术内容~

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ClickHouse进阶篇-多表连接物化视图

简介 在写这篇文章的时候doris 1.2 的物化视图只是支持单表建立物化视图,现在说下ClickHouse多表的物化视图。 前言 本文翻译自 Altinity 针对 ClickHouse 的系列技术文章。面向联机分析处理(OLAP)的开源分析引擎 ClickHouse,因…

全面了解 B 端产品设计 — 基础扫盲篇

在今天,互联网的影响力与作用与日俱增,除了我们日常生活领域的改变以外,对于商业领域的渗透也见效颇丰。 越来越多的企业开始使用数字化的解决方案来助力企业发展,包括日常管理、运营、统计等等。或者通过互联网的方式开发出新的业务形态,进行产业升级,如这几年风头正劲的…

ReentrantLock详说

目录 尝试加锁 如果加锁不成功 重点 尝试加锁 最外层lock方法 ReentrantLock.class public void lock() {sync.lock();} 进来发现是个抽象方法 abstract static class Sync extends AbstractQueuedSynchronizer abstract void lock(); 底下有两个实现类,一个…

Zookeeper3.5.7版本——Zookeeper的概述、工作机制、特点、数据结构及应用场景

目录一、Zookeeper的概述二、Zookeeper的工作机制三、Zookeeper的特点四、Zookeeper的数据结构五、Zookeeper的应用场景5.1、统一命名服务5.2、统一配置管理5.3、统一集群管理5.4、服务器动态上下线5.5、软负载均衡一、Zookeeper的概述 Zookeeper 是一个开源的分布式的&#x…

39万字完整版智能矿山项目建设整体解决方案

本资料来源网络,仅做知识分享,请勿商用。完整资料领取见文末,部分资料内容: 1.1 总体技术要求 1.1.1 核心业务架构 智能矿山业务架构是在统一的标准与规范及安全运维保障体系下,按分层设计模式,分为设备层、…

【基于机器学习的推荐系统项目实战-1】初识推荐系统

本文目录一、为什么我们需要推荐系统?二、推荐系统的发展阶段三、推荐系统模型四、通用推荐系统框架4.1 数据生产4.2 数据存储4.3 算法召回4.4 结果排序4.5 结果应用4.6 新浪微博的框架开源结构图五、推荐常用特征5.1 用户特征5.2 物品特征六、推荐常用算法七、结果…

【自动化测试】一位自动化测试工程师居然不会封装框架?神秘自动化测试框架......

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 自动化测试框架 自…

山寨APP频出?安全工程师和黑灰产在较量

在山寨这个领域,没有人比黑灰产更懂模仿。 据安全从业者介绍,一般而言,对于成熟的山寨开发者来说,几天时间内就可以做出一套前端框架。服务器、源代码、域名、服务商这些内容的创建,通过网上租赁的方式就可以解决。 比…

小红书“复刻”微信,微信“内造”小红书

配图来自Canva可画 随着互联网增长红利逐渐见顶,各大互联网平台对流量的争夺变得愈发激烈。而为了寻找新的业务可能性,各家都在不遗余力地拓宽自身边界。在此背景下,目前最为“吸睛”和“吸金”的社交、电商、种草、短视频等领域&#xff0c…

Qt音视频开发19-vlc内核各种事件通知

一、前言 对于使用第三方的sdk库做开发,除了基本的操作函数接口外,还希望通过事件机制拿到消息通知,比如当前播放进度、音量值变化、静音变化、文件长度、播放结束等,有了这些才是完整的播放功能,在vlc中要拿到各种事…

【vulhub漏洞复现】CVE-2018-2894 Weblogic任意文件上传漏洞

一、漏洞详情影响版本weblogic 10.3.6.0、weblogic 12.1.3.0、weblogic 12.2.1.2、weblogic 12.2.1.3WebLogic是美国Oracle公司出品的一个application server,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应…

快速吃透π型滤波电路-LC-RC滤波器

π型滤波器简介 π型滤波器包括两个电容器和一个电感器,它的输入和输出都呈低阻抗。π型滤波有RC和LC两种, 在输出电流不大的情况下用RC,R的取值不能太大,一般几个至几十欧姆,其优点是成本低。其缺点是电阻要消耗一些…

计算机组成原理4小时速成6:输入输出系统,io设备与cpu的链接方式,控制方式,io设备,io接口,并行串行总线

计算机组成原理4小时速成6:输入输出系统,io设备与cpu的链接方式,控制方式,io设备,io接口,并行串行总线 2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人&#xff0c…

操作系统——11.线程概念和多线程模型

这篇文章我们来讲一下操作系统中的线程概念和多线程模型 目录 1.概述 2.线程 2.1问题提出 2.2线程概念 2.3带来的变化 2.4线程的属性 2.5线程的实现方式 2.5.1用户级线程 2.5.2内核级线程 2.5.3相互组合 2.6多线程模型 2.6.1多对一模型 2.6.2一对一模型 2.6.3多…

linux代码库生成-make示例

1、add.c代码实现加法运算: int add(int a,int b) { return ab; } 2、头文件add.h #ifndef ADD_H #define ADD_H int add(int a,int b); #endif 3、CMakeLists.txt编写 cmake_minimum_required(VERSION 2.6) set(CMAKE_C_FLAGS -m32) project(test_add) include_dir…

骨传导耳机推荐,列举几款骨传导主流的耳机分享

随着科技的发展,耳机也发生了巨大的变化,从最初的传统入耳式耳机到骨传导耳机,越来越多的人开始使用这种听音乐的方式。它可以带给我们更好的体验。骨传导耳机顾名思义就是一种类似骨传导发声原理的无线耳机。这篇文章就是介绍目前市面上比较…

【快速理解和上手】逻辑回归logistic regression (无原理,只有公式化步骤)

逻辑回归 Logistic regression 目的:解决二分类问题 数学效果:根据数据(x⃗,y)(\vec{x}, y)(x,y) (其中y为0或1),拟合一条曲线,x轴表示特征,y轴表示一个概率,即这个输入 xxx 对应着…

《OpenGL宝典》--统一变量

统一变量 [layout (location 0)] uniform float f 1.0f;若设置layout,则不需要使用glGetUniformLocation来获取统一变量的位置 使用glUniform*传递值,glUniformMatrix*()设置矩阵统一变量。 glUseProgram(myShader); glUniform1f(0,45.2f);//0为loc…

香港双重牌照、准入安排和禁止事项等重要制度已明确 20多万字的《虚拟资产咨询文件》以证雄心

前不久,香港证监会就加密货币交易发布的《有关适用于获证券及期货事务监察委员会发牌的虚拟资产交易平台营运者的建议监管规定的咨询文件》(以下简称《咨询文件》),并如期就有关监管虚拟资产交易平台的建议展开咨询,以…

PT100铂电阻温度传感器

PT100温度传感器又叫做铂热电阻。     热电阻是中低温区﹡常用的一种温度检测器。它的主要特点是测量精度高,性能稳定。其中铂热电阻的测量精确度是﹡高的,它不仅广泛应用于工业测温,而且被制成标准的基准仪。金属热…