快捷鍵

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 et al., 2018],基於 fatchord/WaveRNN 的實作。

原始實作於 Efficient Neural Audio Synthesis [Kalchbrenner et al., 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 的文字轉語音

使用 Tacotron2 的文字轉語音

方法

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)

返回:

shape (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) – 批次的 spectrograms。形狀: (n_batch, n_freq, n_time)

  • lengths (TensorNone, optional) – 指示批次中每個音訊的有效長度。形狀: (batch, )。當 specgram 包含具有不同持續時間的 spectrograms 時,透過提供 lengths 參數,模型將計算對應的有效輸出長度。如果 None,則假定 waveforms 中的所有音訊都具有有效長度。預設值: None

返回:

Tensor

推論出的 waveform 大小為 (n_batch, 1, n_time)。 1 代表單一聲道。

Tensor 或 None

如果提供了 lengths 參數,則會傳回形狀為 (batch, ) 的 Tensor。 它表示輸出 Tensor 在時間軸上的有效長度。

返回類型:

(Tensor, Optional[Tensor])

文件

存取 PyTorch 的全面開發人員文件

檢視文件

教學

取得適合初學者和進階開發人員的深入教學課程

檢視教學課程

資源

尋找開發資源並獲得問題解答

檢視資源