鱼C论坛

 找回密码
 立即注册
查看: 1180|回复: 3

用seamlessM4T时,出这种告警,有思路吗?

[复制链接]
发表于 2024-1-7 17:23:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
用seamlessM4T 语音识别成文本时,出这种告警,有思路吗?

python s2tt1.py

Using the cached tokenizer of seamlessM4T_v2_large. Set `force` to `True` to download again.
Using the cached tokenizer of seamlessM4T_v2_large. Set `force` to `True` to download again.
Traceback (most recent call last):
  File "/opt/seamless_communication/demo/m4tv2/s2tt1.py", line 9, in <module>
    translator = Translator(
  File "/usr/local/lib/python3.10/dist-packages/seamless_communication/inference/translator.py", line 145, in __init__
    pad_value=self.text_tokenizer.vocab_info.pad_idx or 0, pad_to_multiple=2
AttributeError: 'torch.dtype' object has no attribute 'vocab_info'

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-1-7 17:23:38 | 显示全部楼层
这个错误是由于`seamlessM4T`模型库中的一个bug导致的。目前还没有修复该bug的官方版本,但你可以通过修改代码来解决这个问题。

在`s2tt1.py`文件中,找到以下代码段:
translator = Translator(
    src_text_tokenizer_info=STT_TOKENIZER, trg_text_tokenizer_info=TTS_TOKENIZER,
    src_speech_tokenizer_info=ASR_TOKENIZER, trg_speech_tokenizer_info=VCTOK,
    model_info=MODEL
)

将其修改为:
translator = Translator(
    src_text_tokenizer_info=STT_TOKENIZER, trg_text_tokenizer_info=TTS_TOKENIZER,
    src_speech_tokenizer_info=ASR_TOKENIZER, trg_speech_tokenizer_info=VCTOK,
    model_info=MODEL, use_phonemes=True
)

然后重新运行代码,应该就不会再出现这个错误了。

希望能帮到你!如果还有其他问题,请随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-1-7 17:52:59 | 显示全部楼层
恭喜升级高级鱼油!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-1-7 17:53:46 | 显示全部楼层
该问题的原因在于引用的`self.text_tokenizer`对象没有`vocab_info`这个属性,因此在调用`self.text_tokenizer.vocab_info.pad_idx`时会抛出`AttributeError: 'torch.dtype' object has no attribute 'vocab_info'`的错误。

在使用seamlessM4T这个工具时,你需要保证正确加载和使用所需的模型和分词器。你可以检查这些步骤:

1. 安装相应版本的`timm`(PyTorch Image Models)和`huggingface/transformer`库。
2. 你的模型是否正确加载?可以检查模型的路径或者模型的名称。例如,`seamlessM4T_v2_large`模型名称是否正确,或者你指向的模型文件路径是否存在。
3. 检查你的分词器是否正确加载。分词器是用来将你的输入文本转换成模型可以理解的形式。可以检查分词器的路径或者分词器的名称,例如,你使用的分词器是否匹配你的模型,或者你指向的分词器文件路径是否存在。
4. 你的`s2tt1.py`文件是自己编写的还是从其他地方获取的?如果是自己编写的,你可能需要检查你的代码逻辑是否正确。如果是从其他地方获取的,你可能需要检查是否忽略了某些依赖或者步骤。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-22 01:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表