FunASR语音识别新手入门:从环境搭建到识别结果导出完整流程

📅 发布时间:2026/7/9 18:43:43 👁️ 浏览次数:
FunASR语音识别新手入门:从环境搭建到识别结果导出完整流程
FunASR语音识别新手入门从环境搭建到识别结果导出完整流程1. 开篇为什么你需要一个本地语音识别工具想象一下这个场景你刚刚结束一场重要的线上会议需要把长达一小时的讨论内容整理成文字纪要。手动听写效率太低。用在线语音转文字服务又担心隐私泄露。这时候一个能在自己电脑上运行的、高精度的语音识别工具就显得格外重要。今天我要介绍的就是这样一个工具——基于FunASR框架并集成了speech_ngram_lm_zh-cn语言模型的WebUI系统。简单来说它就是一个开箱即用的中文语音识别网页应用你不需要懂复杂的命令行也不需要配置繁琐的环境打开浏览器就能用。这篇文章我会手把手带你完成从零开始部署到实际使用的全过程。无论你是开发者、内容创作者还是普通用户都能在30分钟内拥有一个属于自己的语音识别工作站。2. 快速了解这个工具能帮你做什么在开始动手之前我们先看看这个工具到底有什么本事。了解它能做什么你才知道自己需不需要它。2.1 核心功能一览这个FunASR WebUI主要提供两大使用方式方式一上传音频文件支持MP3、WAV、M4A等常见格式最长可处理10分钟的音频自动识别中文、英文、粤语等多种语言一键导出文字稿、字幕文件方式二实时录音转文字直接在浏览器里录音边说边转实时看到识别结果适合会议记录、采访录音等场景2.2 它有什么特别之处你可能用过一些在线语音转文字工具但这个本地部署的版本有几个明显的优势隐私安全所有音频都在你自己的服务器或电脑上处理数据不会上传到第三方服务器。对于处理敏感内容如内部会议、客户访谈来说这是最重要的优势。高精度识别它集成了speech_ngram_lm_zh-cn语言模型。这个模型专门针对中文优化能更好地处理同音字、专业术语和数字表达。比如“一百八十”不会错识别成“一八零”“通义千问”不会被误写成“同义千文”。完全免费一次部署永久使用。没有使用次数限制没有文件大小限制也没有会员等级之分。多格式输出识别完成后你可以下载纯文本、带时间戳的JSON文件或者直接生成SRT字幕文件。后者可以直接导入到剪映、Premiere等视频编辑软件里。3. 环境准备你需要准备什么现在我们来聊聊部署前的准备工作。别担心要求并不高。3.1 硬件和系统要求最低配置能跑起来但速度慢CPU4核以上内存8GB硬盘至少10GB可用空间系统Windows 10/11、macOS、Linux都可以推荐配置体验更好CPU8核以上内存16GB显卡NVIDIA GPU有CUDA支持硬盘SSD至少20GB可用空间关于显卡的特别说明 如果你有NVIDIA显卡强烈建议使用。语音识别是个计算密集型任务GPU能大幅提升处理速度。一个5分钟的音频用CPU可能需要1-2分钟用GPU可能只需要10-20秒。3.2 软件环境准备对于大多数用户我推荐最简单的部署方式——使用Docker。Docker就像是一个软件集装箱把所有需要的环境都打包好了你只需要拉取镜像、运行容器就行。第一步安装Docker如果你还没安装Docker可以去官网下载对应版本Windows/Mac用户下载Docker DesktopLinux用户用包管理器安装比如Ubuntu用sudo apt install docker.io安装完成后打开终端Windows用PowerShell或CMD输入docker --version能看到版本号就说明安装成功了。第二步创建项目目录在你的电脑上找个合适的位置创建一个文件夹来存放所有相关文件。比如mkdir funasr-demo cd funasr-demo这个文件夹将用来存放模型文件、配置文件和处理结果。4. 详细部署步骤跟着做就行准备好了吗我们现在开始真正的部署。我会把每个步骤都写清楚你跟着做就行。4.1 拉取镜像并启动容器打开终端进入刚才创建的funasr-demo目录然后执行以下命令# 创建模型存储目录 mkdir -p ./models # 拉取FunASR镜像 docker pull registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-online-cpu-0.1.12 # 启动容器 docker run -p 7860:7860 -p 10095:10095 -it \ -v $(pwd)/models:/workspace/models \ -v $(pwd)/outputs:/workspace/outputs \ --name funasr-webui \ registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-online-cpu-0.1.12命令解释-p 7860:7860把容器的7860端口映射到主机的7860端口这是WebUI的访问端口-p 10095:10095映射语音识别服务的端口-v $(pwd)/models:/workspace/models把本地的models文件夹挂载到容器里这样模型文件会保存在本地下次启动时不用重新下载-v $(pwd)/outputs:/workspace/outputs把输出目录也挂载到本地方便查看处理结果--name funasr-webui给容器起个名字方便管理执行完最后一条命令后你会进入容器的命令行界面。如果看到类似root容器ID:/workspace#的提示符说明已经成功进入容器了。4.2 启动语音识别服务在容器命令行里输入以下命令启动服务cd /workspace/FunASR/runtime # 启动服务这个命令会下载模型第一次运行需要一些时间 bash run_server_2pass.sh \ --download-model-dir /workspace/models \ --vad-dir damo/speech_fsmn_vad_zh-cn-16k-common-onnx \ --model-dir damo/speech_paraformer-large-vad-punc_asr_nat-zh-cn-16k-common-vocab8404-onnx \ --online-model-dir damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-online-onnx \ --punc-dir damo/punc_ct-transformer_zh-cn-common-vad_realtime-vocab272727-onnx \ --lm-dir damo/speech_ngram_lm_zh-cn-ai-wesp-fst \ --itn-dir thuduj12/fst_itn_zh这里有几个关键点需要注意第一次运行会下载模型模型文件比较大总共几个GB所以第一次运行需要一些时间下载。网络好的话大概10-20分钟网络慢的话可能需要更久。下载进度会在终端显示。--lm-dir参数很重要这个参数指定了我们要使用的speech_ngram_lm_zh-cn语言模型。正是这个模型让识别准确率大幅提升特别是对数字、专有名词的识别。服务启动成功标志当你在终端看到类似这样的输出时说明服务启动成功了INFO: Uvicorn running on http://0.0.0.0:10095 (Press CTRLC to quit)如果遇到下载慢的问题 有些模型文件可能下载比较慢你可以耐心等待或者尝试在运行命令前设置代理如果你有的话export http_proxyhttp://你的代理地址:端口 export https_proxyhttp://你的代理地址:端口4.3 启动WebUI界面服务启动后我们需要在另一个终端窗口启动WebUI。保持刚才的终端窗口运行新开一个终端窗口执行# 进入刚才创建的目录 cd funasr-demo # 进入容器注意容器名是funasr-webui docker exec -it funasr-webui /bin/bash # 在容器内启动WebUI cd /workspace python app.main.py看到类似这样的输出说明WebUI启动成功Running on local URL: http://0.0.0.0:7860现在打开你的浏览器访问http://localhost:7860就能看到语音识别的Web界面了。5. 界面详解与基本使用第一次打开界面你可能会觉得选项有点多。别担心我带你一个个看。5.1 界面布局介绍整个界面分为左右两部分左侧是控制面板包括模型选择Paraformer-Large精度高或SenseVoice-Small速度快设备选择CUDA用显卡或CPU不用显卡功能开关是否加标点、是否检测语音段落、是否输出时间戳操作按钮加载模型、刷新状态右侧是主要操作区包括上传音频区域录音按钮识别参数设置结果显示区域5.2 第一次使用前的设置在开始识别之前建议做几个简单设置选择模型如果你追求识别准确率选Paraformer-Large如果需要快速响应选SenseVoice-Small。对于大多数情况我建议先用Paraformer-Large。检查设备如果你有NVIDIA显卡系统会自动选择CUDA。如果没有显卡就选CPU。打开所有功能开关把“启用标点恢复”、“启用语音活动检测”、“输出时间戳”这三个选项都打开。这样能得到格式最完整的结果。点击“加载模型”第一次使用需要加载模型到内存点击这个按钮等状态显示“模型已加载”就可以开始使用了。5.3 上传音频文件识别这是最常用的功能。我们用一个实际例子来演示步骤1准备测试音频你可以用手机录一段话或者找一个已有的音频文件。建议先用短一点的音频测试比如30秒到1分钟。音频格式支持MP3、WAV、M4A等常见格式。步骤2上传文件在界面上找到“上传音频”按钮点击后选择你的音频文件。上传成功后文件名会显示在按钮下方。步骤3设置识别参数批量大小默认300秒5分钟如果你的音频更长可以调大这个值最大支持600秒10分钟识别语言选auto自动检测或者根据实际情况选择。如果是纯中文选zh中英混合选auto步骤4开始识别点击“开始识别”按钮。你会看到进度条开始走动下方显示“识别中...”。识别时间取决于音频长度和你的硬件配置。步骤5查看结果识别完成后结果会显示在下方。有三个标签页可以切换文本结果纯文字内容可以直接复制使用详细信息JSON格式的完整数据包括每个词的时间戳、置信度等时间戳按句子划分的时间区间方便做字幕5.4 实时录音识别如果你需要实时转写比如记录会议、采访可以用这个功能。步骤1开始录音点击“麦克风录音”按钮浏览器会询问是否允许使用麦克风点击“允许”。步骤2说话录音对着麦克风清晰说话。你可以看到录音时长在增加。说完后点击“停止录音”。步骤3识别录音点击“开始识别”系统会处理刚才的录音并显示结果。实用小技巧录音时尽量靠近麦克风减少环境噪音语速不要太快清晰发音如果有重要内容录音后立即识别避免忘记上下文6. 结果处理与导出识别出来的文字怎么用这里有几个实用的处理方法。6.1 三种导出格式怎么选识别完成后你可以下载三种格式的结果下载文本.txt文件最常用的格式纯文字内容没有时间戳适合直接粘贴到文档、笔记软件里文件最小打开最快下载JSON.json文件包含所有详细信息每个词都有时间戳和置信度适合程序员做二次开发可以用Python等语言解析处理下载SRT.srt文件标准的字幕文件格式每句话都有开始和结束时间可以直接导入视频编辑软件适合做视频字幕6.2 实际案例把会议录音变成会议纪要假设你有一个30分钟的会议录音现在要整理成会议纪要。可以这样做上传音频并识别按前面步骤操作得到识别结果下载文本结果点击“下载文本”得到一个.txt文件简单整理打开.txt文件复制所有内容粘贴到Word或记事本根据说话人分段如果录音中有不同人说话删除重复的、无意义的词句提炼关键点和行动项如果需要做会议视频下载SRT文件导入到剪映、Premiere等软件调整字幕样式和位置导出带字幕的视频6.3 输出文件在哪里所有处理结果都保存在你之前创建的funasr-demo/outputs目录下。每次识别都会创建一个带时间戳的新文件夹比如outputs_20240115_143022/ ├── audio_001.wav # 你上传的音频副本 ├── result_001.json # JSON格式的完整结果 ├── text_001.txt # 纯文本结果 └── subtitle_001.srt # SRT字幕文件这样设计的好处是每次处理的结果都独立存放不会互相覆盖。你可以随时找到历史记录。7. 常见问题与解决方法在实际使用中你可能会遇到一些问题。这里我整理了几个最常见的情况和解决方法。7.1 识别结果不准确怎么办这是最常遇到的问题。识别准确率受很多因素影响可以尝试以下方法检查音频质量背景噪音是否太大可以先用Audacity等软件降噪说话人是否离麦克风太远是否有多人同时说话调整识别设置尝试切换模型Paraformer-Large通常更准确确保开启了所有功能开关标点、VAD、时间戳如果是专业领域内容可以添加热词后面会讲优化录音方式说话时清晰、匀速避免“嗯”、“啊”等口头禅如果是重要内容可以分段录音每段1-2分钟7.2 识别速度太慢怎么办处理速度主要取决于你的硬件配置如果使用CPU1分钟音频大概需要1-2分钟处理可以尝试分段处理长音频关闭其他占用CPU的程序如果使用GPU1分钟音频大概需要10-30秒确保正确选择了CUDA模式更新显卡驱动到最新版本通用优化建议音频不要太长建议分段处理使用SenseVoice-Small模型会更快确保网络稳定第一次下载模型时需要7.3 其他常见问题问题上传文件失败检查文件格式是否支持MP3、WAV、M4A、FLAC等检查文件大小建议小于100MB尝试用其他浏览器Chrome、Edge兼容性最好问题录音没有声音检查浏览器是否允许麦克风权限检查系统麦克风设置尝试刷新页面重新授权问题界面显示异常清除浏览器缓存尝试用无痕模式打开检查控制台是否有错误按F128. 进阶技巧让识别更精准如果你已经基本会用这个工具了接下来可以试试这些进阶技巧让识别效果更好。8.1 使用热词提升专业术语识别热词Hotwords功能可以强制模型关注某些特定词汇。比如你经常处理医疗内容可以添加医学术语处理法律内容可以添加法律术语。如何添加热词在本地电脑上创建一个文本文件比如叫hotwords.txt每行写一个词或短语比如冠状动脉 心电图 MRI检查 高血压 糖尿病把这个文件放到funasr-demo/models/目录下重启服务时添加--hotword参数需要修改启动命令热词功能对提升专业领域识别准确率很有帮助特别是那些不常见的专有名词。8.2 批量处理多个文件如果你有很多音频文件需要处理一个一个上传太麻烦。可以写一个简单的Python脚本批量处理import os import requests # 设置API地址 url http://localhost:7860/api/transcribe # 音频文件夹路径 audio_folder 你的音频文件夹路径 # 遍历所有音频文件 for filename in os.listdir(audio_folder): if filename.endswith((.mp3, .wav, .m4a)): file_path os.path.join(audio_folder, filename) # 准备请求 files {audio: open(file_path, rb)} data { language: zh, punc: true, vad: true, timestamp: true } # 发送请求 response requests.post(url, filesfiles, datadata) # 保存结果 if response.status_code 200: result response.json() text_result result.get(text, ) # 保存为文本文件 output_file filename.rsplit(., 1)[0] .txt with open(output_file, w, encodingutf-8) as f: f.write(text_result) print(f处理完成: {filename}) else: print(f处理失败: {filename}, 错误: {response.text})这个脚本会自动处理指定文件夹里的所有音频文件把识别结果保存为同名的.txt文件。8.3 调整识别参数获得更好效果在高级使用场景中你可能需要调整一些参数VAD语音活动检测参数作用自动检测哪里是说话哪里是静音调整如果发现截断不准确可以尝试调整VAD的敏感度需要在代码层面调整标点模型默认的标点模型适合大多数场景如果你处理的是特定文体如诗歌、剧本可能需要调整标点规则语言模型权重N-gram语言模型的权重可以调整增加权重会让模型更依赖语言模型可能提高流畅度但降低对音频的忠实度减少权重则相反这些高级调整需要修改配置文件或代码适合有一定技术背景的用户。9. 总结与下一步建议9.1 回顾我们学到了什么通过这篇文章你应该已经掌握了环境搭建如何在本地部署FunASR语音识别系统基本使用如何上传音频、实时录音、查看和导出结果问题解决遇到常见问题知道怎么处理进阶技巧如何使用热词、批量处理等高级功能这个工具最核心的价值在于它让你拥有了一个完全可控、高精度、免费的语音识别能力。无论是个人学习、工作辅助还是小型团队的内容生产都能派上用场。9.2 你可以尝试的下一步如果你对这个工具已经比较熟悉了可以考虑探索更多应用场景为视频自动生成字幕整理访谈录音会议内容归档学习笔记整理录音转文字深入学习技术原理了解Paraformer模型的工作原理学习N-gram语言模型如何提升识别准确率研究VAD语音活动检测算法考虑集成到其他系统如果你有自己的应用可以通过API调用这个服务可以搭建一个内部使用的语音转文字平台可以结合其他AI工具如自动摘要、翻译构建工作流9.3 最后的提醒技术工具的价值在于解决问题。这个FunASR WebUI是一个很好的起点但它不是终点。真正重要的是你如何用它来提高工作效率、创造更多价值。开始可能会遇到一些小问题比如环境配置、参数调整但一旦跑起来你会发现它带来的便利远远超过这些初期投入。语音识别技术正在快速进步今天你部署的这个系统可能比很多商业产品还要好用。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。