news 2026/4/4 20:46:27

零基础搭建中文语音识别系统|FunASR + speech_ngram_lm_zh-cn完整教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
零基础搭建中文语音识别系统|FunASR + speech_ngram_lm_zh-cn完整教程

零基础搭建中文语音识别系统|FunASR + speech_ngram_lm_zh-cn完整教程

1. 引言

1.1 学习目标

本文将带你从零开始,完整部署一套支持中文语音识别的本地化系统。通过使用FunASR框架结合speech_ngram_lm_zh-cn语言模型,并基于科哥二次开发的 WebUI 版本,你将能够快速构建一个具备高精度、支持标点恢复、时间戳输出和多格式导出功能的语音识别服务。

完成本教程后,你将掌握:

  • 如何部署 FunASR 语音识别服务
  • 如何使用 WebUI 界面进行文件上传与实时录音识别
  • 如何配置参数提升识别准确率
  • 如何导出文本、JSON 和 SRT 字幕文件

1.2 前置知识

本教程面向初学者设计,无需深入理解语音识别底层原理。但建议具备以下基础:

  • 基本 Linux 命令行操作能力
  • Docker 使用经验(非必须)
  • 浏览器基本操作技能

1.3 教程价值

相比官方命令行版本,本镜像集成了图形化界面(WebUI),极大降低了使用门槛。尤其适合以下场景:

  • 视频字幕生成
  • 会议录音转写
  • 教学内容整理
  • 无障碍辅助工具开发

2. 环境准备

2.1 系统要求

组件最低要求推荐配置
CPU双核四核及以上
内存8GB16GB 或更高
显卡NVIDIA GPU(支持 CUDA)
存储空间10GB20GB 以上(用于缓存模型)
操作系统Ubuntu 20.04+ / CentOS 7+ / Windows WSL2Linux 发行版优先

注意:若使用 GPU 加速,需提前安装好 NVIDIA 驱动及nvidia-docker支持。

2.2 安装 Docker(如未安装)

# 更新包索引 sudo apt update # 安装依赖包 sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release # 添加 Docker 官方 GPG 密钥 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg # 添加仓库源 echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # 安装 Docker Engine sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io # 启动并设置开机自启 sudo systemctl start docker sudo systemctl enable docker # 将当前用户加入 docker 组(避免每次使用 sudo) sudo usermod -aG docker $USER

执行完上述命令后,请退出终端重新登录以使组权限生效。


3. 部署 FunASR WebUI 服务

3.1 拉取镜像

根据提供的镜像信息,执行以下命令拉取已封装好的 FunASR WebUI 镜像:

docker pull registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-cpu-0.3.0

若后续支持 GPU 版本,可替换为funasr-runtime-sdk-gpu-0.3.0镜像。

3.2 创建挂载目录

为了持久化保存模型和输出结果,创建本地目录用于映射容器路径:

mkdir -p ~/funasr/models

该目录将用于存储从 ModelScope 下载的模型文件。

3.3 启动容器

运行以下命令启动容器并进入交互模式:

docker run -it --rm \ -p 7860:7860 \ -v ~/funasr/models:/workspace/models \ --name funasr-webui \ registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-cpu-0.3.0

端口说明7860是 WebUI 默认监听端口,确保主机未被占用。

3.4 启动服务脚本

容器启动后,自动进入 shell 环境。执行如下命令启动服务:

cd /workspace/FunASR/runtime nohup bash run_server.sh \ --download-model-dir /workspace/models \ --vad-dir damo/speech_fsmn_vad_zh-cn-16k-common-onnx \ --model-dir damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-onnx \ --punc-dir damo/punc_ct-transformer_cn-en-common-vocab471067-large-onnx \ --lm-dir damo/speech_ngram_lm_zh-cn-ai-wesp-fst \ --itn-dir thuduj12/fst_itn_zh \ --hotword /workspace/models/hotwords.txt > log.out 2>&1 &

服务首次启动会自动下载所需模型至/workspace/models目录,过程可能需要几分钟,请耐心等待。


4. 访问 WebUI 界面

4.1 打开浏览器访问地址

服务启动成功后,在浏览器中输入:

http://localhost:7860

如果你在远程服务器上部署,则访问:

http://<你的服务器IP>:7860

页面加载完成后,你会看到标题为“FunASR 语音识别 WebUI”的界面。

4.2 界面功能概览

左侧控制面板
  • 模型选择:可切换 Paraformer-Large(高精度)或 SenseVoice-Small(速度快)
  • 设备选择:CUDA(GPU加速)或 CPU 模式
  • 功能开关
    • ✅ 启用标点恢复(PUNC)
    • ✅ 启用语音活动检测(VAD)
    • ✅ 输出时间戳
  • 操作按钮:加载模型、刷新状态
主识别区域
  • 支持两种输入方式:
    1. 上传音频文件
    2. 浏览器实时录音

5. 使用流程详解

5.1 方式一:上传音频文件识别

步骤 1:准备音频文件

支持格式包括:

  • WAV (.wav)
  • MP3 (.mp3)
  • M4A (.m4a)
  • FLAC (.flac)
  • OGG (.ogg)
  • PCM (.pcm)

推荐采样率为16kHz,单声道,以获得最佳识别效果。

步骤 2:上传文件

点击 “ASR 语音识别” 区域中的“上传音频”按钮,选择本地文件上传。

步骤 3:配置识别参数
  • 批量大小(秒):默认 300 秒(5 分钟),最大支持 600 秒
  • 识别语言
    • auto:自动检测(推荐)
    • zh:强制中文识别
    • en:英文
    • yue:粤语
    • ja:日语
    • ko:韩语
步骤 4:开始识别

点击“开始识别”按钮,系统将自动处理音频并返回结果。

步骤 5:查看结果

识别结果分为三个标签页展示:

标签页内容说明
文本结果纯文本输出,可直接复制使用
详细信息JSON 格式,包含置信度、时间戳等元数据
时间戳每个词/句的时间范围,便于定位

5.2 方式二:浏览器实时录音识别

步骤 1:开启麦克风权限

点击“麦克风录音”按钮,浏览器会弹出权限请求,点击“允许”

确保系统麦克风正常工作,且未被其他程序占用。

步骤 2:录制语音

对着麦克风清晰说话,点击“停止录音”结束录制。

步骤 3:开始识别

与上传文件相同,点击“开始识别”即可处理录音内容。

步骤 4:查看结果

结果展示方式与上传文件一致,支持文本、JSON 和时间戳查看。


6. 结果导出与保存

6.1 下载按钮说明

识别完成后,可通过以下按钮下载不同格式的结果:

按钮文件格式用途
下载文本.txt纯文本,适用于文档编辑
下载 JSON.json开发对接、数据分析
下载 SRT.srt视频字幕制作

6.2 文件保存路径

所有输出文件均保存在容器内的:

outputs/outputs_YYYYMMDDHHMMSS/

例如:

outputs/outputs_20260104123456/ ├── audio_001.wav ├── result_001.json ├── text_001.txt └── subtitle_001.srt

由于容器内路径已映射到宿主机~/funasr/models,因此可在宿主机对应目录下找到这些文件。


7. 高级功能配置

7.1 批量大小调整

  • 作用:控制每次处理的音频长度
  • 建议值
    • 短音频(<5分钟):保持默认 300 秒
    • 长音频(>30分钟):分段处理更稳定
  • 注意事项:过大的批量可能导致内存溢出,尤其是在 CPU 模式下

7.2 语言识别设置

合理选择语言可显著提升识别准确率:

场景推荐设置
普通话演讲zh
英文讲座en
中英混合对话auto
粤语访谈yue
日语课程ja

若识别错误频繁,尝试手动指定语言而非使用auto

7.3 时间戳输出

启用时间戳功能后,可用于:

  • 视频剪辑时精准定位语句位置
  • 自动生成字幕文件(SRT)
  • 多轨音频对齐分析

8. 常见问题与解决方案

8.1 Q1:识别结果不准确怎么办?

原因分析

  • 音频质量差(噪音大、音量低)
  • 语言设置错误
  • 模型未完全加载

解决方法

  1. 使用降噪工具预处理音频(如 Audacity)
  2. 明确选择对应语言(如zh
  3. 检查模型是否加载成功(左侧显示 ✓)

8.2 Q2:识别速度慢如何优化?

可能原因

  • 使用了 CPU 模式
  • 音频过长未分段
  • 模型较大(Paraformer-Large)

优化建议

  1. 切换至CUDA 模式(如有 GPU)
  2. 使用SenseVoice-Small模型加快响应
  3. 将长音频切割为 5 分钟以内片段分别处理

8.3 Q3:无法上传音频文件?

排查步骤

  1. 确认文件格式是否在支持列表中(优先使用 MP3/WAV)
  2. 检查文件大小是否超过 100MB
  3. 更换浏览器测试(推荐 Chrome/Firefox)

8.4 Q4:录音没有声音?

检查项

  1. 浏览器是否授予麦克风权限
  2. 系统音频设置中麦克风是否启用
  3. 麦克风硬件是否正常(可用系统录音工具测试)

8.5 Q5:识别结果出现乱码?

解决方法

  1. 确保选择正确的语言(如中文选zh
  2. 检查音频编码是否损坏
  3. 尝试重新转换为标准 WAV 格式再上传

8.6 Q6:如何提高识别准确率?

实用建议

  1. 使用16kHz 采样率的清晰录音
  2. 减少背景噪音(关闭风扇、空调等)
  3. 发音清晰、语速适中
  4. hotwords.txt中添加专业术语作为热词增强

示例热词文件内容:

人工智能 20 深度学习 20 Transformer 20

权重越高,模型越倾向于识别该词汇。


9. 总结

9.1 核心收获

通过本教程,我们完成了以下关键任务:

  • 成功部署了基于 FunASR 的中文语音识别系统
  • 掌握了 WebUI 的两种识别方式(上传文件 + 实时录音)
  • 学会了如何导出多种格式结果(TXT、JSON、SRT)
  • 了解了常见问题的排查与优化策略

这套系统不仅适用于个人项目,也可扩展为团队协作工具,广泛应用于教育、媒体、科研等领域。

9.2 下一步学习建议

如果你想进一步深入,可以考虑:

  • 学习如何微调 Paraformer 模型以适应特定领域(如医疗、法律)
  • 将服务接入企业内部系统(如 CRM、会议平台)
  • 构建自动化流水线:录音 → 转写 → 存档一体化处理

9.3 资源推荐

  • FunASR GitHub 仓库:https://github.com/alibaba-damo-academy/FunASR
  • ModelScope 模型社区:https://modelscope.cn
  • Paraformer 模型详情页:https://modelscope.cn/models/damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-onnx

获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/28 9:43:47

无需高端硬件!MiDaS低成本部署方案

无需高端硬件&#xff01;MiDaS低成本部署方案 1. 技术背景与问题提出 在计算机视觉领域&#xff0c;从单张二维图像中恢复三维空间结构一直是极具挑战性的任务。传统方法依赖多视角几何或激光雷达等昂贵传感器&#xff0c;难以在消费级设备上普及。随着深度学习的发展&#…

作者头像 李华
网站建设 2026/4/1 14:14:11

DLSS指示器全攻略:5个步骤让你立即看到游戏性能提升

DLSS指示器全攻略&#xff1a;5个步骤让你立即看到游戏性能提升 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 还在纠结你的DLSS到底有没有生效吗&#xff1f;&#x1f914; 今天我要分享一个超级实用的技巧&#xff…

作者头像 李华
网站建设 2026/4/3 3:46:18

BetterJoy控制器PC使用完整指南:5分钟快速上手

BetterJoy控制器PC使用完整指南&#xff1a;5分钟快速上手 【免费下载链接】BetterJoy Allows the Nintendo Switch Pro Controller, Joycons and SNES controller to be used with CEMU, Citra, Dolphin, Yuzu and as generic XInput 项目地址: https://gitcode.com/gh_mirr…

作者头像 李华
网站建设 2026/4/1 18:43:34

Bypass Paywalls Chrome Clean:免费解锁付费内容的终极神器

Bypass Paywalls Chrome Clean&#xff1a;免费解锁付费内容的终极神器 【免费下载链接】bypass-paywalls-chrome-clean 项目地址: https://gitcode.com/GitHub_Trending/by/bypass-paywalls-chrome-clean 还在为新闻网站和内容平台的付费墙而烦恼吗&#xff1f;Bypass…

作者头像 李华
网站建设 2026/4/4 8:11:35

揭秘OpenCode:终端AI编程助手的实战应用全攻略

揭秘OpenCode&#xff1a;终端AI编程助手的实战应用全攻略 【免费下载链接】opencode 一个专为终端打造的开源AI编程助手&#xff0c;模型灵活可选&#xff0c;可远程驱动。 项目地址: https://gitcode.com/GitHub_Trending/openc/opencode 还在为复杂的代码调试而烦恼吗…

作者头像 李华