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

在使用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 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境
  • ¥30 关于#java#的问题,请各位专家解答!
  • ¥30 vue+element根据数据循环生成多个table,如何实现最后一列 平均分合并
  • ¥20 pcf8563时钟芯片不启振
  • ¥20 pip2.40更新pip2.43时报错
  • ¥15 换yum源但仍然用不了httpd
  • ¥50 C# 使用DEVMOD设置打印机首选项