|
## Usage |
|
```python |
|
from fairseq.checkpoint_utils import load_model_ensemble_and_task_from_hf_hub |
|
from fairseq.models.text_to_speech.hub_interface import S2THubInterface |
|
from fairseq.models.text_to_speech.hub_interface import TTSHubInterface |
|
import IPython.display as ipd |
|
import torchaudio |
|
|
|
|
|
models, cfg, task = load_model_ensemble_and_task_from_hf_hub( |
|
"facebook/xm_transformer_600m-es_en-multi_domain", |
|
arg_overrides={"config_yaml": "config.yaml"}, |
|
) |
|
model = models[0] |
|
generator = task.build_generator(model, cfg) |
|
|
|
|
|
# requires 16000Hz mono channel audio |
|
audio, _ = torchaudio.load("/path/to/an/audio/file") |
|
|
|
sample = S2THubInterface.get_model_input(task, audio) |
|
text = S2THubInterface.get_prediction(task, model, generator, sample) |
|
|
|
# speech synthesis |
|
tts_models, tts_cfg, tts_task = load_model_ensemble_and_task_from_hf_hub( |
|
f"facebook/fastspeech2-en-ljspeech", |
|
arg_overrides={"vocoder": "griffin_lim", "fp16": False}, |
|
) |
|
tts_model = tts_models[0] |
|
TTSHubInterface.update_cfg_with_data_cfg(tts_cfg, tts_task.data_cfg) |
|
tts_generator = tts_task.build_generator([tts_model], tts_cfg) |
|
|
|
tts_sample = TTSHubInterface.get_model_input(tts_task, text) |
|
wav, sr = TTSHubInterface.get_prediction( |
|
tts_task, tts_model, tts_generator, tts_sample |
|
) |
|
|
|
ipd.Audio(wav, rate=rate) |
|
|