个人技术分享

一、实现目标

一份音频文件(audio.wav),一份音频对应的文本文件(audio.txt),希望能够列出文本中每个单词在音频当中出现的时间点。

二、安装 Montreal-Forced-Aligner

需要在 Anaconda 中创建虚拟环境后安装使用,所以需要先安装 Anaconda,此处已经安装完成,不再说明相关安装流程。

1、使用 Anaconda 虚拟环境

点击 Anaconda Prompt:

点击 Anaconda Prompt

创建虚拟环境:

conda create -n aligner

注:此处指定虚拟环境名称为 aligner,可自定义。

激活该虚拟环境:

conda activate aligner

2、修改默认下载路径

在下载对应模型及词典前,可通过添加环境变量 MFA_ROOT_DIR 修改默认下载路径:

添加环境变量

更多详情参见:https://montreal-forced-aligner.readthedocs.io/en/latest/user_guide/configuration/index.html

3、安装 montreal-forced-aligner 及相关第三方包

conda install -c conda-forge montreal-forced-aligner=2.2.17 openfst=1.8.2 kaldi=5.5.1068

注:可能因为网络问题需要等待很长时间。

安装详情参见:https://montreal-forced-aligner.readthedocs.io/en/latest/installation.html

4、验证是否安装成功

mfa

验证是否安装成功:

验证是否安装成功

三、下载声学模型和发音词典

1、命令行方式下载
  • 声学模型:

mfa model download acoustic english_us_arpa

  • 发音词典:

mfa model download dictionary english_us_arpa

注:此处安装的是 english_us_arpa,可根据需要自行跟换。下载完成后的压缩包不要解压。

查看可安装的声学模型列表:

mfa model download acoustic

此处以下载 english_mfa 为例,展示下载完成界面:

展示下载完成界面

网络问题可能无法下载成功,尝试手动下载。

2、手动方式下载

下载地址:https://mfa-models.readthedocs.io/en/latest/

手动下载

此处以下载发音词典 dictionary 为例,展示下载过程,声学模型 acoustic models 下载方式同理:

(1) 点击图片中的 Browse dictionaries,进入下载界面,通过关键字检索:

点击图片中的 Browse dictionaries

(2) 进入详情页后,点击跳转至 github 下载:

点击跳转至 github 下载

(3) 拉至页面底部,点击下载

拉至页面底部,点击下载

(4) 将文件放至环境变量对应的目录下

如果是 dictionary 就放在 pretrained_models/dictionary 文件夹下,同理,如果下载声学模型 acoustic 则放在 pretrained_models/acoustic 文件夹下:

拉至页面底部,点击下载

注:下载的声学模型压缩包不要解压。pretrained_models 文件夹是安装完 MFA 后自动生成的不用自行创建。

四、强制对齐

1、准备音频及对应文本

创建 corpus_pathtarget_path 文件夹:

创建 corpus_path 和 target_path 文件夹

将音频及文本文件放置 corpus_path 文件夹中:

放置

2、开始对齐

mfa align D:\AnacondaCLI\mfa_model_dic\pretrained_models\corpus_path english_us_arpa english_us_arpa D:\AnacondaCLI\mfa_model_dic\pretrained_models\target_path

参数说明:

mfa align [OPTIONS] CORPUS_DIRECTORY DICTIONARY_PATH ACOUSTIC_MODEL_PATH OUTPUT_DIRECTORY

  • CORPUS_DIRECTORY:需要对齐的音频及文本的文件夹路径
  • DICTIONARY_PATH:发音词典路径
  • ACOUSTIC_MODEL_PATH:声学模型路径
  • OUTPUT_DIRECTORY:对齐后生成的文件的存放路径

可在命令行后面追加 --clean 参数清除上一次使用的缓存,否则即便清空 corpus_path 文件夹下的内容后添加新的数据,执行命令后依然显示之前对齐的结果。

此处可直接使用 english_us_arpa 是因为模型及词典放置在了默认文件夹下,所以无需填写完整路径。

对齐:

对齐

查看文件:

查看文件

五、使用 Praat 工具查看对齐效果

Praat 工具下载链接:https://www.fon.hum.uva.nl/praat/

添加对齐后的文件和音频文件至目标区域:

查看文件

添加对齐后的文件:

对齐后的文件

添加对应的音频文件:

音频文件

同时选中后点击 View & Edit 按钮:

点击按钮

查看对齐结果:

查看对齐结果


六、参考资料

官方资料:

相关博客:

其他: