快捷方式

WaveRNN

class torchaudio.models.WaveRNN(upsample_scales: List[int], n_classes: int, hop_length: int, n_res_block: int = 10, n_rnn: int = 512, n_fc: int = 512, kernel_size: int = 5, n_freq: int = 128, n_hidden: int = 128, n_output: int = 128)[source]

WaveRNN 模型,来自《高效神经音频合成》(Efficient Neural Audio Synthesis)一文 [Kalchbrenner 等人,2018],基于 fatchord/WaveRNN 的实现。

原始实现首次在《高效神经音频合成》(Efficient Neural Audio Synthesis)一文中提出 [Kalchbrenner 等人,2018]。波形和谱图的输入通道数必须为 1。`upsample_scales` 的乘积必须等于 `hop_length`。

另请参阅

参数:
  • upsample_scales – 上采样尺度的列表。

  • n_classes – 输出类别的数量。

  • hop_length – 连续帧起始点之间的样本数。

  • n_res_block – 堆叠中的 ResBlock 数量。(默认值:10

  • n_rnn – RNN 层的维度。(默认值:512

  • n_fc – 全连接层的维度。(默认值:512

  • kernel_size – 第一个 Conv1d 层中的核大小。(默认值:5

  • n_freq – 谱图中的 bin 数量。(默认值:128

  • n_hidden – resblock 的隐藏维度数量。(默认值:128

  • n_output – melresnet 的输出维度数量。(默认值:128

示例
>>> wavernn = WaveRNN(upsample_scales=[5,5,8], n_classes=512, hop_length=200)
>>> waveform, sample_rate = torchaudio.load(file)
>>> # waveform shape: (n_batch, n_channel, (n_time - kernel_size + 1) * hop_length)
>>> specgram = MelSpectrogram(sample_rate)(waveform)  # shape: (n_batch, n_channel, n_freq, n_time)
>>> output = wavernn(waveform, specgram)
>>> # output shape: (n_batch, n_channel, (n_time - kernel_size + 1) * hop_length, n_classes)
使用 WaveRNN 的教程
Text-to-Speech with Tacotron2

使用 Tacotron2 进行文本转语音 (TTS)

使用 Tacotron2 进行文本转语音 (TTS)

方法

forward

WaveRNN.forward(waveform: Tensor, specgram: Tensor) Tensor[source]

将输入通过 WaveRNN 模型。

参数:
  • waveform – WaveRNN 层的输入波形(n_batch, 1, (n_time - kernel_size + 1) * hop_length)

  • specgram – WaveRNN 层的输入谱图(n_batch, 1, n_freq, n_time)

返回值:

形状为 (n_batch, 1, (n_time - kernel_size + 1) * hop_length, n_classes) 的张量

返回类型:

Tensor

infer

WaveRNN.infer(specgram: Tensor, lengths: Optional[Tensor] = None) Tuple[Tensor, Optional[Tensor]][source]

WaveRNN 的推理方法。

此函数目前仅支持多项式采样,这假定网络是在交叉熵损失上训练的。

参数:
  • specgram (Tensor) – 批处理的谱图。形状:(n_batch, n_freq, n_time)

  • lengths (TensorNone, optional) – 指示批处理中每个音频的有效长度。形状:(batch, )。当 specgram 包含不同时长的谱图时,通过提供 lengths 参数,模型将计算相应的有效输出长度。如果为 None,则假定 waveforms 中的所有音频都具有有效长度。默认值:None

返回值:

Tensor

推理出的波形,大小为 (n_batch, 1, n_time)。1 表示单通道。

Tensor 或 None

如果提供了 lengths 参数,则返回形状为 (batch, ) 的 Tensor。它指示了输出 Tensor 在时间轴上的有效长度。

返回类型:

(Tensor, Optional[Tensor])

文档

获取 PyTorch 全面的开发者文档

查看文档

教程

获取针对初学者和高级开发者的深度教程

查看教程

资源

查找开发资源并获得解答

查看资源