最近做项目需要用到中文语音文本对齐,在网上搜罗了一圈,发现目前主流的是用Montreal Forced Aligner(MFA)在做。知乎和C站的一些教程不太全,并且发帖时间较早,导致现在按其教程安装出现多个报错,在经过多个版本的尝试和修复报错问题后,终于成功安装并可以正常使用,特写此贴记录。
一、关于数据源
首先我们做语音本文对齐需要有音频数据和文本数据,音频数据可以自己采集和利用公开的数据库,我自己用的是清华大学中文语音识别数据THCHS30,链接如下:
该数据集包括的音频数据的.wav格式正是与后面MFA输入格式所适配的,并且该数据集已经包含了我们后续所需要的与音频所对应的同样是用于MFA输入的拼音文本,只不过在后续用作MFA输入时,需要将TRN中的第二行复制,新建文本文件,粘贴内容,保存类型为.lab文件。


更为一般的情况下,我们需要通过某些软件将音频格式转换为.wav格式,并且在此基础上,将音频文件转中文汉字txt文本处理(目前比较常用的方式是采集讯飞接口),之后在通过代码完成txt到.lab文件的转换(可参考以下链接中的第一步)。
https://www.cnblogs.com/ZigHello/p/16133689.html
二、MFA的安装教程
有了格式为.wav的音频文件和与之相对应的格式为.lab的文本文件(拼音加声调)后,我们下载CONDA建立虚拟环境,CONDA的安装教程有很多,在此不加以赘述。
目前MFA已经有了3.0+版本,经过测试可以正常使用。下面是官网的安装教程:
https://montreal-forced-aligner.readthedocs.io/en/latest/installation.html
第一步(默认Windows系统),创建名为aligner(自定义)的虚拟环境。
conda create -n aligner -c conda-forge montreal-forced-aligner
激活环境
conda activate aligner
后续要跑深度学习模型的话建议安装GPU版本
conda install pytorch torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia
安装必要的依赖包
pip install speechbrain
尝试了2.0+版本有一些报错,最后在3.0.0a1版本下成功运行(注意版本迭代的问题)
conda install montreal-forced-aligner==3.0.0a1
通过以下代码测试是否安装完成,成功的话会显示版本号
mfa version
下载自带的预训练的声学模型
mfa model download acoustic mandarin_mfa
下载自带的预训练的字典模型
mfa model download dictionary mandarin_mfa
通过以下指令完成音频与本文数据到textgrid对齐文本的输出,其中音频数据与保存目录是自定义的路径名称,千万不要有中文,博主就是因为这个原因耽搁了好久。音频数据的文件夹下同时存放音频.wav文件和文本(拼音加声调).lab文件,名称要一致。
mfa align 音频数据 普通话词典 普通话模型 保存目录
三、一些报错
数据路径中含有中文会出现以下报错。

本文档详细介绍了如何使用Montreal Forced Aligner(MFA)进行中文语音文本对齐。首先,提供了获取音频和文本数据的来源,特别是THCHS30数据集的使用。接着,阐述了MFA的安装步骤,包括创建CONDA虚拟环境、选择合适的版本以及安装依赖。在安装过程中,作者强调了避免数据路径包含中文以防止错误的重要性。最后,提到了在运行过程中可能遇到的报错情况。
7107





