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

news2024/11/26 12:46:47

文章目录

      • 一、实现目标
      • 二、安装 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.coloradmin.cn/o/1652187.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

sql查询数据语句

select * from 表名 where 列名 某个数据名字 查询某个表名中的某列是否有某个数据

一个圈圈的机制玩法

什么是一个圈圈,说白了就是一个撸广告的平台,只是引入了减产机制,九维机制和分成机制,再加上有央企背景,做的一个区块链平台。 玩法很简单,就是撸广告获取能量,然后获取绿色能量,等…

.Net Core/.Net6/.Net8 实现前端控制台输出

.Net Core/.Net6/.Net8 实现前端控制台输出 场景描述实现思路 代码添加/入队读取列表前端效果 场景描述 公司会接一些小项目开发,部署到客户方后,不方便进行debug 项目以webapi服务为主 实现思路 通过静态类和队列将最近发生的一些内容缓存起来 通过接口…

用户体验至上的Spring Boot博客系统

作者介绍:✌️大厂全栈码农|毕设实战开发,专注于大学生项目实战开发、讲解和毕业答疑辅导。 🍅获取源码联系方式请查看文末🍅 推荐订阅精彩专栏 👇🏻 避免错过下次更新 Springboot项目精选实战案例 更多项目…

多个文件 import 的相同模块里的对象

多个文件 import 的相同模块里的对象,是否永远都是同一个对象? 在store的index.js中 import vue from ‘vue’ import Vuex from ‘vuex’ 并配置有关对象 然后再app.vue中配置vm 在不同的文件中 import一个vue对象,在任何情况下&#…

【JavaWeb】网上蛋糕商城后台-订单管理

概念 前面通过多篇文章以完全实现了用户在网上蛋糕商城平台上的所有功能和操作,从本文开始,实现网站的后台管理功能的介绍和操作。 订单列表 想要进入后台管理系统,则登入的用户一定是管理员账号,这个账号和密码只有管理员才知…

Isaac Sim 3(学习笔记5.8)

Isaac Sim 利用深度学习获取mask掩码图 参考内容 Kubernetes官网 在 Linux 系统中安装并设置 kubectl | Kubernetes准备开始 kubectl 版本和集群版本之间的差异必须在一个小版本号内。 例如:v1.30 版本的客户端能与 v1.29、 v1.30 和 v1.31 版本的控制面通信。 用…

WPF之多种视图切换

1&#xff0c;View切换&#xff0c;效果呈现 视图1 视图2 视图3 2&#xff0c;在Xaml中添加Listview控件&#xff0c;Combobox控件。 <Grid ><Grid.RowDefinitions><RowDefinition Height"143*"/><RowDefinition Height"30"/>&l…

五款加密软件的对比分析|加密软件怎么选

从企业防泄密角度来说&#xff0c;加密软件是最有效的解决方案之一&#xff0c;通过对内部核心文档、图纸、代码、视频等各类文件进行加密。可以有效防止文件外发泄密、窃取、设备丢失导致的数据泄露。 下面主要对五款加密软件进行对比分析&#xff0c;帮助你快速选择一个适合…

gpt_academic的使用——含一键安装和接入其他API以及本地模型

https://github.com/binary-husky/gpt_academic/releases/ https://github.com/binary-husky/gpt_academic/wiki 安装

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

文章目录 二叉树 考纲内容 复习提示 1.二叉树的概念 1.1二叉树的定义及其主要特性 1.1.1二叉树的定义 1.1.2几种特殊的二叉树 1.1.3二叉树的性质 1.2二叉树的存储结构 1.2.1顺序存储结构 1.2.2链式存储结构 知识回顾 二叉树 考纲内容 &#xff08;一&#xff09;树…

Hive数据模型

Hive数据模型 1. 表&#xff08;Table&#xff09;&#xff1a; 表是数据库中的基本组成单位&#xff0c;用于存储数据。它由一系列的行和列组成&#xff0c;每行代表一个记录&#xff0c;每列代表一种属性或字段。创建表时&#xff0c;你需要定义列的数据类型、约束和索引等信…

开发中的一些专业术语,POJO、PO...

在 Java 开发中&#xff0c;以下是常见的设计模式和概念&#xff1a; PO&#xff08;Persistent Object&#xff09;&#xff1a;持久化对象&#xff0c;也称为实体类或数据对象。它是与数据库表结构对应的类&#xff0c;通常用于表示持久化数据的实体。PO 类的属性与数据库表的…

Windows端之Python3.9及以上高版本工程打包得到的exe逆向工程解包得到pyc文件进而得到py文件的流程实现

参考来自 【python逆向 pyc反编译】python逆向全版本通杀_python反编译pyc-CSDN博客https://blog.csdn.net/zjjcxy_long/article/details/127346296Pyinstaller打包的exe之一键反编译py脚本与防反编译_pyinstaller防止反编译-CSDN博客https://blog.csdn.net/as604049322/artic…

Java零拷贝技术实战

文章目录 引入传统IO内存映射mmap文件描述符sendFile测试总结 引入 为什么要使用零拷贝技术&#xff1f; 传统写入数据需要4次拷贝&#xff0c;如下图&#xff1a; 传统IO import java.io.*; import java.net.Socket;public class TranditionIOClient {private static fina…

​「Python绘图」绘制太极图

python 绘制太极 一、预期结果 二、核心代码 import turtlepen turtle.Turtle()print("开始绘制太极")radius 100 pen.color("black", "black") pen.begin_fill() pen.circle(radius/2, 180) pen.circle(radius, 180) pen.left(180) pen.circ…

小项目“谈笑风生”测试报告

文章目录 一、项目介绍1.1项目背景1.2功能介绍 二、测试环境三、测试执行过程3.1功能测试3.1.1登录页面测试3.1.2注册页面测试3.1.3主页面测试 3.2界面自动化测试3.2.1登录模块测试3.2.2注册模块测试3.2.3展示各种信息模块测试3.2.34聊天消息传送模块测试 四、测试结论与建议 一…

8.Redis

Redis是一个基于内存的key-value结构数据库&#xff0c;而mysql是通过数据文件&#xff0c;以二维表的方式存储在磁盘上。 优点 基于内存存储&#xff0c;读写性能高适合存储热点数据企业应用广泛 Redis目录文件 启动命令 redis-server.exe redis.windows.conf 退出命令 c…

☺☺☺☺☺☺☺栈的应用习题:有效的括号☺☺☺☺☺☺☺

目录 一解题思路&#xff1a; 二对解答代码分析&#xff1a; 三解答代码展示&#xff1a; 即浅学栈的创建后&#xff0c;可以简单利用其性质&#xff08;先进后出&#xff0c;后进先出&#xff09;来完成对一些题目的解答 如&#xff1a; 一解题思路&#xff1a; 这里我们可…

图数据库 之 Neo4j 与 AI 大模型的结合绘制知识图谱

引言 随着信息时代的到来&#xff0c;海量的文本数据成为了我们获取知识的重要来源。然而&#xff0c;如何从这些文本数据中提取出有用的信息&#xff0c;并将其以可视化的方式展示出来&#xff0c;一直是一个具有挑战性的问题。近年来&#xff0c;随着人工智能技术的发展&…