HiFiGANVocoderBundle¶
- class torchaudio.prototype.pipelines.HiFiGANVocoderBundle[source]¶
資料類別,捆綁相關資訊以使用預訓練的
HiFiGANVocoder
。此類別提供介面,用於實例化預訓練模型,以及檢索預訓練權重和與模型一起使用的額外資料所需的資訊。
Torchaudio 函式庫實例化此類別的物件,每個物件代表一個不同的預訓練模型。用戶端程式碼應透過這些實例存取預訓練模型。
此捆綁包可以將梅爾頻譜圖轉換為波形,反之亦然。典型的用例是 文字 -> 梅爾頻譜圖 -> 波形 這樣的流程,其中可以使用外部組件(例如 Tacotron2)從文字生成梅爾頻譜圖。請參閱以下程式碼範例。
- 範例:將合成梅爾頻譜圖轉換為音訊。
>>> import torch >>> import torchaudio >>> # Since HiFiGAN bundle is in prototypes, it needs to be exported explicitly >>> from torchaudio.prototype.pipelines import HIFIGAN_VOCODER_V3_LJSPEECH as bundle >>> >>> # Load the HiFiGAN bundle >>> vocoder = bundle.get_vocoder() Downloading: "https://download.pytorch.org/torchaudio/models/hifigan_vocoder_v3_ljspeech.pth" 100%|████████████| 5.59M/5.59M [00:00<00:00, 18.7MB/s] >>> >>> # Generate synthetic mel spectrogram >>> specgram = torch.sin(0.5 * torch.arange(start=0, end=100)).expand(bundle._vocoder_params["in_channels"], 100) >>> >>> # Transform mel spectrogram into audio >>> waveform = vocoder(specgram) >>> torchaudio.save('sample.wav', waveform, bundle.sample_rate)
- 範例:與 Tacotron2 一起使用,文字轉音訊。
>>> import torch >>> import torchaudio >>> # Since HiFiGAN bundle is in prototypes, it needs to be exported explicitly >>> from torchaudio.prototype.pipelines import HIFIGAN_VOCODER_V3_LJSPEECH as bundle_hifigan >>> >>> # Load Tacotron2 bundle >>> bundle_tactron2 = torchaudio.pipelines.TACOTRON2_WAVERNN_CHAR_LJSPEECH >>> processor = bundle_tactron2.get_text_processor() >>> tacotron2 = bundle_tactron2.get_tacotron2() >>> >>> # Use Tacotron2 to convert text to mel spectrogram >>> text = "A quick brown fox jumped over a lazy dog" >>> input, lengths = processor(text) >>> specgram, lengths, _ = tacotron2.infer(input, lengths) >>> >>> # Load HiFiGAN bundle >>> vocoder = bundle_hifigan.get_vocoder() Downloading: "https://download.pytorch.org/torchaudio/models/hifigan_vocoder_v3_ljspeech.pth" 100%|████████████| 5.59M/5.59M [00:03<00:00, 1.55MB/s] >>> >>> # Use HiFiGAN to convert mel spectrogram to audio >>> waveform = vocoder(specgram).squeeze(0) >>> torchaudio.save('sample.wav', waveform, bundle_hifigan.sample_rate)
屬性¶
sample_rate¶
方法¶
get_mel_transform¶
get_vocoder¶
- HiFiGANVocoderBundle.get_vocoder(*, dl_kwargs=None) HiFiGANVocoder [source]¶
建構 HiFiGAN Generator 模型,可用作聲碼器,並載入預訓練權重。
權重檔案從網際網路下載,並使用
torch.hub.load_state_dict_from_url()
進行快取- 參數:
dl_kwargs (關鍵字引數字典) – 傳遞至
torch.hub.load_state_dict_from_url()
。- 傳回值:
HiFiGANVocoder
的變體。