欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > IT业 > 语音识别踩坑记录

语音识别踩坑记录

2025/3/15 22:26:30 来源:https://blog.csdn.net/cainiaojunshi/article/details/146189433  浏览:    关键词:语音识别踩坑记录

本来想在原来的语音识别的基础上增加本地扩展本地词典,

采用的语音识别是Vosk识别器,模型是 vosk-model-small-cn-0.22 

// 初始化Vosk识别器
if (recognizer == null)
{using (Model model = new Model(modelPath)){string grammar = @"{""root"": [""你好"", ""退出"", ""电视剧"", ""我有一个朋友"", {""早上好"" : 0.5}]}";recognizer = new VoskRecognizer(model, 16000.0f, grammar);//recognizer = new VoskRecognizer(model, 16000.0f);}
}

注释掉的是原来能用的创建对象,但是增加了词典后直接报内存错误。

经过搜索

解决 System.AccessViolationException 内存错误的逐步指南


🔍 原因分析

此错误通常由 非托管内存操作越界 引起,常见于 Vosk 等依赖本地库的调用场景。可能触发条件:

  1. 1.模型文件损坏 或路径错误
  2. 2.音频数据格式 不匹配(采样率/位深度)
  3. 3.对象生命周期管理 不当导致提前释放资源
  4. 4.跨线程访问 非托管代码未同步

✅ 解决方案步骤

  1. 1.

    验证模型完整性

    • 重新下载模型(推荐使用 Vosk 中文模型 0.22)
    • 确认解压后目录结构完整(应有 amconfgraph 等子目录)
    • 代码中绝对路径访问:
    • string modelPath = @"D:\models\vosk-model-cn-0.22"; // 避免中文和空格
      Model model = new Model(modelPath);

结论:

 本来想弄小模型 vosk-model-small-cn-0.22   40m的语音识别,但这个小模型的功能局限性强,不能增加本地词典。

还是得下载1.5G的vosk-model-cn-0.22 模型。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词