数字人初探
通过 conda 创建一个新环境,部分依赖需要 python 环境的版本为
3.10,需要注意。
conda create -n virtual-bot python=3.10 |
激活环境。
conda activate virtual-bot |
文字转语音的模型使用 MeloTTS,具体安装过程参见其 git 文档。
git clone https://github.com/myshell-ai/MeloTTS.git |
其实安装 unidic 只是里面的日语转换需要而已。安装之后就可以执行官网的示例代码。
from melo.api import TTS |
由于这个库只能生成语音,而其他一些“强对齐模型”可以同时输出音素序列。在这个简短的尝试里,我暂时没有探索那些强对齐模型,而是先选择另外的方式得到音素序列分析。使用的也是一个开源库
mfa,全称是
montreal-forced-aligner,其作用是提供文本以及语音文件,这个库通过查找语音库以及对应语言的词典,得到输入音频的音素序列。
首先安装 mfa 需要一些前置依赖。
conda install -c conda-forge openfst pynini kaldi |
然后安装 mfa。
conda install -c conda-forge montreal-forced-aligner |
注意这两步如果使用 pip 安装会有玄学问题,建议直接使用 conda 安装。安装 mfa 之后,需要下载声音库以及词典。下载的时候可能会有 github 链接问题导致下载失败,建议直接在 mfa官网 下载目标文件。
下载之后语音信息需要解压缩一下,然后就可以执行下面的命令来生成对应的音频的音素序列信息了。
mfa align_one zh.wav text ./mandarin_china_mfa.dict ./acoustic_mandarin_mfa ./ |
其语法为
mfa align_one 音频文件路径 文本文件路径 字典路径 音频信息路径 生成的音素序列存放路径 |