Windows 10 中使用 Montreal-Forced-Aligner (MFA) 实现音频和文本强制对齐

文章目录

      • 一、实现目标
      • 二、安装 Montreal-Forced-Aligner
        • 1、使用 Anaconda 虚拟环境
        • 2、修改默认下载路径
        • 3、安装 montreal-forced-aligner 及相关第三方包
        • 4、验证是否安装成功
      • 三、下载声学模型和发音词典
        • 1、命令行方式下载
        • 2、手动方式下载
      • 四、强制对齐
        • 1、准备音频及对应文本
        • 2、开始对齐
      • 五、使用 Praat 工具查看对齐效果
      • 六、参考资料

一、实现目标

一份音频文件(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 按钮:

点击按钮

查看对齐结果:

查看对齐结果


六、参考资料

官方资料:

  • github Montreal-Forced-Aligner
  • Installation
  • First steps
  • mfa-models

相关博客:

  • 安装与使用Montreal Forced Aligner(MFA)
  • Montreal Forced Aligner Windows笔记
  • Montreal Forced Aligner使用教程(中文语音文本对齐)
  • Montreal Forced Aligner (MFA)安装教程及异常处理
  • 中文语音文本对齐-MFA-不需要配环境的傻瓜教程
  • Forced Alignment 踩坑日志

其他:

  • textgrid 处理

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/322561.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[嵌入式系统-72]:RT-Thread-组件:单元测试框架utest

目录 utest 测试框架 ​编辑 测试用例定义 测试单元定义 utest 应用框图 2. utest API assert 宏 测试单元函数运行宏 测试用例导出宏 测试用例 LOG 输出接口 3. 配置使能 4. 应用范式 5. 测试用例运行要求 6. 运行测试用例 测试结果分析 7. 测试用例运行流程 …

14.集合、常见的数据结构

集合 概念 Java中的集合就是一个容器,用来存放Java对象。 集合在存放对象的时候,不同的容器,存放的方法实现是不一样的, Java中将这些不同实现的容器,往上抽取就形成了Java的集合体系。 Java集合中的根接口&#x…

MySQL数据库---增删查改汇总

前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 本文着重整理MySQL数据库增删查改功能 主要是整理语法 争取做到要用什么语法 可以快速找到复制粘贴 增添语法 INSERT into tab(列名,列名,列名) values(内容,内容,内容); 插入一行数据 INSERT into tab(列名,…

邦注科技 模具保护器 CCD电子眼 专业工业视觉检测设备

模具保护器是一种用于保护模具的设备,可以在塑料压铸和冲床等加工过程中起到保护模具的作用。以下是关于模具保护器在保护塑料压铸和冲床模具方面的应用: 塑料压铸模具保护器: 防止碰撞:在塑料压铸过程中,模具可能会…

Android Studio报错:Constant expression required

【出现的问题】: 使用JDK17以上版本,switch语句报错:Constant expression required 【解决方法】: 在gradle.properties配置文件下添加代码: android.nonFinalResIdsfalse 如图: 接着再点击右上角的Sync…

数仓开发:DIM层数据处理

一、了解DIM层 这个就是数仓开发的分层架构 我们现在是在DIM层,从ods表中数据进行加工处理,导入到dwd层,但是记住我们依然是在DIM层,而非是上面的ODS和DWD层。 二、处理维度表数据 ①先确认hive的配置 -- 开启动态分区方案 -- …

Python深度学习基于Tensorflow(6)神经网络基础

文章目录 使用Tensorflow解决XOR问题激活函数正向传播和反向传播解决过拟合权重正则化Dropout正则化批量正则化 BatchNormal权重初始化残差连接 选择优化算法传统梯度更新算法动量算法NAG算法AdaGrad算法RMSProp算法Adam算法如何选择优化算法 使用tf.keras构建神经网络使用Sequ…

活动图与状态图:UML中流程图的精细化表达——专业解析系统动态性与状态变迁

流程图是一种通用的图形表示法,用以展示步骤、决策和循环等流程控制结构。它通常用于描述算法、程序执行流程或业务过程,关注于任务的顺序执行。流程图强调顺序、分支和循环,适用于详细说明具体的处理步骤,图形符号相对基础和通用…

Logfire-Python可观测平台快速上手

我最近在优化之前的FastAPI接入可观测性平台,正好分享一下Pydantic团队推出的logfire,希望对大家的Python工程化有帮助。 Github: https://github.com/pydantic/logfire 官网链接: Pydantic Logfire Documentation Logfire是Pydantic团队推出的可观测…

数据结构复习指导之二叉树的遍历

文章目录 二叉树 考纲内容 复习提示 1.二叉树的遍历 1.1先序遍历(PreOrder) 1.2中序遍历(InOrder) 1.3后序遍历(PostOrder) 1.4递归算法和非递归算法的转换 1.5层次遍历 1.6由遍历序列构造二叉树…

3.yolov5训练前的图片处理详解(python)

其实,yolov5模型可以分为深度网络、数据处理(图片处理)、损失函数、优化器选择、训练和预测及部分构成,相信大家对训练和预测的代码比较熟悉。前面两章我们根据代码和结构图了解了yolov5的深度网络,接下来看数据处理的…

力扣刷题--数组--第三天

今天再做两道二分查找的题目,关于二分查找的知识可看我前两篇博客。话不多说,直接开干! 题目1:69.x 的平方根 题目详情:   给你一个非负整数 x ,计算并返回 x 的 算术平方根 。由于返回类型是整数&#…

首席数据官CCRC-CDO如何构筑企业数据合规的坚固防线

在当今信息化快速发展的时代,数据已经成为企业最宝贵的资产之一。然而,随着数据规模的迅速增长,数据合规问题也日益凸显。首席数据官(CDO)作为企业中负责数据战略和管理的核心人物,构筑企业数据合规的坚固防…

吴恩达2022机器学习专项课程C2(高级学习算法)W1(神经网络):2.5 更复杂的神经网络

目录 示例填写第三层的层数1.问题2.答案 公式:计算任意层的激活值激活函数 示例 层数有4层,不包括输入层。 填写第三层的层数 1.问题 你能把第二个神经元的上标和下标填写出来吗? 2.答案 根据公式g(wxb),这里的x对应的是上…

Unity EventSystem入门

概述 相信在学习Unity中,一定有被UI事件困扰的时候把,当添加UICanvas的时候,Unity会为我们自动添加EventSystem,这个是为什么呢,Unity的UI事件是如何处理的呢,在使用各个UI组件的时候,一定有不…

Springboot+Vue项目-基于Java+MySQL的个人云盘管理系统(附源码+演示视频+LW)

大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:Java毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计 &…

电脑文件x3daudio1 7.dll怎么修复?快速修复x3daudio1 7.dll的方法

你试过电脑文件x3daudio1 7.dll丢失么?如果你有遇到这种情况,那么可能你的某些程序就会启动不了,毕竟这个文件是用来处理音频功能的,那么我们要怎么去修复?下面我们一起来详细的了解电脑文件x3daudio1 7.dll这个文件吧…

顺序栈的操作

归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍 收藏⭐ 留言​📝既然选择了远方,当不负青春…

DNS、ICMP、NAT以及代理服务器

目录 1. DNS 1.1. DNS 背景 1.2. 域名简介 1.3. 域名解析过程 2. ICMP 2.1. ICMP 的功能 2.2. ICMP 的报文格式 2.3. ping 命令 2.4. traceroute 命令 3. NAT和代理服务器 3.1. NAT 技术 3.2. NAT IP转换过程 3.3. NAT 技术的缺陷 3.4. 代理服务器 3.4.1. 正向…

1.使用uniapp搭建微信小程序项目并引入前端组件资源

文章目录 1. 项目配置1.1. 新建vue3项目1.2. 关联云空间1.3. 运行到微信开发者工具 2. 前端组件2.1. uniCloud的内置组件和扩展组件2.2. uView3.02.3. 在uniapp项目引入uview3 1. 项目配置 1.1. 新建vue3项目 由于我们要使用vue3而不是vue2,所以要选好版本&#x…