0
cd /root && bash run.sh
启动成功后,在浏览器中访问:
http://localhost:7860
或从远程访问:
http://<服务器IP>:7860
显示应用标题、描述和版权信息:
显示当前模型加载状态:
支持的音频格式:
推荐采样率:16kHz
auto - 自动检测(推荐)zh - 中文en - 英文yue - 粤语ja - 日语ko - 韩语点击 "开始识别" 按钮,等待处理完成
识别结果会显示在下方区域,包含三个标签页:
文本结果
详细信息
时间戳
[序号] 开始时间 - 结束时间 (时长)点击 "开始识别" 按钮处理录音
同"上传音频文件识别"的步骤 5
识别完成后,可以下载不同格式的结果:
| 按钮 | 文件格式 | 说明 |
|---|---|---|
| 下载文本 | .txt | 纯文本,可直接使用 |
| 下载 JSON | .json | 完整数据,包含时间戳 |
| 下载 SRT | .srt | 字幕文件,可用于视频 |
所有输出文件保存在:
outputs/outputs_YYYYMMDDHHMMSS/
每次识别会创建一个带时间戳的新目录,例如:
outputs/outputs_20260104123456/
├── audio_001.wav # 原始音频副本
├── result_001.json # JSON 格式结果
├── text_001.txt # 纯文本结果
└── subtitle_001.srt # SRT 字幕文件
选择正确的语言可以提高识别准确率:
zhenauto启用后,结果中会显示每个词/句的时间信息:
你好,欢迎使用语音识别系统。这是一个基于 FunASR 的中文语音识别 WebUI。
1
00:00:00,000 --> 00:00:02,500
你好
2
00:00:02,500 --> 00:00:05,000
欢迎使用语音识别系统
时间戳信息:
[001] 0.000s - 0.500s (时长: 0.500s)
[002] 0.500s - 2.500s (时长: 2.000s)
[003] 2.500s - 5.000s (时长: 2.500s)
解决方法:
可能原因:
解决方法:
检查:
检查:
解决方法:
建议:
在终端中按 Ctrl + C 停止服务
或执行:
pkill -f "python.*app.main"
| 操作 | 快捷键 |
|---|---|
| 停止服务 | Ctrl + C |
| 刷新页面 | F5 / Ctrl + R |
| 复制文本 | Ctrl + C |
基于 FunASR 框架的中文语音识别 WebUI 系统,提供简洁易用的浏览器界面。
模型文件位于 /root/speech_ngram_lm_zh-cn/models/ 目录,包含:
iic/SenseVoiceSmall/ - 主 ASR 模型(893MB)/root/speech_ngram_lm_zh-cn/
├── app/ # 应用核心代码
│ ├── main.py # WebUI 入口
│ ├── config.py # 配置管理
│ ├── models/ # 模型加载器
│ ├── pipeline/ # ASR 处理管道
│ ├── ui/ # UI 组件
│ └── utils/ # 工具函数
├── models/ # 模型存储目录(可迁移)
├── outputs/ # 输出文件目录
├── logs/ # 日志目录
└── start_app.sh # 启动脚本
默认端口:7860
可通过环境变量修改:
export WEBUI_PORT=8080
自动检测 CUDA,优先使用 GPU。可通过环境变量强制使用 CPU:
export WEBUI_DEVICE=cpu
默认使用 SenseVoice Small 模型。可通过环境变量更换:
export WEBUI_ASR_MODEL=iic/SenseVoiceSmall
cd /root/speech_ngram_lm_zh-cn
bash start_app.sh
cd /root/speech_ngram_lm_zh-cn
conda activate py312
python -m app.main
docker run -d \
--name funasr-webui \
--gpus all \
-p 7860:7860 \
-v $(pwd)/models:/root/speech_ngram_lm_zh-cn/models \
-v $(pwd)/outputs:/root/speech_ngram_lm_zh-cn/outputs \
your-image-name:latest
启动成功后,在浏览器中访问:
http://localhost:7860
或
http://<服务器IP>:7860
conda activate py312
python --version # 应显示 Python 3.12.x
import torch
print(f"CUDA 可用: {torch.cuda.is_available()}")
if torch.cuda.is_available():
print(f"GPU 设备: {torch.cuda.get_device_name(0)}")
from funasr import AutoModel
print("FunASR 安装成功!")
cd /root/speech_ngram_lm_zh-cn
python -c "
from app.models.loader import ModelLoader
from app.config import Config
loader = ModelLoader()
config = Config()
model = loader.load_asr_only(config)
print('模型加载成功!')
"
Q1:启动时提示 "模型加载失败"? A1: 检查 models 目录是否存在且包含模型文件。首次启动会自动从 ModelScope 下载模型(约893MB)。
Q2:GPU 内存不足怎么办? A2: 可以设置环境变量强制使用 CPU:
export WEBUI_DEVICE=cpu
bash start_app.sh
Q3:如何更改模型语言识别设置? A3: 在 WebUI 界面的 "识别语言" 下拉框中选择:auto(自动)、zh(中文)、en(英文)、yue(粤语)、ja(日语)、ko(韩语)
Q4:输出文件保存在哪里?
A4: 输出文件保存在 outputs/outputs_YYYYMMDDHHMMSS/ 目录下,每次识别会创建带时间戳的新目录。
Q5:如何批量处理音频文件?
A5: 目前 WebUI 不支持批量处理。可以编写脚本循环调用 app.pipeline.asr_processor.ASRProcessor 或等待后续版本更新。
Q6:识别结果包含特殊标签怎么办?
A6: 已在代码中实现自动清理功能。如果仍有问题,请检查 app/pipeline/result_formatter.py 中的 _clean_sensevoice_tags() 方法。
Q7:端口 7860 被占用怎么办? A7: 启动脚本会自动检测并终止占用端口的进程。如需自定义端口,设置环境变量:
export WEBUI_PORT=8080
bash start_app.sh
Q8:如何迁移到其他服务器?
A8: 直接复制整个项目目录即可。模型存储在 models/ 目录下,无需重新下载。
认证作者

支持自启动