起因
需求
我需要视频帧和声调的对应。数据集应该是视频帧、音频、文本。从文本可以知道每个字的声调。但是不知道哪一帧是哪个字。视频是一句话,需要分成一个字一个字的片段。
理解了一下大概是需要对齐文本与音频,同时数据集中有音频文件,也有与音频文件对应的文字脚本,这个txt文件中还包含拼音大概这样:
调研了一下,这种功能英语叫“forced alignment”,强制对齐。
尝试的方法
SPPAS
网上搜了一下说对齐的准确度极低,根本无法使用
在自己配置环境的过程中很难顶没整成功,放弃了
MFA
是一种HMM+GMM:隐马尔科夫模型+高斯混合模型,最传统的方法(Hidden Markov Model+Gaussian Mixed Model)。可参考L.R. Rabiner "A tutorial on Hidden Markov Models and selected applications in speech recognition” 写得非常详细,需要一定的数学基础,mfa是会使用音素来分析语音数据,将录音中的声音与文本中的音素相匹配
似乎有希望,配置也完成了不过最后的问题是字典没地方找
这里需要拼音-音素的对应也就是字典,官网上不知道为啥g2p没有中文的,生成不了字典,也就没法用,最后总算是解决了,也是通过这种方式解决了这个问题。下面细说
Montreal-Forced-Aligner配置使用
本体
这里其实可以不用像官网Montreal Forced Aligner documentation — Montreal Forced Aligner 3.0.0 documentation
上面一样配置直接下载调用里面的exe就可以了,文件分享连接放在下面,版本是1.1.0挺老的但是能用。
这里是w