语音识别踩坑记录

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

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

相关推荐
Blossom.1187 小时前
人工智能在智能教育中的创新应用与未来趋势
java·人工智能·深度学习·目标检测·机器学习·计算机视觉·语音识别
漫游者Nova1 天前
麦克风和电脑内播放声音实时识别转文字软件FunASR整合包V5下载
语音识别·语音转文字·音频转录·实时语音识别·录音转文字
Blossom.1183 天前
人工智能在智能健康监测中的创新应用与未来趋势
java·人工智能·深度学习·机器学习·语音识别
kooboo china.5 天前
Tailwind CSS 实战,基于 Kooboo 构建 AI 对话框页面(四):语音识别输入功能
前端·css·人工智能·ui·html·交互·语音识别
木亦汐丫7 天前
【ASR】基于分块非自回归模型的流式端到端语音识别
语音识别·asr·端到端·流式·nar非自回归·分块注意力·mask-ctc
放羊郎7 天前
从零实现本地语音识别(FunASR)
人工智能·语音识别·asr·funasr·语音转文字
雾迟sec8 天前
机器学习中的 K-均值聚类算法及其优缺点
人工智能·深度学习·机器学习·语言模型·语音识别
limingade11 天前
手机打电话时由对方DTMF响应切换多级IVR语音菜单(话术脚本与实战)
android·智能手机·语音识别·蓝牙电话·多级ivr导航·手机个人400电话·手机电话实现ivr语音导航
Panesle11 天前
开源轻量级语音合成和语音克隆模型:OuteTTS-1.0-0.6B
人工智能·语言模型·自然语言处理·开源·大模型·语音识别
Panesle11 天前
ten-vad:低延迟、轻量化且高性能的流式语音活动检测系统
人工智能·语言模型·ffmpeg·开源·音视频·语音识别