PPG

    科技2024-05-19  67

    FindA定义

    我们采用了寻找维度空间里距离最为相近的中英文语料的PPG作为用来一一替换的映射对。

    为每一帧的英文语料PPG寻找对应最合适的中文语料PPG,并用对应的中文的PPG(Spec)来替换原英文的PPG(Spec)

    --------

    采用的距离度量是欧式距离,

    具体流程是:

    首先,分别读取训练数据集中的中英文语料的PPG,并将其拆分成相互独立的帧级别的PPG,将二者混合在同一个列表里面;然后,为每一帧的英文PPG寻找欧式距离最近的中文PPG,由于训练数据集过大和时间复杂度过高,所以采用了KMeans的聚类方法,先对所有中英文帧的PPG进行聚类,得到1000个相互独立的类,然后再在每一个类内进行距离寻优,为每一帧的英文PPG寻找到类内最近的中文PPG,并将其认为是整个维度空间里距离最近的中文PPG;最后,根据为每一帧英文PPG找到的最近的中文PPG进行标记,最终便得到了每一帧的中英文语料PPG的一一映射对。

    另外就是FindA找的时候能不能借鉴拼接TTS的拼接误差的引入

    项目代码

    https://github.com/ruclion/ppg_projector_chenxuey20

    服务器路径:/datapool/home/hujk17/PPG_Projector

    启动环境临时就用tensorflow_p36吧。。

    k-d tree寻找欧几里德距离下的最近邻算法

    https://scikit-learn.org/stable/modules/generated/sklearn.neighbors.KDTree.html

    局限性

    有一个额外限制:k-d树( k-维树的缩写)是在k维欧几里德空间组织点的数据结构

    也就是用KL散度没办法用k-d tree优化

    构造k-d tree的时间复杂度

    同时补充上k means的时间复杂度

     

    回归值:sklearn.neighbors.KNeighborsRegressor

    ball tree版本

    寻找KL散度距离下的最近算法

    可以提前算好ln,节省时间

    500句中找到的向量存在大量连续的相同向量:

    是不是应该输出每一帧PPG的最近距离差,以及一句话统计意义上的mean,std,max,min,etc

    其他的距离

    metricstr or DistanceMetric object the distance metric to use for the tree. Default=’minkowski’ with p=2 (that is, a euclidean metric). See the documentation of the DistanceMetric class for a list of available metrics. kd_tree.valid_metrics gives a list of the metrics which are valid for KDTree.

     

    近邻核函数方法

    定义

    目的:找到合成英文语料第一句Hello中的第一帧对应到中文语料中哪一帧发音最像

    英文语料第一句Hello中的第一帧,这一帧的ppg记为ppg_H,spec记为spec_H枚举英文语料中所有句子的每一帧,记为ppg_i和spec_i,计算欧氏距离dist_i=dist(spec_H, spec_i)dist_i代表发音是否像H的度量,dist越小,则帧的发音信息越像H(当均为一个人spec时,显然成立)训练 (ppg_H, ppg_i) -> dist_i 的NN,作为映射函数F(F的作用可以重新排列ppg,按照dist_i越小的ppg_i,合成的声音越像H)将上述拓展到中文语料的每一帧ppg_j,假设由于ppg去音色,跨语言,且只描述发音信息,因此也满足dist_j越小的ppg_j,合成的声音越像H,既认为映射函数F可以跨域那么有Trained_NN,然后枚举中文语料中所有句子的每一帧,找到最小的dist_j对应的ppg_j对应的spec_j,跳出其中NN可以退化成不含spec信息的ppg之间的欧氏距离,KL散度其中NN的输入也可以简化为欧氏距离,KL散度

    spec_j即为spec_H跨语言跨说话人得到的结果

    讨论的图:

    MFCC,PPG单帧信息少需要拼帧

    可以在英文句子中,当前帧所在句子top3来观察,是否和周围的PPG非常接近

    PPG资源池选择

    传统意义上是中国人说中文语料,为了观察实验,也可以是:

    英国人说英文语料LJSpeech英国人说英文语料LibriSpeech,VC验证过和ASR-PPG联合效果很好中国人说英文语料DataBaker

    问题的拓展

    因为英文跨到中文的实验结果不太好,那么可以考虑方言的跨语言,区分度更小一些,任务难度小,可能很容易成功

    Processed: 0.012, SQL: 9