You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity集成Vosk项目报错:找不到libvosk DLL求助

解决Unity中Vosk的DllNotFoundException问题

DllNotFoundException: libvosk assembly: type: member:(null)
Vosk.Vosk.SetLogLevel (System.Int32 level) (at :0)
VoskSpeechToText+d__30.MoveNext () (at <51d31056a8e1447b80dc54febfe062d4>:0)
UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) (at :0)

以下是针对该问题的具体解决步骤:

  • 匹配平台与CPU架构:Vosk的libvosk DLL分不同平台和架构版本(如Windows x86_64、Mac Intel/Apple Silicon、Android ARM64等),确保你使用的DLL和当前Unity的目标平台、CPU架构完全一致。同时将DLL放在对应平台的Plugins子目录下(如Plugins/Windows、Plugins/MacOS),Unity会自动加载对应平台的文件。

  • 配置DLL导入设置:在Unity编辑器中选中libvosk.dll,在Inspector面板中:

    • 勾选对应目标平台(如Standalone Windows、MacOS);
    • 选择正确的CPU架构(如Windows选x86_64,MacOS根据芯片选Intel或Apple Silicon);
    • 确保Include in Build选项处于勾选状态,避免打包时遗漏DLL。
  • 检查依赖库完整性:

    • Windows平台:libvosk依赖Visual C++ Redistributable Runtime,若系统未安装,需下载对应版本的VC Redist安装包并安装;也可将依赖的vcruntime140.dll等文件和libvosk.dll放在同一目录。
    • Mac平台:用终端执行otool -L libvosk.dylib查看依赖库,确保所有依赖项都存在于系统或项目Plugins目录中。
  • 验证DLL版本与完整性:重新从Vosk官方渠道下载对应版本的libvosk DLL,确保与项目中Vosk的C#绑定版本一致(比如C#包是0.3.45,DLL也要对应同版本),替换项目中可能损坏或版本不匹配的文件。

  • 调整脚本调用时机:错误触发于Vosk.SetLogLevel调用,可能是DLL未完成加载就执行了API调用。将Vosk初始化代码移至Start()方法中(而非Awake()),或用try-catch包裹初始化逻辑,避免提前调用导致加载失败。

  • 清理Unity缓存:删除项目根目录下的Library文件夹,重新打开项目让Unity重新导入所有资源,解决缓存导致的DLL加载异常问题。

内容的提问来源于stack exchange,提问作者NeTBoy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 18:53:27