0

当我尝试来自 Hugging face 的示例代码时,我得到以下错误。代码可以从https://huggingface.co/facebook/tts_transformer-en-ljspeech找到

代码:

from fairseq.checkpoint_utils import load_model_ensemble_and_task_from_hf_hub
from fairseq.models.text_to_speech.hub_interface import TTSHubInterface
import IPython.display as ipd


models, cfg, task = load_model_ensemble_and_task_from_hf_hub(
    "facebook/fastspeech2-en-ljspeech",
    arg_overrides={"vocoder": "hifigan", "fp16": False}
)
model = models[0]
TTSHubInterface.update_cfg_with_data_cfg(cfg, task.data_cfg)
generator = task.build_generator(model, cfg)

text = "Hello, this is a test run."

sample = TTSHubInterface.get_model_input(task, text)
wav, rate = TTSHubInterface.get_prediction(task, model, generator, sample)

ipd.Audio(wav, rate=rate)

错误:

TypeError                                 Traceback (most recent call last)
Input In [1], in <module>
     10 model = models[0]
     11 TTSHubInterface.update_cfg_with_data_cfg(cfg, task.data_cfg)
---> 12 generator = task.build_generator(model, cfg)
     14 text = "Hello, this is a test run."
     16 sample = TTSHubInterface.get_model_input(task, text)

File ~/office/virtual_environments/eye_for_bliend/Images/fairseq/fairseq/tasks/text_to_speech.py:151, in TextToSpeechTask.build_generator(self, models, cfg, vocoder, **unused)
    149 if vocoder is None:
    150     vocoder = self.build_default_vocoder()
--> 151 model = models[0]
    152 if getattr(model, "NON_AUTOREGRESSIVE", False):
    153     return NonAutoregressiveSpeechGenerator(model, vocoder, self.data_cfg)

TypeError: 'TTSTransformerModel' object is not subscriptable
4

1 回答 1

0

对我有用的是把模型放在一个你在第 12 行构建生成器的列表中。

generator = task.build_generator([model], cfg)
于 2022-02-09T08:56:13.477 回答