【meta】Scaling Speech Technology to 1,000+ Languages

  • nvidia-NeMo包含TTS的模型,开源数据

uroma转写工具介绍

  • uroman转写工具

  • N-to-M mapping 转写的规范,包含一些中文-拼音,拉丁文-读法的规则转换。字符串匹配规则下的查字典;

  • 将字母对应到发音单元
    在这里插入图片描述

  • 转写规范

    • 转写过程尽量做到可逆映射;
    • 忽略变音符号,比如 o u ‘ ou` ou o u ou ou,转写结果是一样的;
    • 不会对缺乏原音的文本进行元音化
    • 数字,除了0-9一一进行阿拉伯数字的对应,还会对不同语言书写格式转写到阿拉伯计数上;
    • 一些基于拉丁文字的语言中的单词的拼写和发音差异很大,如果非拉丁文字中单词的相应拼写基于发音,则字符串相似性匹配会变得复杂。因此,给出替代结果
      在这里插入图片描述

数据介绍

  1. 数据来源:New Testament,1000多种语言,不同的speaker(男性为主)读《新约》的26个章节,55K hours数据的录音格式是标准的;还有另外49k hours 是各种录音文本转写格式,以及同一种语言不同的口音,但是都有audio-text paired 数据;
  2. 语种识别:不同的口音认为是一种语言;语音合成:同一种语言,只选择一种格式;语音识别:不同的口音认为是不同的语言,标记为srp-script:latin, srp-script:cyrillic.
  3. 背景音乐:38%的语言有背景音乐,合成任务会remove这些有背景音乐的音频;

数据处理

  1. 采样率,原始文件22/24/44khz,统一重采样到16k

  2. 文本规范:NFKC normalization ,unicode的KC 编码;包括标点符号,括号(作者们听一些音频,发现没有读括号,于是删除)等的处理;

  3. 对齐问题:
    a. CTC Alignment:音频是一整个章节,几十分钟,无法用transformer模型直接做对齐;将音频按照15s 长度计算后验概率,然后把后验概率拼成一个大矩阵, O ( L ∗ T ) O(L*T) O(LT),其中L是文本长度,T是音频长度;作者优化的算法:viterbi 算法计算最有路线时,只存储forward values for the current and the previous time-step and regularly transfer the computed backtracking matrices to CPU memory. 因此矩阵优化成 O ( L ) O(L) O(L)
    在这里插入图片描述
    b. <*>符号加入:音频开头读者一般会介绍章节内容,这些没有对应的文本;以及数字没有按照标准书写体写,手动转写比较困难,因此在章节文本的开头加入<*>符号,数字用<*>符号替代;最终处理的时候,开头的<*>符号对应,删除;句中数字<*>符号替换回去;选这个字符是因为他和HMM中的sil/OOV token都不重复;

  4. 文本转写:本文使用uroman转写,工具将不同语言的文本转成Latin 编码;也有Unitran的编码转写,将UTF-8 encoded text 转成WorldBet(IPA)或者 X-SAMPA;本文使用uroman是因为它比Unitran更简单,实验取得结果差不多。将uroman转写的所有字母小写,最后只保留a-z以及上撇符号。

  5. 对齐二次处理:因为音频中,录音人会随机插入一些文本中没有的发挥,所以需要确认;训练单语言ASR,将CER>10%的扔掉;

最终筛选数据

在这里插入图片描述

TTS systems

  • 每个语言挑选一个speaker recording,训练一个单独的VITS model,
  • txt representation:如果语言的词典比较小,letter-based;比较大,使用uroma-based;
    在这里插入图片描述

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

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

相关文章

打字练习--Master of Typing 3

Master of Typing 3是一款适用于Mac OS平台的打字速度提升和键盘技能训练软件。它旨在帮助用户提高打字速度、准确性和键盘操作技能&#xff0c;无论用户是初学者还是熟练的键盘操作者&#xff0c;都能提供适合的练习模式。Master of Typing 3提供了一系列结构化的打字课程和实…

Spring Security OAuth2之认证服务、资源服务、web安全配置服务加载优先级详解

order的值越小&#xff0c;类的优先级越高&#xff0c;IOC容器就会优先加载&#xff0c;上面的优先级是&#xff1a;认证服务器配置&#xff08;0&#xff09;>资源服务器配置&#xff08;3&#xff09;>web安全服务配置&#xff08;100&#xff09;在做资源权限配置的时…

(2023码蹄杯)省赛(初赛)第二场真题(原题)(题解+AC代码)

题目1&#xff1a;MC0214捡麦子 码题集OJ-捡麦子 (matiji.net) 思路: 1.第n米在前n-1米的基础上多加一个n个麦子&#xff0c;那么直接从1开始枚举&#xff0c;累加答案即可 AC_Code:C #include<bits/stdc.h> using namespace std;int main( ) {int n; cin>>n;…

三维模型重建中地面控制点刺点输入常见问题及解决方法

三维模型重建中地面控制点刺点输入常见问题及解决方法 在倾斜摄影三维模型重建中&#xff0c;地面控制点的人工刺点输入是一个重要的环节。然而&#xff0c;这个过程可能会遇到一些常见问题。以下是一些常见问题及相应的解决方法&#xff1a; 1、问题&#xff1a;标定点位置不…

19.Spring如何处理线程并发问题?

Spring如何处理线程并发问题? 在一般情况下,只有无状态的Bean才可以在多线程环境下共享,在Spring中,绝大部分Bean都可以声明为singleton作用域,因为Spring对一些Bean中非线程安全状态采用ThreadLocal进行处理,解决线程安全问题。 ThreadLocal和线程同步机制都是为了解决多…

Kafka KRaft 版本集群部署详细教程(附配置文件详细解释)

版本说明 Ubuntu 18.04.6Kafka 3.6.0JDK8 集群配置 操作系统ip域名Kafka Broker 端口Kafka Controller 端口Ubuntu 18.04.6192.168.50.131kafka1.com90929093Ubuntu 18.04.6192.168.50.132kafka2.com90929093Ubuntu 18.04.6192.168.50.133kafka3.com90929093 安装 vim, cur…

hive 偏门函数

1.分位数函数percentile percentile(dau_days,0.5) as dau_days_50, percentile(dau_days,0.6) as dau_days_60, percentile(dau_days,0.8) as dau_days_80,2.窗口函数&#xff08;带滚动窗口&#xff09; #滚动30d dauavg(dau) over(order bydtm rows between 29 PRECEDINGa…

路由跳转到另一个页面

点击添加员工跳转到详情页 <el-button size"mini" type"primary" click"$router.push(/employee/detail)">添加员工</el-button>配置员工详情的路由信息 import layout from "/layout"; export default {path: "/em…

OBC、DCDC自动化测试解决方案!

OBC(车载充电机&#xff09;和DCDC&#xff08;直流-直流变换器&#xff09;是电动汽车的核心部件&#xff0c;DCDC和OBC的功能质量对于整车的性能和安全性至关重要。在OBC和DCDC&#xff0c;以及整车开发测试过程中&#xff0c;需要对OBC和DCDC进行功能和性能方面进行全面的测…

水溶性肥料行业分析:预计2028年将达到202亿美元

随着我国农业的集约化、规模化不断发展&#xff0c;以及大型农场涌现&#xff0c;水肥一体化面积将会不断扩大。同时&#xff0c;水溶肥是符合更加环保、更加可持续发展的新一代肥料&#xff0c;是中国肥料产业未来的重点发展课题。 水溶性肥料(Water Soluble Fertilizer&…

ChatGPT生成的一些有趣的文件管理用python小程序

1. 在前位置中的所有文件夹内增加一个名为 abc 的新文件夹 import osdef create_abc_directories(root_dir.):# 获取当前目录下的所有目录subdirectories [d for d in os.listdir(root_dir) if os.path.isdir(os.path.join(root_dir, d))]# 在每个目录中创建名为abc的子目录f…

co域名是什么

co域名是什么本篇文章给大家分享的是有关co域名是什么&#xff0c;小编觉得挺实用的&#xff0c;因此分享给大家学习&#xff0c;希望大家阅读完这篇文章后可以有 所收获&#xff0c;话不多说&#xff0c;跟着小编一起来看看吧。 .co域名后缀是哥伦比亚的国家顶级域名后缀&…

解决两个依赖的全限定类名完全相同问题

介绍 我们会经常在maven项目中&#xff0c;依赖第三方的sdk或者api。当依赖的多了就会发生一个问题。例如有2个依赖的某个类的包名和类名完全相同&#xff0c;但这两个依赖的这个类的方法不完全相同。这就不好办了。用一个&#xff0c;另一个就会有问题。 解决 至于网上说的…

Android自动化测试中使用ADB进行网络状态管理!

技术分享&#xff1a;使用ADB进行Android网络状态管理 Android自动化测试中的网络状态切换是提高测试覆盖率、捕获潜在问题的关键步骤之一&#xff0c;本文将介绍 如何使用ADB检测和管理Android设备的网络状态。 自动化测试中的网络状态切换变得尤为重要。 网络状态查询 adb s…

【23真题】复录比高达2.24,但题目很棒!

今天分享的是23年广东工业837的信号与系统试题及解析。注意官方不公示真题&#xff0c;所以这套试卷为回忆版本。 本套试卷难度分析&#xff1a;22年广东工业837考研真题&#xff0c;我也发布过&#xff0c;若有需要&#xff0c;戳这里自取&#xff01;平均分107.93&#xff…

Java中的Lambda表达式

lambda表达式是一个可传递的代码块&#xff0c;可以在以后执行一次或多次。 1.lambda表达式的语法 eg&#xff1a;有如下lambda表达式&#xff1a; (int a, int b) -> {return ab}; 这个表达式的本质是一个函数。 一般的函数类似如下&#xff1a; int add(int a, int …

我的创作纪念日--成为创作者的 第1825天(5年) 啦

醉颜凉 &#xff0c;不知不觉今天已经是你成为创作者的 第1825天&#xff08;5年&#xff09; 啦。 机缘 1、作为一个创作者&#xff0c;我最初成为创作者的初心是出于对技术的热爱和对分享的渴望。我希望通过创作&#xff0c;将自己在实战项目中的经验分享给大家&#xff0c;…

ECONGU4280 Corporate Finance

ECONGU4280 Corporate Finance WeChat: zh6-86

P8649 [蓝桥杯 2017 省 B] k 倍区间(前缀和+优化(桶分类))

分析&#xff1a; &#xff08;1&#xff09;任意连续子序列可用两个前缀和的差来表示 &#xff08;2&#xff09;判断该子序列是否为k的倍数 p1-p2 模 0 (mod k) 等价于&#xff1a;前缀和模 k 是否同余 &#xff08;3&#xff09;同余的任意两前缀和组合的序列均满足…

el-select多选multiple数据无法删除,回显成功,但无法编辑,选中和删除都没反应

原因&#xff1a; 回显的数据是从后台接口得来&#xff0c;由于数据层次太多&#xff0c;导致render函数没有自动更新&#xff1b;需要手动强制刷新 解决方案&#xff1a; 使用 change “$forceUpdate()” 强制刷新视图 代码&#xff1a; <el-select multiple filtera…