🚀 NVIDIA Hifigan声码器 (en-US)
HiFiGAN [1] 是一种生成对抗网络(GAN)模型,可从梅尔频谱图生成音频。生成器使用转置卷积将梅尔频谱图上采样为音频。
🚀 快速开始
该模型可在NeMo工具包 [3] 中使用,可作为预训练检查点进行推理,或在其他数据集上进行微调。
要训练、微调或使用该模型,你需要安装NVIDIA NeMo。我们建议你在安装最新版本的PyTorch之后再安装它。
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("You can type your sentence here to get nemo to produce speech.")
"""
说话人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的全并行文本转语音模型,以基频轮廓为条件。该模型在推理过程中预测音高轮廓。通过改变这些预测,生成的语音可以更具表现力,更好地匹配话语的语义,最终让听众更感兴趣。FastPitch基于全并行Transformer架构,在典型话语的梅尔频谱图合成方面,其实时因子比Tacotron2高得多。它使用了一个无监督的语音 - 文本对齐器。
训练
使用NeMo工具包 [3] 对模型进行了1000个epoch的训练。
数据集
该模型在采样率为44100Hz的HiFiTTS数据集上进行训练,并已在生成具有美国和英国口音的多说话人英语语音方面进行了测试。
性能
目前暂无性能信息。
局限性
此检查点仅适用于在44100Hz数据上训练的声码器。否则,生成的音频可能会有杂音或听起来不流畅。
📄 参考文献