当前位置: 首页 > news >正文

语音识别踩坑记录

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

采用的语音识别是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 模型。

相关文章:

  • 云平台一键部署【SGLang】适用于大型语言模型和视觉语言模型的快速服务框架
  • 小程序酒店:如何实现智能预订与在线支付?
  • windows下docker的安装
  • Git创建仓库和基本命令
  • yum、apt、apt-get的区别与使用
  • apollo3录音到wav播放解决方法
  • Pixelmator Pro for Mac 专业图像处理软件【媲美PS的修图】
  • perl、python、tcl语法中读写Excel的模块
  • 【Qt】带参数的信号和槽函数
  • HTML嵌入CSS样式超详解(尊享)
  • 《2025年软件测试工程师面试》MySQL面试题
  • 【性能工具】Perfetto中如何分析主线程为何进入sleep状态
  • Week4_250310~250316_OI日志(待完善)
  • PySide(PyQT),QGraphicsRectItem的setPos()和setRect()的坐标位置的区别
  • Dynamics 365 新版的Power apps开发界面中如何找到开发者资源
  • WM_CREATE
  • nndl: chap1_warmup_numpy_tutorial
  • Java高频面试之集合-09
  • 【Python】dash-fastapi前后端搭建
  • QT多线程
  • 阚吉林任重庆市民政局党组书记,原任市委组织部主持日常工作的副部长
  • 泰特现代美术馆25年:那些瞬间,让艺术面向所有人
  • 巴基斯坦称对印度发起军事行动
  • 经济日报刊文:品牌经营不能让情怀唱“独角戏”
  • 中消协点名新能源汽车行业:定金退款争议频发
  • 巴基斯坦信德省卡拉奇发生爆炸