语音识别踩坑记录

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

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

cs 复制代码
// 初始化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. 验证模型完整性
    • 重新下载模型(推荐使用 Vosk 中文模型 0.22)
    • 确认解压后目录结构完整(应有 am, conf, graph 等子目录)
    • 代码中绝对路径访问:
    复制代码
      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 模型。

相关推荐
hey you~11 小时前
医疗器械门店语音机器人,产品咨询来电,怎么限制回答医疗诊断类内容?
人工智能·机器人·语音识别·意图识别·语音机器人·转人工·nlu安全
smartpi_ai11 小时前
高端智能沙发如何接入大模型语音:JL-17T 离在线语音模块方案实录
人工智能·单片机·语音识别
2401_885885041 天前
巴林语音通知接口如何对接?系统告警语音API接入教程
android·前端·网络·python·语音识别
shxjnpl1 天前
从 WenetSpeech-Yue 到 SenseVoice:如何通过专项微调提升粤语语音识别效果?
人工智能·语音识别·实时音视频
镭封2 天前
从视频文案提取到 AI 配音,短视频制作需要哪些工具?
人工智能·智能手机·音视频·语音识别·媒体
2601_955662462 天前
搞笑视频配音怎么做?如何选择有辨识度的声音
大数据·人工智能·音视频·语音识别·媒体
镭封2 天前
自媒体内容生产怎么提速?文案整理、配音与剪辑流程
人工智能·小程序·音视频·语音识别·媒体
AI_AGENT_DEV_AI3 天前
AI英语在线考试系统的开发
人工智能·语音识别
Joy T3 天前
voice-dump-to-todo:把混乱的语音整理成可执行待办,一个实用的 Agent Skill
ide·macos·语音识别·xcode·任务管理·自研skill
糖糖单片机设计3 天前
基于 STM32 与中移 OneNet 的智慧电梯监控平台系统
stm32·单片机·嵌入式硬件·51单片机·语音识别