On Improving Code Mixed Speech Synthesis with Mixlingual Grapheme-to-Phoneme Model

本文主要是介绍On Improving Code Mixed Speech Synthesis with Mixlingual Grapheme-to-Phoneme Model,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章出自Microsoft STC India, INTERSPEECH 2020。
本文主要解决的问题在于,针对英文-印度语混读情景,当印地语使用罗马字母拼写的时候,已有的G2P模型无法很好的将其与英文区分开,并标注正确的发音,并且这些工具比较复杂。因此,本文在已有工作[1,2,3]基础上,使用一种端到端G2P模块简化了模型,提出了一种使用分离音素集(seperated phoneset)训练混读G2P前端的方式,实现英文-印地语混读的方法。

本文重点在于前端,后端合成与已有工作相同,训练数据使用polyglot data。贡献主要有:

  1. 提出了一种生成印地语音素标注的方法
  2. 提出了一种混读G2P前端系统,
  3. 实验证明separated honeset比shared phoneset效果更好。

亮点主要还是在于使用transformer作为前端,其他的语种识别等等更偏向于技术实践。


Q&A

Q1 : 为什么要用分开的音素集? 分开的音素集(separated phoneset)是什么样子的?

A1 :
首先,目前的引文G2P模型使用的是英文语料训练(English entities), 在使用组合音素集的时候(全部映射为英文音素),当碰到用罗马字母书写的regional entities(本地单词),表现会很差,这里原因有三:

  1. regional entities 的读音很多是在英文G2P模型使用的音素(整合)集合之外的
  2. 书写错误。regional entities的发音规则跟英文发音规则不同,用English entities训练的G2P模型,不能转换出正确的发音
  3. 英语语言的非音标性。

其次,关于seperated phonset。相对应的combine honeset 或者 shared phoneset,指的两种语言,发音相近的,用一种音素表示(映射),不同的,则各自添加到音素集合中。将shared phoneset添加语种前缀,就成为seperated phoneset

Q2 : G2P模块是怎么实现和训练的?

A2 : 语种识别 + 音译策略 + native G2P

Q3 : regional entities 是什么?

A3 : 本文的指定概念,比如英文句子中含有本地语言的单词,改单词就是 regional entities 。

Q4 : 什么是英语语言的非音标性( Non-phonetic nature of the English language )?


系统

在这里插入图片描述
该系统包含一个前端和一个合成器,其中前端包含文本正则、英文词典以及一个混读G2P模块(严格来说更像是一个特殊的native G2P模块)。
组成包含:

  • 语种识别 : LID model by Gella et al + 170k英文词典
  • 音译策略 : Brahmi-net transliteration (http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.703.1218 该模型的训练语料来自微软azure认知服务
  • native G2P : 印地语发音生成器使用的是一个基于transformer的结构实现。

处理流程如图所示

  • 输入文本首先使用英文词典查询,成功则输出发音并标注‘en_’前缀
  • 否则,文本输入到混读G2P前端,输出发音,并标记‘hi_’前缀。
  • 对于多音字 ( language-polyphony), 指的是印地语写成罗马字母时,与英文已有单词完全相同,但是读音不同。此时需要维护一个列表,
    在这里插入图片描述

Ref

  • [1] S. K. Rallabandi and A. W. Black, “On Building Mixed Lingual Speech Synthesis Systems.” in INTERSPEECH, 2017, pp. 52–56
  • [2] K. R. Chandu, S. K. Rallabandi, S. Sitaram, and A. W. Black,“Speech Synthesis for Mixed-Language Navigation Instructions.” in INTERSPEECH, 2017, pp. 57–61
  • [3] A. L. Thomas, A. Prakash, A. Baby, and H. A. Murthy, “Codeswitching in Indic speech synthesisers.” in Interspeech, 2018, pp.1948–1952

这篇关于On Improving Code Mixed Speech Synthesis with Mixlingual Grapheme-to-Phoneme Model的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/255394

相关文章

MVC(Model-View-Controller)和MVVM(Model-View-ViewModel)

1、MVC MVC(Model-View-Controller) 是一种常用的架构模式,用于分离应用程序的逻辑、数据和展示。它通过三个核心组件(模型、视图和控制器)将应用程序的业务逻辑与用户界面隔离,促进代码的可维护性、可扩展性和模块化。在 MVC 模式中,各组件可以与多种设计模式结合使用,以增强灵活性和可维护性。以下是 MVC 各组件与常见设计模式的关系和作用: 1. Model(模型)

Debugging Lua Project created in Cocos Code IDE creates “Waiting for debugger to connect” in Win-7

转自 I Installed Cocos Code IDE and created a new Lua Project. When Debugging the Project(F11) the game window pops up and gives me the message waiting for debugger to connect and then freezes. Also a

LLVM入门2:如何基于自己的代码生成IR-LLVM IR code generation实例介绍

概述 本节将通过一个简单的例子来介绍如何生成llvm IR,以Kaleidoscope IR中的例子为例,我们基于LLVM接口构建一个简单的编译器,实现简单的语句解析并转化为LLVM IR,生成对应的LLVM IR部分,代码如下,文件名为toy.cpp,先给出代码,后面会详细介绍每一步分代码: #include "llvm/ADT/APFloat.h"#include "llvm/ADT/S

VS Code 调试go程序的相关配置说明

用 VS code 调试Go程序需要在.vscode/launch.json文件中增加如下配置:  // launch.json{// Use IntelliSense to learn about possible attributes.// Hover to view descriptions of existing attributes.// For more information,

code: 400, msg: Required request body is missing 错误解决

引起这个错误的原因是,请求参数按照get方式给。 应该给json字符串才对 补充: 1. @RequestBody String resource 加@RequestBody必须给json字符串,否则会报错400,记如标题错误。 不加这个的进行请求的话,其实post和get就没有什么区别了。 2. List<String> indexCodes=(List<String>)json.

iOS项目发布提交出现invalid code signing entitlements错误。

1、进入开发者账号,选择App IDs,找到自己项目对应的AppId,点击进去编辑, 2、看下错误提示出现  --Specifically, value "CVYZ6723728.*" for key "com.apple.developer.ubiquity-container-identifiers" in XX is not supported.-- 这样的错误提示 将ubiquity

解决服务器VS Code中Jupyter突然崩溃的问题

问题 本来在服务器Anaconda的Python环境里装其他的包,装完了想在Jupyter里写代码验证一下有没有装好,一运行发现Jupyter崩溃了!?报错如下所示 Failed to start the Kernel. ImportError: /home/hujh/anaconda3/envs/mia/lib/python3.12/lib-dynload/_sqlite3.cpython-

diffusion model 合集

diffusion model 整理 DDPM: 前向一步到位,从数据集里的图片加噪声,根据随机到的 t t t 决定混合的比例,反向要慢慢迭代,DDPM是用了1000步迭代。模型的输入是带噪声图和 t,t 先生成embedding后,用通道和的方式加到每一层中间去: 训练过程是对每个样本分配一个随机的t,采样一个高斯噪声 ϵ \epsilon ϵ,然后根据 t 对图片和噪声进行混合,将加噪

Behind the Code:与 Rakic 和 Todorovic 对话 OriginTrail 如何实现 AI 去中心化

原文:https://www.youtube.com/watch?v=ZMuLyLCtE3s&list=PLtyd7v_I7PGnko80O0LCwQQsvhwAMu9cv&index=12 作者:The Kusamarian 编译:OneBlock+ 随着人工智能技术的飞速发展,一系列前所未有的挑战随之而来:模型的衰退与互联网的潜在威胁愈发明显。AI 的增长曲线可能因训练过程中的瓶颈而趋于平

冒泡排序和鸡尾酒排序(code)

昨天回顾了下冒泡排序和鸡尾酒排序,用面向对象的方式写了一下,并且优化了代码,记录一下~ 一、冒泡排序 # 冒泡排序class BubbleSort(object):def __init__(self, data_list):self.data_list = data_listself.length = len(data_list)# 简单粗暴的排序方式def b_sort(self):d