ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

FunASR 本地离线语音转写部署完整指南:从 Python 服务到批量转写

FunASR 本地离线语音转写部署完整指南:从 Python 服务到批量转写 FunASR 本地离线语音转写部署完整指南从 Python 服务到批量转写【免费下载链接】FunASROpen-source speech recognition toolkit for training, inference, streaming ASR, VAD, punctuation, speaker diarization pipelines, and OpenAI-compatible/MCP serving.项目地址: https://gitcode.com/GitHub_Trending/fun/FunASR会议录音、客服通话要转成文字又不想上传云 API。FunASR 可以在 Windows 或 Linux 上跑起一个本地离线语音转写服务4 个步骤、约 10 分钟得到一个 WebSocket 转写服务支持单文件与批量 wav.scp 转写输出带标点的文本。FunASR 本地转写能做什么先说几个帮你判断值不值得装的点它是一个开源语音识别工具包覆盖 ASR识别、VAD语音活动检测即判断哪段音频里有人说话、PUNC标点恢复全链路本文只用部署转写服务这一环纯 CPU 可跑默认加载中文 paraformer 大模型不需要 GPU服务端/客户端分离一个 Python 脚本起服务客户端通过 WebSocket 送音频你以后也可以用自己的程序对接三种工作模式offline整段文件转写、online流式实时、2pass流式先出草稿、离线再精修能力边界一眼看完默认模型为中文paraformer-zh、16kHz 采样率音频输入建议用 wav 或 wav.scp 清单mp3 等其他格式需要本机装有 ffmpeg。前置条件Python 环境与依赖清单必须Python 3.8 – 3.13用python --version确认PyTorch ≥ 1.11pip install torch torchaudiofunasr 与 modelscopepip install -U funasr modelscopegit用于克隆源码可选增强ffmpeg转写 mp3、mp4 等非 wav 格式时才需要Windows 用winget install ffmpegPyAudio直接用麦克风实时转写时才需要pip install pyaudio 本文命令在 Windows 上可在 PowerShell 或 cmd 中执行Linux 下在 bash 执行。跨平台命令统一用bash代码块展示Windows 专属命令会单独标注cmd或powershell。部署转写服务从 0 到跑通的 4 步步骤 1克隆源码并安装运行时依赖做什么拿到 FunASR 源码安装 WebSocket 服务端与客户端的依赖。git clone https://gitcode.com/GitHub_Trending/fun/FunASR cd FunASR/runtime/python/websocket pip install -r requirements_server.txt pip install -r requirements_client.txt怎么确认成功目录里能看到funasr_wss_server.py与funasr_wss_client.py两个脚本dir funasr_wss_server.py funasr_wss_client.pyls funasr_wss_server.py funasr_wss_client.py步骤 2启动 WebSocket 转写服务做什么以 CPU 模式启动服务端。注意脚本默认把模型加载到 GPU--ngpu 1 --device cuda无显卡的机器必须显式传 CPU 参数否则会报 CUDA 相关错误有 NVIDIA 显卡的机器则去掉--ngpu 0 --device cpu直接用默认参数启动。首次启动会从 ModelScope 下载 paraformer-zh、VAD、标点、声纹四个模型耗时取决于带宽属正常现象。python funasr_wss_server.py --port 10095 --ngpu 0 --device cpu --ncpu 4怎么确认成功下载完成后终端依次出现model loaded! (now supports multi-client with non-blocking inference) WS server started at ws(s)://0.0.0.0:10095⚠️ 服务端默认启用 SSL默认证书指向runtime/ssl_key/server.crt。之后客户端连接若报ssl握手类错误要么客户端保持--ssl 1要么服务端加--certfile 关闭 SSL、同时客户端改为--ssl 0。步骤 3单文件转写做什么另开一个终端用客户端对本地 wav 发起offline转写。python funasr_wss_client.py --host 127.0.0.1 --port 10095 --mode offline --audio_in D:\audio\meeting.wav--audio_in换成你的音频实际路径怎么确认成功终端逐句打印带标点的识别文本服务端终端对应打印offline final text:行。 音频不是 16kHz wav 时如 mp3客户端原样发送、由服务端用 ffmpeg 解码若报解码错误先转成标准 wavffmpeg -i input.mp3 -ar 16000 -ac 1 out.wav。步骤 4批量转写 wav.scp 清单做什么把待转写音频写进 Kaldi 风格清单每行编号 路径客户端读清单逐条转写用--output_dir把结果落到目录。创建D:\audio\wav.scp内容为demo1 D:\audio\meeting1.wav demo2 D:\audio\call2.wav执行批量转写python funasr_wss_client.py --host 127.0.0.1 --port 10095 --mode offline --audio_in D:\audio\wav.scp --output_dir D:\transcripts怎么确认成功跑完没有超时异常D:\transcripts目录下生成转写结果文件。客户端等待服务端确认的窗口默认 300 秒可用--result_timeout调整。进阶实操热词定制与并发调优热词定制提升领域专有名词识别率转写老把人名、产品名、内部术语听错时用--hotword指定热词文件格式为每行热词 权重权重越大越优先阿里巴巴 20 ModelScope 20 FunASR 30python funasr_wss_client.py --host 127.0.0.1 --port 10095 --mode offline --audio_in D:\audio\meeting.wav --hotword D:\hotwords.txt并发调优按 CPU 核数配参数Python 服务端用线程池执行推理默认--worker_threads取max(4, CPU核数)各阶段并发度由--concurrent_vad、--concurrent_asr_online、--concurrent_asr_offline等控制。多客户端同时接入时可按下式调整线程池不超过物理核数最耗资源的离线 ASR 并发不超过 2 倍核数例如 8 核机器python funasr_wss_server.py --port 10095 --ngpu 0 --device cpu --ncpu 8 --worker_threads 8 --concurrent_asr_offline 4 --concurrent_vad 8嫌写客户端麻烦的话仓库还带了一个浏览器端 Web 客户端runtime/html5/目录上传文件即可转写界面如下故障速查常见报错与处理命令现象服务端启动报Address already in use原因10095 端口被其他进程占用。解决cmdnetstat -ano | findstr :10095找到最后一列 PIDtaskkill /PID PID /F结束进程或服务端改用--port 10096启动客户端同步改--port。现象客户端连上即断日志含ssl握手错误原因服务端默认启用 SSLwss客户端却按明文 ws 连接。解决客户端确认--ssl 1默认即 1若服务端传了--certfile 关 SSL客户端必须改--ssl 0两边保持一致即可。现象客户端报ModuleNotFoundError: No module named pyaudio原因没传--audio_in客户端进入麦克风推流模式。解决转写文件就补上--audio_in路径确需麦克风则pip install pyaudio。现象服务端卡在model loading很久或中途出现下载中断原因首次启动需从 ModelScope 拉取四个模型包弱网易断。解决直接重跑同一条启动命令已下载的模型走本地缓存不重复拉取网络受限时参照 docs/installation/installation_zh.md 手动准备模型。现象长音频转写到一半报server did not acknowledge end of input原因客户端等待服务端收尾确认超过默认 300 秒。解决客户端追加--result_timeout 600把等待窗口翻倍。想继续深入WebSocket 客户端/服务端全参数说明runtime/python/websocket/README.mdC 高并发 SDKDocker 部署、批量文件转写runtime/quick_start_zh.md环境安装与平台差异docs/installation/installation_zh.md常见问题docs/reference/FQA.md更多模型与训练示例examples/服务端近期已支持多客户端并发限流与声纹识别speaker_db参数如果你的场景是多人会议转写可以先在runtime/python/websocket/funasr_wss_server.py里看--concurrent_sv相关配置。挑一段你最头疼的通话录音把--audio_in指过去跑一遍再和云端结果对比一下准确率。【免费下载链接】FunASROpen-source speech recognition toolkit for training, inference, streaming ASR, VAD, punctuation, speaker diarization pipelines, and OpenAI-compatible/MCP serving.项目地址: https://gitcode.com/GitHub_Trending/fun/FunASR创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表