NeMo加载FastPitch模型遇TypeError:__init__获意外参数'phonemes'
解决German_multispeaker_FastPitch_nemo模型初始化时的
phonemes参数错误 检查NeMo版本兼容性
这个问题大概率是版本不匹配导致的。Hugging Face上的German_multispeaker_FastPitch_nemo模型可能基于特定版本的NeMo训练,而你当前安装的nemo_toolkit['all']如果是最新版,其中GermanCharsTokenizer的初始化参数可能已变更。建议查找模型页面标注的NeMo兼容版本,指定版本安装:pip install nemo_toolkit['all']==<指定版本号>修改Tokenizer初始化参数
若不想更换NeMo版本,可手动移除脚本中GermanCharsTokenizer初始化时的phonemes参数。比如原代码:tokenizer = GermanCharsTokenizer(phonemes=some_value, ...)修改为:
tokenizer = GermanCharsTokenizer(...)如果通过
from_pretrained加载模型,可尝试覆盖配置跳过该参数:from nemo.collections.tts.models import FastPitchModel model = FastPitchModel.from_pretrained("your-model-path", override_config={"tokenizer": {"phonemes": None}})校验Pynini与NeMo版本的匹配性
不同NeMo版本对Pynini的依赖版本要求不同,即便你安装了pynini==2.1.5,也可能和当前NeMo版本不兼容。查看对应NeMo版本的官方依赖说明,重新安装匹配的Pynini版本:pip uninstall pynini -y pip install pynini==<匹配版本号>对齐模型自带的配置文件
下载Hugging Face上模型的config.yaml文件,检查其中Tokenizer的参数定义,确保脚本传入的参数和配置文件一致。若配置文件中无phonemes参数,直接删除脚本里的该参数即可。
内容的提问来源于stack exchange,提问作者Felix Burkhardt
相关产品推荐
相关产品推荐

