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

配置微软语音引擎时SpeechConfig.FromSubscription抛core.so异常如何解决

异常触发原因
  • 运行环境缺失对应架构的原生依赖库:libMicrosoft.CognitiveServices.Speech.core.so是微软语音SDK面向Linux环境的原生库,在Linux、WSL、Linux容器等环境运行时,若未安装对应CPU架构(x86/x64/ARM)的SDK原生组件,会触发加载失败。
  • NuGet包部署不完整:项目安装的Microsoft.CognitiveServices.Speech NuGet包未将对应原生库复制到程序输出目录,多目标框架编译、自定义输出路径场景下大概率会出现该问题。
  • 系统依赖库缺失:微软语音SDK在Linux环境运行依赖openssl、音频驱动、gstreamer等底层系统组件,这些组件缺失也会导致so库加载失败。
  • 权限不足:运行程序的账号对so库所在路径没有读取、执行权限,导致系统无法加载库文件。
解决方法
  • 核对NuGet包安装状态:确认项目已安装兼容目标运行环境的Microsoft.CognitiveServices.Speech包,跨架构部署时需选择对应CPU架构的包版本。
  • 安装系统依赖组件:Debian/Ubuntu系环境执行以下命令安装依赖:
sudo apt-get update && sudo apt-get install libssl-dev libasound2 libgstreamer1.0-0 libgstreamer-plugins-base1.0-0

其他发行版安装对应同名组件即可。

  • 强制复制原生库到输出目录:在项目.csproj文件的PropertyGroup节点中添加配置,强制SDK复制原生依赖:
<SpeachSDKCopyNativeLibraries>true</SpeachSDKCopyNativeLibraries>

编译后检查输出目录,确认存在libMicrosoft.CognitiveServices.Speech.core.so文件,缺失的话可手动从NuGet包对应架构目录中复制该文件到输出目录。

  • 确认架构匹配:ARM设备(树莓派、边缘设备等)部署时,编译需指定对应ARM架构,不要使用AnyCPU编译选项。
  • 调整文件权限:给so文件添加执行权限:
chmod +x 你的程序输出目录/libMicrosoft.CognitiveServices.Speech.core.so

另外你当前代码中异常捕获块为空,建议补充异常日志输出,方便定位更具体的错误:

catch (Exception ex)
{
    // 输出或记录ex.ToString()即可拿到完整报错栈
    Console.WriteLine(ex.ToString());
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 23:06:02