定制语音的说话人适配器#

说话人适配器是一种 TTS 技术,允许我们在使用较大数据训练的模型上微调持续时间接近 30 分钟的数据集,并获得令人满意的结果。使用适配器可以显著减少 FastPitch 的训练时间。

下载模型#

下载我们将要微调的预训练模型。

## Download FastPitch pretrained model.
ngc registry model download-version "nvidia/riva/tts_fastpitch_speaker_adapter_ipa:trainable_v1.0"
## Download HiFi-GAN pretrained model.
ngc registry model download-version "nvidia/riva/tts_en_hifigan_adapter:trainable_v1.0"

微调现有模型#

下载模型后,我们可以使用它们将模型微调到新的声音。使用 教程 来微调说话人适配器模型。教程 已经包含了微调的配方和推荐的超参数,但是,我们需要在 Set finetuning params 部分更新以下参数

pretrained_fastpitch_checkpoint="<Path to pretrained FastPitch.nemo ckpt, downloaded from ngc in previous section.>"

finetuned_hifigan_on_multispeaker_checkpoint="<Path to pretrained HifiGan.nemo ckpt, downloaded from ngc in previous section.>"

## To do finetuning based on an IPA pretrained model
use_ipa=True

生成 Riva 检查点#

微调完成后,我们将获得 .nemo 检查点。我们使用 .nemo 检查点来生成 .riva 检查点。将 .nemo 转换为 .riva 的过程记录在 创建 Riva 文件 中。我们为 HiFi-GAN 和 FastPitch 生成 .riva 检查点。下面提到了生成 .riva 的示例命令。

# FastPitch
nemo2riva --key tlt_encode --out FastPitch.riva FastPitch.nemo

# HiFi-GAN
nemo2riva --key tlt_encode --out HifiGan.riva HifiGan.nemo

生成 RMIR#

现在我们应该为 HiFi-GAN 和 FastPitch 都准备好了一个 .riva 检查点。接下来,我们使用 Riva 容器中的 riva-build 来创建一个可部署的 RMIR 检查点。有关更多详细信息,请参阅 Riva 文档。我们也可以使用下面的示例命令和适当的值来生成 RMIR

wget -o ipa.txt https://github.com/NVIDIA/NeMo/blob/main/scripts/tts_dataset_files/ipa_cmudict-0.7b_nv23.01.txt
riva-build speech_synthesis \
    <rmir_filename>:<key> \
    <riva_fastpitch_file>:<key> \
    <riva_hifigan_file>:<key> \
    --num_speakers=1 \
    --phone_set=ipa \
    --phone_dictionary_file=ipa.txt \
    --sample_rate 44100 \
    --voice_name <voice_name> \
    --upper_case_chars=True

结论#

现在我们拥有部署模型所需的一切。我们可以使用 Riva 的 tts_deploy 来部署我们的模型。