锅小果 2024-04-23 18:10 采纳率: 60%
浏览 45

在使用pyinstaller函数包打包modelscope实现“你好米雅”语音唤醒的过程中,报错

问题:在使用pyinstaller函数包打包modelscope实现“你好米雅”语音唤醒的过程中,报错如下
显示:modelscope - WARNING - ('PIPELINES', 'keyword-spotting', 'speech_dfsmn_kws_char_farfield') not found in ast index file
KeyError: 'speech_dfsmn_kws_char_farfield is not in the pipelines registry group keyword-spotting. Please make sure the correct version of ModelScope library is used.'

img

环境介绍:我所安装的modelscope版本是1.1.3的,在使用官方命令pip install "modelscope[audio]" -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html确实也有报错,不过我在验证内置唤醒模型时是成功的,能打印出5次唤醒信息

img

后续还想更换唤醒词,再次训练(虽然数据集还没准备好了,肯定会有很多报错信息),但是这个官方给的“你好米雅”唤醒模型打包都报错。

希望能有人帮帮我

  • 写回答

5条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-04-23 18:11
    关注

    引自免费微信小程序:皆我百晓生

    根据您提供的错误信息,看起来您在尝试使用PyInstaller打包一个包含ModelScope库的应用程序,并且遇到了一些问题。首先,我们需要确保您使用的ModelScope版本与您正在尝试加载的模型匹配。您当前的ModelScope版本是1.1.3,而错误消息提到的speech_dfsmn_kws_char_farfield模型可能存在于较新版本中。

    解决这个问题有以下几个步骤:

    1. 确保正确安装了ModelScope及其依赖项。
    2. 检查您的应用代码是否正确引用了模型。
    3. 使用PyInstaller打包应用程序。

    下面我将逐步指导您进行操作:

    步骤1:更新ModelScope

    尝试更新到最新版本的ModelScope,这可能会解决模型找不到的问题。在命令行中运行:

    pip uninstall modelscope
    pip install --upgrade modelscope
    

    步骤2:检查应用代码

    确认您的应用代码中是否有正确的模型路径和加载方式。例如,如果您从ModelScope加载模型,可能需要类似这样的代码:

    from modelscope.pipeline import Pipeline
    
    pipeline = Pipeline(kind='keyword-spotting', name='speech_dfsmn_kws_char_farfield')
    

    如果不确定如何正确加载模型,可以参考ModelScope的官方文档或示例代码。

    步骤3:使用PyInstaller打包

    在更新ModelScope并确认代码无误后,您可以使用PyInstaller打包应用。首先,确保您已经安装了PyInstaller,如果没有,可以使用以下命令安装:

    pip install pyinstaller
    

    然后,进入您的项目目录,创建一个新的名为spec的文件(例如:myapp.spec)。在这个文件中,指定主入口点和所需的隐式依赖项。例如:

    # myapp.spec
    block_cipher = None
    
    a = Analysis(['your_main_file.py'],
                 pathex=['path_to_your_project'],
                 binaries=[],
                 datas=[],
                 hiddenimports=['modelscope'],
                 hookspath=[],
                 runtime_hooks=[],
                 excludes=[],
                 win_no_prefer_redirects=False,
                 win_private_assemblies=False,
                 cipher=block_cipher,
                 noarchive=False)
    pyz = PYZ(a.pure, a.zipped_data,
                 cipher=block_cipher)
    exe = EXE(pyz,
              a.scripts,
              a.binaries,
              a.zipfiles,
              a.datas,
              [],
              name='myapp',
              debug=False,
              bootloader_ignore_signals=False,
              strip=False,
              upx=True,
              upx_exclude=[],
              runtime_tmpdir=None,
              console=True )
    

    请替换your_main_file.py为您的主Python脚本名称,以及path_to_your_project为您的项目的绝对路径。

    接下来,运行PyInstaller编译打包命令:

    pyinstaller myapp.spec
    

    执行上述命令后,会在dist目录下生成可执行文件。如果还有问题,请提供详细的错误输出,以便进一步排查。

    关于更换唤醒词并重新训练模型,一旦您解决了打包问题,您可以按照ModelScope的官方教程来完成模型的训练和替换。通常,这包括准备新的数据集、调整模型配置、进行训练,然后在代码中使用新的模型。由于数据集准备和训练过程比较复杂,具体步骤会超出此问题的范围,建议您查阅ModelScope的官方文档或相关教程。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 4月23日

悬赏问题

  • ¥15 java幂等控制问题
  • ¥15 海湾GST-DJ-N500
  • ¥15 氧化掩蔽层与注入条件关系
  • ¥15 Django DRF 如何反序列化得到Python对象类型数据
  • ¥15 多数据源与Hystrix的冲突
  • ¥15 如何在线硕士了解,广告太多,希望有真实接触过的人回答下?(标签-学习|关键词-在线硕士)
  • ¥15 zabbix6.4与frp如何进行联动
  • ¥15 如何使用Echarts制作途中时间序列表
  • ¥15 图论相关的数学问题,共10个
  • ¥15 EtherCAT的问题,创建一个XML文件