科哥开发的FunASR语音识别WebUI使用全解析|支持多模型与实时录音
1. 引言
1.1 语音识别技术背景
随着人工智能技术的发展,语音识别(Automatic Speech Recognition, ASR)已成为人机交互的重要入口。从智能助手到会议记录、视频字幕生成,ASR 技术正在广泛应用于各类场景中。然而,尽管底层模型日益成熟,普通用户和开发者仍面临部署复杂、界面不友好、功能分散等问题。
在此背景下,由科哥基于 FunASR 框架二次开发的FunASR 语音识别 WebUI应运而生。该工具不仅集成了高性能中文语音识别能力,还提供了直观易用的图形化界面,支持多模型切换、实时录音、标点恢复、时间戳输出等实用功能,极大降低了语音识别技术的使用门槛。
1.2 项目核心价值
本 WebUI 的主要优势在于:
- 开箱即用:无需编写代码,通过浏览器即可完成语音识别全流程。
- 双模型支持:内置 Paraformer-Large 高精度模型与 SenseVoice-Small 快速响应模型,满足不同场景需求。
- 本地化运行:所有数据处理均在本地完成,保障隐私安全。
- 多格式导出:支持文本、JSON、SRT 字幕等多种结果输出格式,便于后续编辑与集成。
- 永久开源承诺:项目由开发者“科哥”维护并承诺永久免费使用。
本文将全面解析该 WebUI 的功能特性、使用流程及高级配置方法,帮助用户快速上手并高效应用。
2. 系统架构与核心技术
2.1 整体架构设计
FunASR 语音识别 WebUI 基于以下技术栈构建:
- 前端框架:Gradio(Python)
- 后端引擎:FunASR(阿里巴巴通义实验室开源 ASR 框架)
- 模型基础:
speech_ngram_lm_zh-cn及其衍生模型 - 部署方式:本地 Python 环境或 Docker 容器化运行
系统采用前后端一体化设计,用户通过浏览器访问 Gradio 提供的 Web 页面,上传音频或进行实时录音,请求被转发至本地运行的 FunASR 推理服务,最终返回识别结果并展示。
2.2 核心模型介绍
Paraformer-Large 模型
- 模型名称:
damo/speech_paraformer-large-vad-punc_asr_nat-zh-cn-16k-common-vocab8404-pytorch - 特点:
- 非自回归结构,推理速度快
- 内置 VAD(语音活动检测)、PUNC(标点恢复)、时间戳对齐功能
- 在多个中文公开数据集上达到 SOTA 表现
- 适用场景:高准确率要求的长音频转写任务(如会议录音、讲座整理)
SenseVoice-Small 模型
- 轻量化设计,适合资源受限环境
- 响应速度快,适用于实时语音识别
- 默认启用,兼顾性能与效率平衡
两种模型可根据实际需要自由切换,实现“精度 vs 速度”的灵活权衡。
2.3 功能模块整合
WebUI 将 FunASR 的多项能力进行了有机整合:
| 功能模块 | 技术支撑 |
|---|---|
| 语音识别(ASR) | Paraformer / SenseVoice 模型 |
| 语音活动检测(VAD) | FSMN-VAD 模型 |
| 标点恢复(PUNC) | CT-Transformer 标点模型 |
| 语言模型增强(LM) | N-gram LM 或 FST 热词 |
| 数字规整(ITN) | FST 规则引擎 |
这些组件共同构成了一个完整的工业级语音识别流水线。
3. 使用流程详解
3.1 启动与访问
启动服务后,默认监听端口为7860,可通过以下地址访问:
http://localhost:7860若需远程访问,请替换localhost为服务器 IP 地址:
http://<服务器IP>:7860注意:确保防火墙已开放对应端口,并正确配置网络权限。
3.2 界面布局说明
头部区域
显示标题、描述及版权信息:
- 标题:FunASR 语音识别 WebUI
- 描述:基于 FunASR 的中文语音识别系统
- 版权信息:webUI二次开发 by 科哥 | 微信:312088415
左侧控制面板
包含五大功能区:
- 模型选择:切换 Paraformer-Large 或 SenseVoice-Small
- 设备选择:指定使用 CUDA(GPU)或 CPU 进行推理
- 功能开关:
- ✅ 启用标点恢复(PUNC)
- ✅ 启用语音活动检测(VAD)
- ✅ 输出时间戳
- 模型状态:显示当前模型是否加载成功
- 操作按钮:
- 加载模型:手动触发模型初始化
- 刷新:更新状态显示
主识别区域
分为两个主要输入方式:
- 上传音频文件
- 麦克风实时录音
识别结果以标签页形式展示,包括“文本结果”、“详细信息”和“时间戳”。
4. 两种识别方式的操作指南
4.1 方式一:上传音频文件识别
步骤 1:准备音频文件
支持格式如下:
- WAV (.wav)
- MP3 (.mp3)
- M4A (.m4a)
- FLAC (.flac)
- OGG (.ogg)
- PCM (.pcm)
推荐参数:
- 采样率:16kHz
- 单声道(Mono)
- 位深:16bit
提示:高质量音频有助于提升识别准确率,建议避免高压缩比编码。
步骤 2:上传文件
点击“上传音频”按钮,选择本地文件并等待上传完成。上传成功后,波形图会自动预览。
步骤 3:配置识别参数
- 批量大小(秒):默认 300 秒(5 分钟),可调范围 60–600 秒
- 识别语言:
auto:自动检测(推荐)zh:中文en:英文yue:粤语ja:日语ko:韩语
建议根据内容类型选择特定语言以提高准确性。
步骤 4:开始识别
点击“开始识别”按钮,系统将自动执行以下流程:
- 加载模型(如未加载)
- 执行 VAD 分段
- 调用 ASR 模型进行识别
- 添加标点符号(若开启)
- 生成时间戳信息(若开启)
处理进度会在页面下方实时显示。
步骤 5:查看识别结果
结果分为三个标签页:
文本结果
纯文本输出,可直接复制粘贴使用。
示例:
你好,欢迎使用语音识别系统。这是一个基于 FunASR 的中文语音识别 WebUI。详细信息
JSON 格式完整结果,包含每段语音的时间戳、置信度、词级别对齐等元数据。
{ "text": "你好欢迎使用语音识别系统", "sentences": [ { "text": "你好", "start": 0.0, "end": 0.5, "confidence": 0.98 }, { "text": "欢迎使用语音识别系统", "start": 0.5, "end": 2.5, "confidence": 0.96 } ] }时间戳
按[序号] 开始时间 - 结束时间 (时长)格式列出每个语义单元。
示例:
[001] 0.000s - 0.500s (时长: 0.500s) [002] 0.500s - 2.500s (时长: 2.000s)4.2 方式二:浏览器实时录音
步骤 1:授权麦克风权限
点击“麦克风录音”按钮,浏览器会弹出权限请求框,点击“允许”授予访问权限。
若未出现提示,请检查浏览器设置中是否阻止了麦克风访问。
步骤 2:录制语音
- 录音过程中,界面会显示动态波形
- 点击“停止录音”结束录制
录制完成后,音频将自动保存为临时 WAV 文件供识别使用。
步骤 3:开始识别
与上传文件相同,点击“开始识别”即可处理录音内容。
步骤 4:查看结果
结果展示方式与上传文件一致,支持文本、JSON 和时间戳三种视图。
5. 结果下载与文件管理
5.1 下载选项说明
识别完成后,提供三种格式的下载按钮:
| 按钮 | 文件格式 | 用途说明 |
|---|---|---|
| 下载文本 | .txt | 纯文本,适合复制粘贴 |
| 下载 JSON | .json | 包含完整元数据,便于程序解析 |
| 下载 SRT | .srt | 视频字幕标准格式,兼容主流播放器 |
5.2 输出目录结构
所有输出文件统一保存在:
outputs/outputs_YYYYMMDDHHMMSS/每次识别创建一个带时间戳的新目录,例如:
outputs/outputs_20260104123456/ ├── audio_001.wav # 原始音频副本 ├── result_001.json # JSON 格式结果 ├── text_001.txt # 纯文本结果 └── subtitle_001.srt # SRT 字幕文件建议定期清理旧文件以节省磁盘空间。
6. 高级功能配置
6.1 批量大小调整
- 定义:指单次处理的最大音频时长(单位:秒)
- 默认值:300 秒(5 分钟)
- 可调范围:60–600 秒
对于超过限制的长音频,建议分段处理或增加批量大小(需注意内存占用)。
6.2 语言识别设置
合理选择语言可显著提升识别效果:
| 场景 | 推荐设置 |
|---|---|
| 全中文内容 | zh |
| 全英文内容 | en |
| 中英混合 | auto |
| 粤语内容 | yue |
| 日语内容 | ja |
| 韩语内容 | ko |
自动检测模式适用于不确定语种的情况,但可能略慢于指定语言。
6.3 时间戳输出
启用“输出时间戳”功能后,系统将在结果中添加精确到毫秒的时间信息,适用于:
- 视频剪辑定位
- 会议纪要标注
- 教学材料同步
时间戳基于 VAD 检测边界生成,误差通常小于 ±100ms。
7. 常见问题与解决方案
7.1 识别结果不准确
可能原因:
- 音频质量差(噪音大、音量低)
- 语言设置错误
- 模型未正确加载
解决方法:
- 使用降噪工具预处理音频
- 明确选择目标语言而非依赖自动检测
- 点击“加载模型”重新初始化
7.2 识别速度慢
可能原因:
- 使用 CPU 模式而非 GPU
- 音频过长导致内存压力大
- 模型本身较重(如 Paraformer-Large)
优化建议:
- 确保设备选择为CUDA
- 分段处理长音频(每段 ≤ 5 分钟)
- 切换至SenseVoice-Small模型加速推理
7.3 无法上传音频文件
排查步骤:
- 检查文件格式是否在支持列表内(优先使用 MP3/WAV)
- 确认文件大小不超过 100MB
- 更换浏览器尝试(推荐 Chrome/Firefox)
7.4 录音无声音
常见问题:
- 浏览器未授权麦克风
- 系统麦克风静音或故障
- 输入设备选择错误
解决方法:
- 检查浏览器权限设置
- 在操作系统中测试麦克风是否正常工作
- 确保选择了正确的输入设备
7.5 识别结果乱码
原因分析:
- 编码格式异常
- 音频采样率过高或非标准
- 模型语言匹配错误
应对策略:
- 转换音频为 16kHz、16bit、单声道 WAV 格式
- 明确设定识别语言
- 重启服务清除缓存状态
7.6 如何提高识别准确率
综合建议:
- 使用清晰录音,尽量减少背景噪音
- 保持适中语速,避免吞音或连读
- 优先选用 16kHz 采样率的音频
- 启用标点恢复和 VAD 提升语义完整性
- 在专业领域可考虑微调模型或添加热词
8. 总结
8.1 核心价值回顾
FunASR 语音识别 WebUI 是一款面向中文用户的轻量级语音识别工具,具备以下核心优势:
- 零代码操作:通过图形界面完成全部识别任务
- 双模型自由切换:兼顾精度与速度需求
- 本地运行保障隐私:所有数据不出本地
- 多格式输出支持:满足文本、结构化数据、字幕等多样化需求
- 持续更新维护:由开发者“科哥”长期支持
它特别适用于教育、办公、媒体制作等领域中的语音转文字任务,是个人用户和小型团队的理想选择。
8.2 实践建议
日常使用推荐配置:
- 模型:SenseVoice-Small
- 设备:CUDA(如有 GPU)
- 功能:启用 PUNC 和 VAD
- 语言:auto 或 zh
高精度场景建议:
- 切换至 Paraformer-Large
- 使用高质量音频输入
- 手动指定语言为
zh
批量处理技巧:
- 将长音频切分为 3–5 分钟片段
- 使用脚本自动化调用 API(未来可扩展方向)
8.3 展望与扩展
虽然当前版本已具备完整功能,但仍存在进一步优化空间:
- 支持热词注入(custom hotwords)
- 增加批量导入/导出功能
- 提供 RESTful API 接口供第三方调用
- 支持更多方言识别(如四川话、东北话)
期待社区贡献者共同参与改进,推动该项目成为中文语音识别领域的标杆级开源工具。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。