重要提示

您正在查看 NeMo 2.0 文档。此版本对 API 和新库 NeMo Run 进行了重大更改。我们目前正在将 NeMo 1.0 中的所有功能移植到 2.0。有关先前版本或 2.0 中尚不可用的功能的文档,请参阅 NeMo 24.07 文档

NeMo TTS API#

模型类#

Mel 频谱图生成器#

class nemo.collections.tts.models.FastPitchModel(*args: Any, **kwargs: Any)#

基类: SpectrogramGenerator, Exportable, FastPitchAdapterModelMixin

FastPitch 模型 (https://arxiv.org/abs/2006.06873),用于从文本生成 mel 频谱图。

property disabled_deployment_input_names#

实现此方法以返回一组禁用于导出的输入名称

generate_spectrogram(
tokens: torch.tensor,
speaker: int | None = None,
pace: float = 1.0,
reference_spec: torch.tensor | None = None,
reference_spec_lens: torch.tensor | None = None,
) torch.tensor#

接受一批文本或 text_tokens 并返回一批频谱图

参数:

tokens – 表示要生成的文本的 torch 张量

返回:

频谱图

input_example(max_batch=1, max_dim=44)#

生成用于跟踪等的输入示例。 :returns: 输入示例的元组。

property input_types#

定义这些以启用输入神经类型检查

interpolate_speaker(
original_speaker_1,
original_speaker_2,
weight_speaker_1,
weight_speaker_2,
new_speaker_id,
)#

此方法在模型训练的两个原始说话人之间执行说话人插值。

输入

original_speaker_1:模型中第一个现有说话人的整数说话人 ID original_speaker_2:模型中第二个现有说话人的整数说话人 ID weight_speaker_1:权重组合期间与第一个说话人关联的浮点权重 weight_speaker_2:权重组合期间与第二个说话人关联的浮点权重 new_speaker_id:模型中新的插值说话人的整数说话人 ID

classmethod list_available_models() List[PretrainedModelInfo]#

此方法返回一个预训练模型列表,该列表可以直接从 NVIDIA 的 NGC 云实例化。 :returns: 可用的预训练模型列表。

property output_types#

定义这些以启用输出神经类型检查

parse(str_input: str, normalize=True) torch.tensor#

一个辅助函数,它接受原始 python 字符串并将它们转换为张量。张量应具有 2 个维度。第一个是批次,其大小应为 1。第二个应表示时间。张量应表示标记化或嵌入的文本,具体取决于模型。

请注意,某些模型在此函数中具有 normalize 参数,如果可用,该参数将应用规范化器。

class nemo.collections.tts.models.MixerTTSModel(*args: Any, **kwargs: Any)#

基类: SpectrogramGenerator, Exportable

Mixer-TTS 和 Mixer-TTS-X 模型 (https://arxiv.org/abs/2110.03584),用于从文本生成 mel 频谱图。

generate_spectrogram(
tokens: torch.Tensor | None = None,
tokens_len: torch.Tensor | None = None,
lm_tokens: torch.Tensor | None = None,
raw_texts: List[str] | None = None,
norm_text_for_lm_model: bool = True,
lm_model: str = 'albert',
)#

接受一批文本或 text_tokens 并返回一批频谱图

参数:

tokens – 表示要生成的文本的 torch 张量

返回:

频谱图

property input_types#

定义这些以启用输入神经类型检查

classmethod list_available_models() List[PretrainedModelInfo]#

此方法返回一个预训练模型列表,该列表可以直接从 NVIDIA 的 NGC 云实例化。 :returns: 可用的预训练模型列表。

property output_types#

定义这些以启用输出神经类型检查

parse(text: str, normalize=True) torch.Tensor#

一个辅助函数,它接受原始 python 字符串并将它们转换为张量。张量应具有 2 个维度。第一个是批次,其大小应为 1。第二个应表示时间。张量应表示标记化或嵌入的文本,具体取决于模型。

请注意,某些模型在此函数中具有 normalize 参数,如果可用,该参数将应用规范化器。

class nemo.collections.tts.models.RadTTSModel(*args: Any, **kwargs: Any)#

基类: SpectrogramGenerator, Exportable

generate_spectrogram()#
parse()#
class nemo.collections.tts.models.Tacotron2Model(*args: Any, **kwargs: Any)#

基类: SpectrogramGenerator

Tacotron 2 模型,用于从文本生成 mel 频谱图

generate_spectrogram(*, tokens)#

接受一批文本或 text_tokens 并返回一批频谱图

参数:

tokens – 表示要生成的文本的 torch 张量

返回:

频谱图

property input_types#

定义这些以启用输入神经类型检查

classmethod list_available_models() List[PretrainedModelInfo]#

此方法返回一个预训练模型列表,该列表可以直接从 NVIDIA 的 NGC 云实例化。 :returns: 可用的预训练模型列表。

property output_types#

定义这些以启用输出神经类型检查

parse(text: str, normalize=True) torch.Tensor#

一个辅助函数,它接受原始 python 字符串并将它们转换为张量。张量应具有 2 个维度。第一个是批次,其大小应为 1。第二个应表示时间。张量应表示标记化或嵌入的文本,具体取决于模型。

请注意,某些模型在此函数中具有 normalize 参数,如果可用,该参数将应用规范化器。

class nemo.collections.tts.models.SpectrogramEnhancerModel(*args: Any, **kwargs: Any)#

基类: ModelPT, Exportable

基于 GAN 的模型,用于为来自 TTS 模型(如 Tacotron 或 FastPitch)的模糊频谱图添加细节。基于 StyleGAN 2 [1] [1] Karras 等人。 - 分析和改进 StyleGAN 的图像质量 (https://arxiv.org/abs/1912.04958)

forward(
*,
input_spectrograms: torch.Tensor,
lengths: torch.Tensor,
mixing: bool = False,
normalize: bool = True,
)#

生成器前向传递。将生成噪声输入。

input_spectrograms:批量频谱图,通常是合成的 lengths:批次中每个频谱图的长度 mixing:样式混合,训练期间通常为 True normalize:将频谱图范围标准化为〜[0, 1],正常使用时为 True

returns:批量增强频谱图

有关样式混合的说明,请参阅 [1] [1] Karras 等人。 - 用于生成对抗网络的基于样式的生成器架构,2018 (https://arxiv.org/abs/1812.04948)

forward_with_custom_noise(
input_spectrograms: torch.Tensor,
lengths: torch.Tensor,
zs: List[torch.Tensor] | None = None,
ws: List[torch.Tensor] | None = None,
noise: torch.Tensor | None = None,
mixing: bool = False,
normalize: bool = True,
)#

生成器前向传递。如果为 None,将生成噪声输入。

input_spectrograms:批量频谱图,通常是合成的 lenghts:批次中每个频谱图的长度 zs:单位球上的潜在噪声输入(此项或 ws 或两者都不是) ws:样式空间中的潜在噪声输入(此项或 zs 或两者都不是) noise:逐像素独立高斯噪声 mixing:样式混合,训练期间通常为 True normalize:将频谱图范围标准化为〜[0, 1],正常使用时为 True

returns:批量增强频谱图

有关样式混合的说明,请参阅 [1] 有关 z、w [2] 的定义 [1] Karras 等人。 - 用于生成对抗网络的基于样式的生成器架构,2018 (https://arxiv.org/abs/1812.04948) [2] Karras 等人。 - 分析和改进 StyleGAN 的图像质量,2019 (https://arxiv.org/abs/1912.04958)

classmethod list_available_models()#

应列出通过 NVIDIA NGC 云提供的所有预训练模型。注意:不检查模型名称和别名是否唯一。如果发生冲突,则将实例化此返回列表中首先列出的任何模型(或别名)。

返回:

PretrainedModelInfo 条目的列表

语音到文本对齐器模型#

class nemo.collections.tts.models.AlignerModel(*args: Any, **kwargs: Any)#

基类: NeedsNormalizer, ModelPT

语音到文本对齐模型 (https://arxiv.org/pdf/2108.10447.pdf),用于学习 mel 频谱图和文本之间的对齐。

classmethod list_available_models() List[PretrainedModelInfo]#

此方法返回一个预训练模型列表,该列表可以直接从 NVIDIA 的 NGC 云实例化。 :returns: 可用的预训练模型列表。

两阶段模型#

class nemo.collections.tts.models.TwoStagesModel(*args: Any, **kwargs: Any)#

基类: Vocoder

用于将梅尔频谱图转换为线性频谱图,然后再转换为音频的两阶段模型

convert_spectrogram_to_audio(
spec: torch.Tensor,
**kwargs,
) torch.Tensor#

接受一批频谱图并返回一批音频。

参数:

spec – [‘B’, ‘n_freqs’, ‘T’],一个表示要进行声码器处理的频谱图的 torch 张量。

返回:

audio

cuda(*args, **kwargs)#
PTL 正在覆盖此方法并更改模块的 pytorch 行为。

如果设备为 None,PTL LightingModule 覆盖将把模块移动到设备 0。请参阅此处的 PTL 方法: Lightning-AI/lightning

这里我们覆盖此方法是为了保持默认的 Pytorch nn.module 行为: pytorch/pytorch

将所有模型参数和缓冲区移动到 GPU。

这也使得关联的参数和缓冲区成为不同的对象。因此,如果模块在被优化时将驻留在 GPU 上,则应在构造优化器之前调用它。

注意

此方法就地修改模块。

参数:

device (int, optional) – 如果指定,所有参数将被复制到该设备

返回:

self

返回类型:

Module

property input_types#

定义这些以启用输入神经类型检查

classmethod list_available_models() List[PretrainedModelInfo]#

此方法返回一个预训练模型列表,该列表可以直接从 NVIDIA 的 NGC 云实例化。 :returns: 可用的预训练模型列表。

property output_types#

定义这些以启用输出神经类型检查

声码器#

class nemo.collections.tts.models.GriffinLimModel(*args: Any, **kwargs: Any)#

基类: Vocoder

convert_spectrogram_to_audio(spec, Ts=None)#

接受一批频谱图并返回一批音频。

参数:

spec – [‘B’, ‘n_freqs’, ‘T’],一个表示要进行声码器处理的频谱图的 torch 张量。

返回:

audio

cuda(*args, **kwargs)#
PTL 正在覆盖此方法并更改模块的 pytorch 行为。

如果设备为 None,PTL LightingModule 覆盖将把模块移动到设备 0。请参阅此处的 PTL 方法: Lightning-AI/lightning

这里我们覆盖此方法是为了保持默认的 Pytorch nn.module 行为: pytorch/pytorch

将所有模型参数和缓冲区移动到 GPU。

这也使得关联的参数和缓冲区成为不同的对象。因此,如果模块在被优化时将驻留在 GPU 上,则应在构造优化器之前调用它。

注意

此方法就地修改模块。

参数:

device (int, optional) – 如果指定,所有参数将被复制到该设备

返回:

self

返回类型:

Module

class nemo.collections.tts.models.HifiGanModel(*args: Any, **kwargs: Any)#

基类: Vocoder, Exportable

HiFi-GAN 模型 (https://arxiv.org/abs/2010.05646),用于从梅尔频谱图生成音频。

convert_spectrogram_to_audio(
spec: torch.tensor,
) torch.tensor#

接受一批频谱图并返回一批音频。

参数:

spec – [‘B’, ‘n_freqs’, ‘T’],一个表示要进行声码器处理的频谱图的 torch 张量。

返回:

audio

forward(*, spec)#

运行生成器,有关输入和输出,请参阅 input_types 和 output_types

forward_for_export(spec)#

运行生成器,有关输入和输出,请参阅 input_types 和 output_types

input_example(max_batch=1, max_dim=256)#

生成用于跟踪等的输入示例。 :returns: 输入示例的元组。

property input_types#

定义这些以启用输入神经类型检查

classmethod list_available_models() Dict[str, str] | None#

此方法返回一个预训练模型列表,该列表可以直接从 NVIDIA 的 NGC 云实例化。 :returns: 可用的预训练模型列表。

property output_types#

定义这些以启用输出神经类型检查

class nemo.collections.tts.models.UnivNetModel(*args: Any, **kwargs: Any)#

基类: Vocoder, Exportable

UnivNet 模型 (https://arxiv.org/abs/2106.07889),用于从梅尔频谱图生成音频。

convert_spectrogram_to_audio(
spec: torch.tensor,
) torch.tensor#

接受一批频谱图并返回一批音频。

参数:

spec – [‘B’, ‘n_freqs’, ‘T’],一个表示要进行声码器处理的频谱图的 torch 张量。

返回:

audio

forward(*, spec)#

运行生成器,有关输入和输出,请参阅 input_types 和 output_types

forward_for_export(spec)#

运行生成器,有关输入和输出,请参阅 input_types 和 output_types

input_example(max_batch=1, max_dim=256)#

生成用于跟踪等的输入示例。 :returns: 输入示例的元组。

property input_types#

定义这些以启用输入神经类型检查

classmethod list_available_models() Dict[str, str] | None#

此方法返回一个预训练模型列表,该列表可以直接从 NVIDIA 的 NGC 云实例化。 :returns: 可用的预训练模型列表。

property output_types#

定义这些以启用输出神经类型检查

class nemo.collections.tts.models.WaveGlowModel(*args: Any, **kwargs: Any)#

基类: GlowVocoder, Exportable

WaveGlow 模型 (https://arxiv.org/abs/1811.00002),用于从梅尔频谱图生成音频。

convert_spectrogram_to_audio(
spec: torch.Tensor,
sigma: float = 1.0,
denoise: bool = True,
denoiser_strength: float = 0.01,
) torch.Tensor#

接受一批频谱图并返回一批音频。

参数:

spec – [‘B’, ‘n_freqs’, ‘T’],一个表示要进行声码器处理的频谱图的 torch 张量。

返回:

audio

property input_types#

定义这些以启用输入神经类型检查

classmethod list_available_models() List[PretrainedModelInfo]#

此方法返回一个预训练模型列表,该列表可以直接从 NVIDIA 的 NGC 云实例化。 :returns: 可用的预训练模型列表。

property output_types#

定义这些以启用输出神经类型检查

编解码器#

class nemo.collections.tts.models.AudioCodecModel(*args: Any, **kwargs: Any)#

基类: ModelPT

decode()#
decode_audio()#
dequantize()#
encode()#
encode_audio()#
forward()#
list_available_models()#
pad_audio()#
quantize()#
should_update_disc()#

基类#

以下类是 TTS 管道的基础。要了解有关它们的更多信息,请参阅介绍页面的 基类 部分。

class nemo.collections.tts.models.base.MelToSpec(*args: Any, **kwargs: Any)#

基类: ModelPT, ABC

用于将梅尔频谱图转换为线性(幅度)频谱图的模型的基类

abstract convert_mel_spectrogram_to_linear(
mel: torch.tensor,
**kwargs,
) torch.tensor#

接受一批频谱图并返回一批线性频谱图

参数:

mel – 表示梅尔频谱图的 torch 张量 [‘B’, ‘mel_freqs’, ‘T’]

返回:

表示线性频谱图的 torch 张量 [‘B’, ‘n_freqs’, ‘T’]

返回类型:

spec

classmethod list_available_models() List[PretrainedModelInfo]#

此方法返回一个预训练模型列表,该列表可以直接从 NVIDIA 的 NGC 云实例化。 :returns: 可用的预训练模型列表。

class nemo.collections.tts.models.base.SpectrogramGenerator(*args: Any, **kwargs: Any)#

基类: NeedsNormalizer, ModelPT, ABC

所有将文本转换为频谱图的 TTS 模型的基类

abstract generate_spectrogram(
tokens: torch.tensor,
**kwargs,
) torch.tensor#

接受一批文本或 text_tokens 并返回一批频谱图

参数:

tokens – 表示要生成的文本的 torch 张量

返回:

频谱图

classmethod list_available_models() List[PretrainedModelInfo]#

此方法返回一个预训练模型列表,该列表可以直接从 NVIDIA 的 NGC 云实例化。 :returns: 可用的预训练模型列表。

abstract parse(str_input: str, **kwargs) torch.tensor#

一个辅助函数,它接受原始 python 字符串并将它们转换为张量。张量应具有 2 个维度。第一个是批次,其大小应为 1。第二个应表示时间。张量应表示标记化或嵌入的文本,具体取决于模型。

请注意,某些模型在此函数中具有 normalize 参数,如果可用,该参数将应用规范化器。

class nemo.collections.tts.models.base.Vocoder(*args: Any, **kwargs: Any)#

基类: ModelPT, ABC

用于将频谱图转换为音频的模型的基类。请注意,此类将线性或梅尔频谱图作为输入。

abstract convert_spectrogram_to_audio(
spec: torch.tensor,
**kwargs,
) torch.tensor#

接受一批频谱图并返回一批音频。

参数:

spec – [‘B’, ‘n_freqs’, ‘T’],一个表示要进行声码器处理的频谱图的 torch 张量。

返回:

audio

classmethod list_available_models() List[PretrainedModelInfo]#

此方法返回一个预训练模型列表,该列表可以直接从 NVIDIA 的 NGC 云实例化。 :returns: 可用的预训练模型列表。

数据集处理类#

class nemo.collections.tts.data.dataset.MixerTTSXDataset(*args: Any, **kwargs: Any)#

基类: TTSDataset

class nemo.collections.tts.data.dataset.TTSDataset(*args: Any, **kwargs: Any)#

基类: Dataset

class nemo.collections.tts.data.dataset.VocoderDataset(*args: Any, **kwargs: Any)#

基类: Dataset