标签:
- HiFiTTS
- PyTorch
语言:
- 英语
管道标签: 文本转语音
NVIDIA HiFiGAN 声码器(美式英语)
HiFiGAN [1] 是一种生成对抗网络(GAN)模型,能够从梅尔频谱图生成音频。该生成器采用转置卷积将梅尔频谱图上采样为音频信号。
使用说明
本模型可通过NVIDIA NeMo工具包[3]调用,既可作为预训练检查点直接用于推理,也可在其他数据集上进行微调。
安装要求:需先安装最新版PyTorch,再安装NeMo:
git clone https://github.com/NVIDIA/NeMo
cd NeMo
BRANCH = 'main'
python -m pip install git+https://github.com/NVIDIA/NeMo.git@$BRANCH#egg=nemo_toolkit[all]
模型实例化
注意:本模型仅生成频谱图,需配合声码器(如HiFiGAN)转换为波形音频。
from huggingface_hub import hf_hub_download
from nemo.collections.tts.models import FastPitchModel
from nemo.collections.tts.models import HifiGanModel
REPO_ID = "Mastering-Python-HF/nvidia_tts_en_fastpitch_multispeaker"
FILENAME = "tts_en_fastpitch_multispeaker.nemo"
path = hf_hub_download(repo_id=REPO_ID, filename=FILENAME)
spec_generator = FastPitchModel.restore_from(restore_path=path)
REPO_ID = "Mastering-Python-HF/nvidia_tts_en_hifitts_hifigan_ft_fastpitch"
FILENAME = "tts_en_hifitts_hifigan_ft_fastpitch.nemo"
path = hf_hub_download(repo_id=REPO_ID, filename=FILENAME)
model = HifiGanModel.restore_from(restore_path=path)
生成并保存音频
import soundfile as sf
parsed = spec_generator.parse("在此输入文本,NeMo将生成语音")
"""
可选说话人ID:
92 Cori Samuel
6097 Phil Benson
9017 John Van Stan
6670 Mike Pelton
6671 Tony Oliva
8051 Maria Kasper
9136 Helen Taylor
11614 Sylviamb
11697 Celine Major
12787 LikeManyWaters
"""
spectrogram = spec_generator.generate_spectrogram(tokens=parsed,speaker=92)
audio = model.convert_spectrogram_to_audio(spec=spectrogram)
sf.write("speech.wav", audio.to('cpu').detach().numpy()[0], 44100)
Colab示例
输入
接受批量文本输入
输出
生成梅尔频谱图
模型架构
FastPitch多说话人版是基于FastSpeech的完全并行文本转语音模型,通过基频轮廓调节。其创新点在于推理过程中预测音高轮廓,通过调整这些预测可使合成语音更具表现力,更贴合语义语境,最终呈现更生动的听觉效果。该模型采用全并行Transformer架构,梅尔频谱合成速度显著优于Tacotron2,并集成了无监督语音文本对齐器。
训练
使用NeMo工具包[3]训练1000个周期
数据集
基于44.1kHz采样的HiFiTTS数据集训练,已测试支持美式/英式口音的多说话人英语语音生成
性能指标
当前暂无具体性能数据
局限性
本检查点仅适配44.1kHz训练的声码器,否则可能产生杂音或断续音频
参考文献