0. 说明
把之前的PPG Project方法总结为专利, 整理
- word
- PPT
- 手推公式
- 博客
- 印象笔记
1. word-专利思路整理-FindA(KL散度)
FindA(KL散度)
1.1. 总体思路
我们采用了寻找维度空间里距离最为相近的中英文语料的PPG作为用来一一替换的映射对。
为每一帧的英文语料PPG寻找对应最合适的中文语料PPG,
并用对应的中文的PPG(Spec)来替换原英文的PPG(Spec)
最终得到替换后的音频
1.2. 核心点
- PPG是一个时间与类的矩阵,表示在一个发声的特定时间范围内每个语音类的后验概率。KL散度,又称为相对熵、信息散度、信息增益等,是描述两个概率分布P和Q差别的非对称性的度量。因此可以通过KL-distance(PPG中,PPG英)来度量PPG之间的相似程度。ASR也是通过KL作为loss训练
- 如果将每一帧英文PPG替换为对应的在KL散度意义下的最为相近的中文PPG后,直接对每一帧中文PPG索引得到对应的线性谱,则会由于帧与帧之间的不连贯性和冲突等问题而导致合出的音频噪声严重、不平滑
- 于是,我们先用整个中文语料库的英文PPG和线性谱映射对作为训练数据集,训练一个深度神经网络。该网络(1)可以很好地为输入的每一帧英文PPG输出对应的中文音色完好的线性谱(2)RNN模型为输入的一句话的英文PPG序列输出准确的连贯的线性谱序列。对于2中不连贯,冲突的中文PPG序列,由于神经网络具有天然的鲁棒性(比如对输入存在一定扰动或偏差输出仍然准确)等优点,尽管每一帧最为相似的中英文语料的PPG之间存在部分差别,但将替换后的中文PPG输入到该神经网络中,依然可以很好的线性谱输出,从而转移了不连续问题的观察角度,解决了音频帧的不连续等问题。
1.3. 具体步骤
- 先分别对中、英文语料库的每一句标准的中、英文音频提取线性谱,得到每一句中、英文语料的线性谱;然后分别对中、英文语料中的每一句话的线性谱提取对应的中、英文PPG,得到每一句中、英文语料的PPG,
- 然后分别对中、英文语料中的每一句话的线性谱提取对应的中、英文PPG,得到每一句中、英文语料的PPG,并将其拆分成相互独立的帧级别的PPG,将二者混合在同一个列表里面;
- 为每一帧的英文PPG寻找KL散度意义下的最近的中文PPG,即为每一帧英文PPG寻找使得KL-distance(PPG中,PPG英)值最小的对应的每一帧中文PPG,并认定找到的中文PPG是整个中文语料库中和该帧英文PPG相似度最高的PPG,于是得到了每一帧中英文语料PPG的一一映射对;
- 用整个英文语料库每一帧的英文PPG和线性谱映射对作为训练数据集,训练一个深度神经网络,该网络可以很好地为输入的每一帧英文PPG输出对应的完好的线性谱;然后,将每一帧中英文语料PPG的映射对中的英文PPG替换为对应的中文PPG,并将该中文PPG作为神经网络的输入,从而得到很好线性谱输出;
- 最后将每一帧的线性谱合成对应的每一句音谱,从而得到了中文说话人说的英文音谱。
1.4. 评测标准
- 根据主观评测:分别对每一句原始英文语料库中的英文音频和对应的合成的中文说话人说的英文音谱,从可懂度、流畅度等角度进行主观评测,MOS打分;
- 根据PPG的相近程度:分别对每一句原始英文语料库中的英文音频和对应的合成的中文说话人说的英文音谱,提取PPG,并比较二者在KL散度意义下的差异程度;KL散度和ASR的loss是一致的,也即意味着序列间KL散度越小,ASR识别的结果越接近
- 根据ASR识别准确度:分别对每一句原始英文语料库中的英文音频和对应的合成的中文说话人说的英文音谱,通过同一个ASR,比较二者识别的差异程度。(先不要)
2. word-Paper思路整理-PPG Cross TTS FindA
Tile:PPG Cross TTS, FindA
2.0. Abstract
略
2.1. INTRODUCTION
略
2.2. RELATED WORK
略
2.3. BASELINE APPROACH
2.3.1. PPG
2.4. PROPOSED APPROACH
2.4.1. Approach: FindA
算法的定义为:
我们采用了寻找维度空间里距离最为相近的中英文语料的PPG作为用来一一替换的映射对的寻找依据。
为了从一句英国人说英文的句子转变为中国人说英文的句子,
为每一帧的英文语料PPG寻找对应最合适的一帧中文语料PPG,
并用对应的中文的PPG(Spec)来替换原英文的PPG(Spec)
2.4.2. 距离选取为欧氏距离
欧氏距离的定义:略
算法具体流程是:
- 首先,分别读取训练数据集中的中英文语料的PPG,并将其拆分成相互独立的帧级别的PPG,将二者混合在同一个列表里面
- 然后,为每一帧的英文PPG寻找欧式距离最近的中文PPG,由于训练数据集过大和时间复杂度过高,采用了KMeans的聚类方法,先对所有中英文帧的PPG进行聚类,然后再在每一个类内进行距离寻优,为每一帧的英文PPG寻找到类内最近的中文PPG,并将其认为是整个维度空间里距离最近的中文PPG
- 类内寻找最近距离PPG时,类内建立基于欧氏距离的k-d tree数据结构,用于加快查询的时间复杂度
- 经过3,4步骤,为每一帧英文PPG找到了全局中文PPG中最近的一帧PPG,记录为map矩阵
- 最后,根据map矩阵,英文PPG为map矩阵查询索引,逐帧的替换此句话中的英文Spec为中文Spec
2.4.3. 距离选取为对称KL散度
无法使用聚类和k-d tree优化,但是可以:
- 写成矩阵形式并行计算
- PPG只考虑维度中前三大的维度的数对对称KL散度距离的影响,剩下的近似为0
2.4.4. Approach: FindB-Multi-Speaker-CBHG
结构
数据
2.5. Experiment
2.5.1. Experimental Setup
ASR部分:英文ASR,使用5ms帧移,Librispeech训练出来,使用卢辉预训练正确率83%的ckpt
PPG提取:
- 英文语料:LJSpeech 13100句,用英文ASR提取PPG,并提取Spec
- DataBaker_CN 10000句,用英文ASR提取PPG,并提取Spec
具体超参数见PPT:
2.5.2. 实验结果分析
- 实验现象是不连续,呲呲啦啦,本质上是:每一帧挑选ppg是单独割裂开来挑的(拼出来的),拼起来的时候,spec一定会呲呲啦啦;所以目前重点是在从呲呲啦啦的声音到平滑的声音,这样做才能出demo,经典问题
- 处理specs (不考虑)
- 从呲呲啦啦的声音到平滑的声音方法一:从时域上取一小段波形*
- 呲呲啦啦信号波形,时域上加窗,信号角度平滑
- 拼帧,距离是|前后几帧,一个大的PPG-Triphone
- 问题建模:中文的原始语料使得构造的PPG英文新句子,英文原始,关注输入:替换的PPG-Spc,目标是,“平滑,正确”的波形-TTS, 中文过度特性,英文正确发音
2.6. Future Work
PPG -》 X feature represent
X, Spec
验证:现在数据,实验结果:PPG与Spec发音相似的对应,是否是杂乱无章无序的,需要重新排序/映射关系,保证映射关系一致。是否优缺点:不连续-》紧邻不代表Y近邻
3. PPT-PPG Project实验结果+讨论
TODO: 输出-关键-ppt-FindA第二次实验结果+讨论-v3-2020-11-9
4. PPT-简历讲PPG Project
TODO: 输出-户建坤简历PPT-2020-10-12.pptx
5. PPT-简练讲PPG跨语言合成
作为BaseLine写在专利里面
TODO: 输出-PPG跨语言总模块介绍+HCSI实验结果和模型细节.pptx
6. PPT-平安讲整个跨语言合成分类+FindA
作为BaseLine, 相关工作, FindA介绍的补充写在专利里面, 有很多DEMO可以挂网上
TODO: 输出-PAC-TTS-Multilingual-weekly-2020-10-16.pptx
7. PPT-一些DEMO和阿里的PPG-TTS结构
作为PPG方法的相关工作, 以及一些DEMO
TODO: 输出-ppt-增加双语PPGDEMO-增加阿里PPG-TTS详细结构
8. 手推公式
9. 以往博客
TODO
10. 印象笔记
TODO