class_docstr: Papaer::
      https://arxiv.org/abs/2210.15418#
  
  Paper Abstract::
      Voice conversion (VC) can be achieved by first extracting source content information and target speaker
      information, and then reconstructing waveform with these information. However, current approaches normally
      either extract dirty content information with speaker information leaked in, or demand a large amount of
      annotated data for training. Besides, the quality of reconstructed waveform can be degraded by the
      mismatch between conversion model and vocoder. In this paper, we adopt the end-to-end framework of VITS for
      high-quality waveform reconstruction, and propose strategies for clean content information extraction without
      text annotation. We disentangle content information by imposing an information bottleneck to WavLM features,
      and propose the spectrogram-resize based data augmentation to improve the purity of extracted content
      information. Experimental results show that the proposed method outperforms the latest VC models trained with
      annotated data and has greater robustness.
  
  Original Code::
      https://github.com/OlaWod/FreeVC
  
  Examples:
      >>> from TTS.vc.configs.freevc_config import FreeVCConfig
      >>> from TTS.vc.models.freevc import FreeVC
      >>> config = FreeVCConfig()
      >>> model = FreeVC(config)
class_docstr_tok: ["Papaer",":",":","https",":","\/\/arxiv.org\/abs\/2210.15418","#","Paper","Abstract",":",":","Voice","conversion","(","VC",")","can","be","achieved","by","first","extracting","source","content","information","and","target","speaker","information",",","and","then","reconstructing","waveform","with","these","information",".","However",",","current","approaches","normally","either","extract","dirty","content","information","with","speaker","information","leaked","in",",","or","demand","a","large","amount","of","annotated","data","for","training",".","Besides",",","the","quality","of","reconstructed","waveform","can","be","degraded","by","the","mismatch","between","conversion","model","and","vocoder",".","In","this","paper",",","we","adopt","the","end-to-end","framework","of","VITS","for","high-quality","waveform","reconstruction",",","and","propose","strategies","for","clean","content","information","extraction","without","text","annotation",".","We","disentangle","content","information","by","imposing","an","information","bottleneck","to","WavLM","features",",","and","propose","the","spectrogram-resize","based","data","augmentation","to","improve","the","purity","of","extracted","content","information",".","Experimental","results","show","that","the","proposed","method","outperforms","the","latest","VC","models","trained","with","annotated","data","and","has","greater","robustness",".","Original","Code",":",":","https",":","\/\/github.com\/OlaWod\/FreeVC","Examples",":",">",">",">","from","TTS.vc.configs.freevc_config","import","FreeVCConfig",">",">",">","from","TTS.vc.models.freevc","import","FreeVC",">",">",">","config","=","FreeVCConfig","(",")",">",">",">","model","=","FreeVC","(","config",")"]
docstr: Read and format the input audio.
docstr_tok: ["Read","and","format","the","input","audio","."]
code: def load_audio(self, wav):
      """Read and format the input audio."""
      if isinstance(wav, str):
          wav, _ = librosa.load(
              wav, sr=self.config.audio.input_sample_rate
          )
      if isinstance(wav, np.ndarray):
          wav = torch.from_numpy(wav).to(self.device)
      if isinstance(wav, torch.Tensor):
          wav = wav.to(self.device)
      if isinstance(wav, list):
          wav = torch.from_numpy(np.array(wav)).to(self.device)
      return wav.float()
  
imports: from typing import Dict, List, Optional, Tuple, Union
  import librosa
  import numpy
  import torch
  from coqpit import Coqpit
  from torch import nn
  from torch.nn import Conv1d, Conv2d, ConvTranspose1d
  from torch.nn import functional
  from torch.nn.utils import spectral_norm
  from torch.nn.utils.parametrizations import weight_norm
  from torch.nn.utils.parametrize import remove_parametrizations
  import TTS.vc.modules.freevc.commons
  import TTS.vc.modules.freevc.modules
  from TTS.tts.utils.speakers import SpeakerManager
  from TTS.utils.io import load_fsspec
  from TTS.vc.configs.freevc_config import FreeVCConfig
  from TTS.vc.models.base_vc import BaseVC
  from TTS.vc.modules.freevc.commons import get_padding, init_weights
  from TTS.vc.modules.freevc.mel_processing import mel_spectrogram_torch
  from TTS.vc.modules.freevc.speaker_encoder.speaker_encoder import SpeakerEncoder
  from TTS.vc.modules.freevc.wavlm import get_wavlm
label_desc: Use image node_id 8 for calling the FreeVC obj's underlying member method code with example usage: obj.load_audio(wav) and returns: wav