FunASR语音识别WebUI使用指南|集成ngram语言模型一键启动
1. 快速开始与环境准备
1.1 镜像简介
本文介绍的FunASR 语音识别 WebUI是基于官方speech_ngram_lm_zh-cn模型进行二次开发构建的本地化语音识别系统,由开发者“科哥”完成前端界面优化与功能整合。该镜像已预集成 Paraformer-Large 和 SenseVoice-Small 等主流 ASR 模型,并内置 ngram 语言模型以提升中文识别准确率。
本系统支持:
- 多格式音频文件上传识别(WAV、MP3、M4A、FLAC、OGG、PCM)
- 浏览器端实时录音识别
- 标点恢复、VAD语音活动检测、时间戳输出
- 多语言自动识别(中/英/粤/日/韩)
- 结果导出为 TXT、JSON、SRT 字幕文件
1.2 启动服务
确保已安装 Docker 及 NVIDIA 显卡驱动(如使用 GPU 加速)后,执行以下命令拉取并运行镜像:
# 创建持久化存储目录 mkdir -p ./funasr-webui/outputs # 运行容器(推荐使用 GPU 加速) docker run -d \ --name funasr-webui \ --gpus all \ -p 7860:7860 \ -v $PWD/funasr-webui/outputs:/app/outputs \ your-image-repository/speech-funasr-webui:latest注:若无 GPU 支持,可移除
--gpus all参数,系统将自动切换至 CPU 模式运行。
1.3 访问 WebUI 界面
服务启动成功后,在浏览器中访问:
http://localhost:7860或从远程设备访问:
http://<服务器IP>:7860页面加载完成后即可进入主界面,无需额外配置。
2. WebUI 界面详解
2.1 页面布局概览
整个界面分为两个主要区域:
- 左侧控制面板:负责模型选择、参数设置和操作控制
- 右侧功能区:包含音频上传、录音、识别结果展示及下载按钮
顶部显示应用名称与版权信息:“FunASR 语音识别 WebUI | webUI二次开发 by 科哥”。
2.2 控制面板功能说明
模型选择
提供两种核心识别模型供切换:
- Paraformer-Large:大参数量模型,识别精度高,适合对准确性要求高的场景(默认未选中)
- SenseVoice-Small:轻量级模型,响应速度快,适合实时交互或资源受限环境(默认启用)
设备选择
- CUDA:启用 GPU 推理,显著提升长音频处理速度(有显卡时自动勾选)
- CPU:纯 CPU 推理模式,兼容性更好但速度较慢
功能开关
- 启用标点恢复 (PUNC):在识别文本中自动添加句号、逗号等标点符号
- 启用语音活动检测 (VAD):自动分割静音段,仅识别有效语音部分
- 输出时间戳:在结果中返回每个词或句子的时间区间,便于后期编辑
模型状态指示
实时显示当前模型是否已成功加载:
- ✓模型已加载:绿色图标,表示可立即开始识别
- ✗模型未加载:红色图标,需点击“加载模型”手动初始化
操作按钮
- 加载模型:重新加载当前选中的模型组合(适用于切换模型后)
- 刷新:更新界面状态信息,排查异常情况
3. 使用流程详解
3.1 方式一:上传音频文件识别
步骤 1:准备音频文件
支持的格式包括:
.wav(推荐,无损格式).mp3(通用压缩格式).m4a,.flac,.ogg,.pcm
建议规范:
- 采样率:16kHz
- 单声道(Mono)
- 音频清晰、背景噪音小
步骤 2:上传音频
在 “ASR 语音识别” 区域点击“上传音频”按钮,选择本地文件并等待上传完成。系统会自动解析音频长度并在界面上显示。
步骤 3:配置识别参数
| 参数项 | 可选项 | 建议值 |
|---|---|---|
| 批量大小(秒) | 60–600 | 默认 300(5分钟) |
| 识别语言 | auto, zh, en, yue, ja, ko | 中文内容选zh或auto |
提示:对于混合语种内容,建议选择
auto实现自动语言判别。
步骤 4:开始识别
点击“开始识别”按钮,系统将根据当前配置调用对应模型进行推理。处理进度可通过浏览器加载状态感知,通常耗时为音频时长的 10%~30%(GPU 加速下)。
步骤 5:查看识别结果
识别完成后,结果将以三个标签页形式呈现:
文本结果
显示最终转录的自然语言文本,支持鼠标选中复制。
详细信息
以 JSON 格式展示完整识别数据,包含:
{ "text": "你好欢迎使用语音识别", "confidence": 0.98, "time_stamp": [[0.0, 1.2], [1.2, 3.5]] }时间戳
按[序号] 开始时间 - 结束时间 (时长)格式列出每段语音的时间范围,适用于视频剪辑定位。
3.2 方式二:浏览器实时录音识别
步骤 1:授权麦克风权限
点击“麦克风录音”按钮,浏览器将弹出权限请求框,请点击“允许”授予权限。首次使用需确认站点可访问麦克风。
步骤 2:录制语音
保持麦克风开启状态,对着设备清晰说话。录音过程中会有波形动画反馈输入信号强度。
点击“停止录音”结束录制,系统自动保存临时音频用于识别。
步骤 3:启动识别与查看结果
同“上传文件”流程,点击“开始识别”获取结果。此方式适合短句测试、即时转录等轻量级应用场景。
4. 输出管理与结果导出
4.1 下载识别结果
识别完成后,可通过三个按钮下载不同格式的结果文件:
| 按钮 | 文件格式 | 应用场景 |
|---|---|---|
| 下载文本 | .txt | 直接复制粘贴使用,简洁高效 |
| 下载 JSON | .json | 开发对接、结构化分析 |
| 下载 SRT | .srt | 视频字幕制作、剪辑辅助 |
所有输出文件均按时间戳组织目录结构,路径如下:
outputs/outputs_YYYYMMDDHHMMSS/ ├── audio_001.wav # 原始音频副本 ├── result_001.json # 完整识别结果 ├── text_001.txt # 纯文本输出 └── subtitle_001.srt # SRT 字幕文件每次新识别都会创建独立子目录,避免文件覆盖。
4.2 SRT 字幕格式示例
生成的.srt文件符合标准字幕规范,可用于导入 Premiere、Final Cut Pro 或 VLC 播放器:
1 00:00:00,000 --> 00:00:02,500 你好 2 00:00:02,500 --> 00:00:05,000 欢迎使用语音识别系统5. 高级功能与优化技巧
5.1 批量大小调节策略
批量大小(batch size in seconds)影响内存占用与处理效率:
- 较小值(60–120s):降低显存压力,适合低配 GPU 或长音频分段处理
- 较大值(300–600s):提高吞吐量,适合批量处理多段短音频
建议:在 8GB 显存以下设备上,建议不超过 300 秒;超过则可能触发 OOM 错误。
5.2 语言模型增强机制
本镜像集成了speech_ngram_lm_zh-cn语言模型,能够在解码阶段结合上下文语言规律,有效纠正同音错别字问题,例如:
- “公式” vs “攻势”
- “登录” vs “灯录”
该模型通过 FST(有限状态转换器)方式融合到识别流程中,无需额外配置即可生效。
5.3 性能调优建议
| 场景 | 推荐配置 |
|---|---|
| 高精度转录 | Paraformer-Large + CUDA + PUNC 开启 |
| 实时对话识别 | SenseVoice-Small + VAD 开启 + CPU 模式 |
| 长音频处理 | 分段上传(每段 < 5min)+ 批量大小设为 300 |
| 多语种混合 | 语言设为auto+ 不强制指定语种 |
6. 常见问题与解决方案
6.1 识别结果不准确
可能原因与对策:
- 音频质量差 → 使用降噪工具预处理(如 Adobe Audition、RNNoise)
- 背景噪音大 → 启用 VAD 过滤非语音段
- 发音模糊 → 提高录音音量,保持适当语速
- 专业术语缺失 → 当前模型未支持热词定制(未来版本计划加入)
6.2 识别速度慢
排查方向:
- 是否误用了 CPU 模式?→ 检查是否正确挂载 GPU 并选择 CUDA
- 模型过大?→ 切换至 SenseVoice-Small 模型测试性能差异
- 音频过长?→ 分割为多个 3–5 分钟片段并行处理
6.3 无法上传音频
检查清单:
- 文件格式是否受支持(优先使用 WAV/MP3)
- 文件大小是否超过 100MB(浏览器限制)
- 网络连接是否稳定(上传过程断开可能导致失败)
6.4 录音无声或中断
解决方法:
- 确认浏览器已授予麦克风权限
- 检查操作系统音频设置,确保默认麦克风正常工作
- 尝试更换浏览器(推荐 Chrome 或 Edge 最新版)
6.5 输出乱码或编码错误
处理方式:
- 确保音频编码为 PCM 格式(WAV 默认支持)
- 避免使用特殊字符命名文件
- 导出文本时选择 UTF-8 编码打开
7. 服务管理与退出
7.1 停止 WebUI 服务
在终端中找到正在运行的容器 ID:
docker ps | grep funasr-webui执行停止命令:
docker stop <container_id>或直接终止进程:
pkill -f "python.*app.main"7.2 清理缓存与日志
定期清理输出目录以释放磁盘空间:
rm -rf outputs/outputs_* # 删除历史识别结果如需保留日志用于调试,可在启动时挂载日志卷:
-v $PWD/logs:/app/logs8. 快捷键与技术支持
8.1 常用快捷键
| 操作 | 快捷键 |
|---|---|
| 停止服务 | Ctrl + C |
| 刷新页面 | F5 或 Ctrl + R |
| 复制文本 | Ctrl + C |
| 粘贴音频路径 | Ctrl + V(部分浏览器支持) |
8.2 技术支持渠道
- 开发者:科哥
- 联系方式:微信
312088415 - 问题反馈要求:请提供具体操作步骤、错误截图、音频样本(如有),以便快速定位问题
9. 总结
本文全面介绍了基于speech_ngram_lm_zh-cn构建的 FunASR 语音识别 WebUI 的使用方法。该系统通过图形化界面大幅降低了本地部署语音识别服务的技术门槛,具备以下优势:
- 开箱即用:Docker 镜像封装完整依赖,一键启动
- 功能齐全:支持上传、录音、标点、时间戳、多格式导出
- 性能优异:集成 ngram 语言模型,提升中文识别准确率
- 易于扩展:代码结构清晰,便于二次开发与集成
无论是用于会议记录、教学转写、视频字幕生成,还是作为数字人语音输入模块(如 Fay 项目),该方案都能提供稳定高效的本地化语音识别能力。
未来可期待的功能升级包括:热词自定义、自训练模型接入、WebSocket 实时流式识别等。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。