实用工具 | 语音文本对齐MFA的安装及使用

 Montreal Forced Aligner(MFA)[1]是一个用于将音频和文本进行对齐的工具。它可以用于语音识别、语音合成和发音研究等领域。MFA支持多种语言和语音,用户可以根据需要自定义训练模型。

本博客介绍如何使用MFA对音频和文本进行对齐,其中使用的是MFA的最新版本(版本v2.2.12)。

目录

MFA的安装

安装方法一:

安装方法二:

生成词典文件

对齐

PS


MFA的安装

MFA 支持 Windows、macOS 和 Linux 操作系统。

本博客是基于 Linux 操作系统(Ubuntu20.04)其他可参考MFA安装。

安装方法一:

conda create -n aligner -c conda-forge montreal-forced-aligner
conda activate aligner
conda update --all
conda install -c conda-forge montreal-forced-alignerpip install g2pk

安装方法二:

 git clone https://github.com/pyrasis/MFARunnerconda create -n mfa -c conda-forge montreal-forced-aligner
source activate
conda activate mfaconda install montreal-forced-aligner==2.0.6
cd MFARunner
pip install -r requirements.txt
sudo apt-get install g++ openjdk-8-jdk python3-dev python3-pip curl
pip install konlpy==0.6.0 ffmpeg==1.4
bash <(curl -s https://raw.githubusercontent.com/konlpy/konlpy/master/scripts/mecab.sh)

生成词典文件

1.下载预训练模型

包含:字典,G2P()模型,声学模型,

下载g2p模型

#英文

mfa model download g2p english_uk_mfa

#中文

mfa model download g2p mandarin_pinyin_g2p
# 也可到官网上直接下载

 #韩文

mfa model download g2p korean_jamo_mfa

 

2.1.示例数据集中文

mfa g2p mandarin_pinyin_g2p 数据集路径/dataset 保存路径/mandarin_dict.txt

.wav文件为数据集中的语音文件,.lab文件为语音文件对应的文本,其中文本的语言应与你使用的声学模型所能识别的文本以及词典文件中的语言相一致。如:声学模型所识别的文本为汉字,而你的语言文件说的内容为“我爱你”,则你的.lab文件中应存储着“我爱你”的文本,若是声学模型识别的文本为拼音,则.lab文件中应为“wo3 ai4 ni3“,同时词典文件中也应有着汉字-音素或者拼音-音素的对应信息。

2.2.示例韩文数据集Korean Single Speaker Speech Dataset | Kaggle

 新建kss-align.py,生成.lab文件

import os, tqdm, re
from tqdm import tqdm
from jamo import h2j
from glob import globtext = '/workspace/dataset/kss/transcript.v.1.4.txt'
base_dir = '/workspace/dataset/kss'filters = '([.,!?])'with open(text, 'r', encoding='utf-8') as f:for line in f.readlines():temp = line.split('|')file_dir, script = temp[0], temp[3]script = re.sub(re.compile(filters), '', script)file_dir = file_dir.split('/')fn = file_dir[0] + '/' + file_dir[1][:-3] + 'lab'file_dir = os.path.join(base_dir, fn)with open(file_dir, 'w', encoding='utf-8') as f:f.write(script)file_list = sorted(glob(os.path.join(base_dir, '**/*.lab')))
jamo_dict = {}
for file_name in tqdm(file_list):sentence =  open(file_name, 'r', encoding='utf-8').readline()jamo = h2j(sentence).split(' ')for i, s in enumerate(jamo):if s not in jamo_dict:jamo_dict[s] = ' '.join(jamo[i])        dict_name = 'korean_dict.txt'
with open(dict_name, 'w', encoding='utf-8') as f:for key in jamo_dict.keys():content = '{}\t{}\n'.format(key, jamo_dict[key])f.write(content)
#pip install jamo#生成.lab文件
python kss-align.py

 

lexicon 文件生成

mfa train_g2p korean_dict.txt korean.zip
mfa g2p korean.zip kss korean.txt
mfa train kss korean.txt out

命令解释

输入到每个指令的参数可以根据用户进行更改。

  • mfa train_g2p 是 korean_dict 路径, 运行后生成的 zip 文件路径
  • mfag2p 来自 train_g2p 的 zip 文件路径、 带有数据的文件夹路径、 运行后生成的 txt 文件路径
  • mfatrain接收有数据的文件夹路径、g2p中出现的txt文件路径、运行后保存TextGrid文件的路径

全部运行后,TextGrid文件将被保存到out文件夹中
 

对齐

mfa align /path:/dataset path:/dictionary path:/acoustic_modle path:/output


执行mfa后,可能会出现名为unaligned.txt的文件。

PS

[PS1]the global mfa database server does not exist, initializing it first . 

全局mfa数据库服务器不存在,请先对其进行初始化。

montreal_forced_aligner.exceptions.DatabaseError: DatabaseError:

There was an error encountered starting the global MFA database server, please see /root/Documents/MFA/pg_init_log_global.txt for more details and/or look at the logged errors above.

 参考网址【未解决】

mfa configure --enable_auto_server
mfa server init

参考材料

【1】PYRASIS.COM: 내 목소리를 TTS로 만들기(FastSpeech2)

【2】Installation — Montreal Forced Aligner 2.0.0 documentation 

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

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

相关文章

几款免费开源的企业管理软件

1、2bizbox 官方地址&#xff1a;http://www.2bizbox.cn/ 2BizBox就是为中小制造企业量身定做的高品质ERP 。 2BizBox ERP软件不但永久免费&#xff0c;还提供了完备的后续增值服务&#xff1a;云ERP、培训、实施、二次开发、BizCare客户保障计划等,这些服务为企业实施ERP提供…

2022好用的手机库存管理软件排行榜前十名 手机库存管理app

市面上的服装进销存软件那么多?该如何选到适合自己的那款呢?最好的方法是看看大家的选择。 大众的选择即是合适的,这是有道理的,顺便看看大家的评价来选择,就不会差了。小编整理了最受欢迎的十大进销存软件,希望对大家有用。 第一名:秦丝进销存 软件介绍:秦丝主要集采购、销…

易软门诊管理9.1破解版

1、升级之前一点做好软件的数据备份和软件备份&#xff0c;以防升级不成功造成暂时不能用。 备份包含&#xff08;软件安装目录的database文件夹和YRclinic文件&#xff09; 2、每次升级完毕&#xff0c;系统默认的用户Admin拥有软件所有功能的操作权限。自己分配的将没有此权…

库存管理 库存管理软件榜单 库存管理软件排名 库存管理提高效率的办法

做生意的最不可少的软件就是进销存,告别手工记账,大大地提高运营效率。 但是市面上的进销存软件那么多,一个个去试要花费很多精力,最好的运气是一眼相中。 今天小编就来整理老板们最推荐的10款进销存软件,希望能帮到你。 第一名:秦丝进销存 推荐指数:★★★★★ 秦丝主以Sa…

库存管理软件免费版软件哪个好用?

阅读本文您将了解&#xff1a;1.库存管理系统软件免费的有哪些&#xff1b;2.库存管理系统软件怎么选。 一、库存管理系统软件免费的有哪些 1、简道云 官网&#xff1a;https://www.jiandaoyun.com 简道云仓库管理系统涵盖仓库管理全流程&#xff0c;可以进行在线填报数据&am…

【自动化测试基础】Appium自动化环境搭建保姆级教程

APP自动化测试运行环境比较复杂&#xff0c;稍微不注意安装就会失败。我见过不少朋友&#xff0c;装了1个星期&#xff0c;Appium 的运行环境还没有搭好的。 搭建环境本身不是一个有难度的工作&#xff0c;但是 Appium 安装过程中确实存在不少隐藏的比较深的坑&#xff0c;如果…

【AI】InsCode AI 创作助手 --使用心得

CSDN AI写作助手上线了&#xff01;InsCode AI 创作助手不仅能够帮助用户高效创作文章&#xff0c;而且能够作为对话式AI回答你想知道的问题。成倍提高生产力&#xff01;欢迎大家使用新功能后分享自己的使用心得与建议&#xff01; 文章目录 一、你平时会使用这类AI工具吗&am…

实训第一天

目录 主流的关系数据库 非关系型数据库 Mysql的启动和停止 Mysql登录方式本地登录 远程登录 查看mysql数据库 创建数据库 使用数据库 删除数据库 Mysql结构化查询语句 mysql 数据类型 数值类型 字符类型 日期类型 唯一约束与主键约束 主流的关系数据库 mysql,db2,oracle&a…

常用编码格式整理

什么是字符集&#xff0c;字符编码&#xff0c;编码和解码&#xff1a; 字符集&#xff1a; 将一些自然语言中的字符组成一个集合; 字符编码&#xff1a; 字符编码&#xff0c;就是建立一套自然语言中的“字符”跟计算机能够存储 处理的二进制数的映射的规则。 即在一个字符集内…

2023新版Spring6全新讲解-核心内容之事务管理

Spring核心之事务 一、JdbcTemplate JdbcTemplate是Spring框架对JDBC操作进行的封装&#xff0c;可以简化方便对数据库的操作。 1.数据库表结构 准备一张普通的表 CREATE TABLE t_student (id int NOT NULL AUTO_INCREMENT,name varchar(32) DEFAULT NULL,age int DEFAULT N…

树和子树的定义

在数据结构中存在一种叫“树”的结构。 树的定义&#xff1a; 树&#xff08;tree&#xff09;是由n&#xff08;n>0)个节点&#xff08;或元素&#xff09;组成的有限集合&#xff08;记为T&#xff09;。 如果n0&#xff0c;它是一棵空树&#xff0c;这是树的特征。如果…

“树的子结构”

描述 输入两棵二叉树A&#xff0c;B&#xff0c;判断B是不是A的子结构。&#xff08;我们约定空树不是任意一个树的子结构&#xff09; 假如给定A为{8,8,7,9,2,#,#,#,#,4,7}&#xff0c;B为{8,9,2}&#xff0c;2个树的结构如下&#xff0c;可以看出B是A的子结构 数据范围: 0…

华为OD机试题【导师请吃火锅】【2023 B卷 100分】

文章目录 &#x1f3af; 前言&#x1f3af; 题目描述&#x1f3af; 解题思路&#x1f4d9; Python实现代码&#x1f4d7; Java实现代码&#x1f4d8; C语言实现&#xff1a; &#x1f3af; 前言 &#x1f3c6; 《华为机试真题》专栏含2023年牛客网面经、华为面经试题、华为OD机…

树的结构-树的各种定义及性质

树&#xff1a; n个结点组成的有限集合。 &#xff08;1&#xff09;有且仅有一个特定的称为根的结点。 &#xff08;2&#xff09;当n>1时&#xff0c;其余结点可分为m个互不相交的有限集合&#xff0c;其中每个集合本身又是一棵树&#xff0c;称为根节点的子树。 注意&…

VTK-vtkInformation

前言&#xff1a;本博文主要介绍vtk中的接口vtkInformation的应用&#xff0c;以及vtkInformation的衍生用法&#xff0c;希望对各位小伙伴有所帮助&#xff0c;谢谢&#xff01; 目录 vtkInformation介绍 描述&#xff1a; Information中接受的类型&#xff1a; 方法 vtk…

半导体(TSS)放电管的两大选购注意事项及选型小策略

固体放电管&#xff0c;是以半导体工艺制作而成的&#xff0c;因此我们也称为半导体&#xff08;TSS&#xff09;放电管&#xff0c;它常在电路中并联使用&#xff0c;具备伏安特性。 TSS放电管在电路中类似开关&#xff0c;在正常工作时不动作&#xff0c;但一般被保护电路受到…

PRE、RC、beta、RTM 含义扫盲

alpha版:内部测试版。α是希腊字母的第一个,表示最早的版本,一般用户不要下载这个版本,这个版本一般是作为技术预览的,很可能包含很多BUG,功能也不全,主要是给开发人员和测试人员测试和找BUG用的。——————————————————————————————————…

直播预告|RTM 助力信令与消息全球实时互通

RTM 是实时消息&#xff08;Real-time Messaging&#xff09;的简称。在实时互动场景中&#xff0c;用户通常有两种互动方式&#xff1a;一种是通过音视频进行互动&#xff0c;比如语音连麦、视频连麦等&#xff1b;另一种是通过非音视频的方式进行互动&#xff0c;比如文字聊天…

数据库sql server 2008 r2 RTM版本升级到sql server 2012 r2

(数据库sql server 2008 r2 RTM版本升级到2012) 1.先介绍sql 2008数据库的几个版本 10.00.1600其实就是SQL 2008 10.50.1600其实就是SQL 2008 R2 10.50.2500其实就是SQL 2008 R2 SP1 10.50.4000其实就是SQL Server 2008 R2 SP2 SQL Server 版本号汇总 那么sql server 2008后…