🚀 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數據上訓練的聲碼器。否則,生成的音頻可能會有雜音或聽起來不流暢。
📄 參考文獻