mirror of
https://github.com/modelscope/FunASR.git
synced 2026-10-12 02:19:18 +00:00
79 lines
9.5 KiB
HTML
79 lines
9.5 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="zh-CN"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1.0">
|
|
<meta name="description" content="从 Whisper 或云端 ASR 迁移到 FunASR 的评估指南:代表性音频、功能映射、OpenAI 兼容 API 和上线检查清单。">
|
|
<meta property="og:title" content="从 Whisper 或云端 ASR 迁移到 FunASR">
|
|
<meta property="og:description" content="面向正在比较 Whisper、云端 ASR 和私有化 FunASR 的团队,提供评测和上线路径。">
|
|
<meta property="og:type" content="website">
|
|
<meta property="og:url" content="https://modelscope.github.io/FunASR/zh/migration.html">
|
|
<link rel="canonical" href="https://modelscope.github.io/FunASR/zh/migration.html">
|
|
<meta property="og:site_name" content="FunASR">
|
|
<meta name="twitter:card" content="summary">
|
|
<meta name="twitter:title" content="从 Whisper 或云端 ASR 迁移到 FunASR">
|
|
<meta name="twitter:description" content="从 Whisper 或云端 ASR 迁移到 FunASR 的评估指南:代表性音频、功能映射、OpenAI 兼容 API 和上线检查清单。">
|
|
<title>从 Whisper 或云端 ASR 迁移到 FunASR</title>
|
|
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet">
|
|
<link rel="stylesheet" href="../style.css">
|
|
</head><body>
|
|
<nav class="nav"><div class="container">
|
|
<a href="index.html" class="nav-logo">FunASR</a>
|
|
<div class="nav-links"><a href="index.html">首页</a><a href="tutorial.html">教程</a><a href="training.html">训练</a><a href="model-registration.html">开发</a><a href="../api.html">API</a><a href="vllm.html">vLLM</a><a href="agent.html">Agent</a><a href="benchmark.html">Benchmark</a>
|
|
<a href="../donors.html">功德榜</a></div>
|
|
<div class="lang-dropdown"><button class="lang-btn">中文</button><div class="lang-menu"><a href="../migration.html">English</a><a href="migration.html" class="current">中文</a><a href="../ja/index.html">日本語</a></div></div>
|
|
<a href="https://github.com/modelscope/FunASR" class="nav-github">GitHub</a>
|
|
</div></nav>
|
|
<div class="content"><div class="container narrow">
|
|
<h1>从 Whisper 或云端 ASR 迁移到 FunASR</h1>
|
|
<p>当你已经有 Whisper、OpenAI/云端 ASR 或自研语音流水线,并想判断是否值得切到 FunASR 时,可以按这个指南评估。重点是在真实业务音频上比较质量、速度、成本和部署可行性。</p>
|
|
<div class="toc-grid"><a href="#fit">适用场景</a><a href="#plan">评估计划</a><a href="#mapping">功能映射</a><a href="#rollout">上线检查</a></div>
|
|
<section id="fit"><h2>什么时候值得评估 FunASR</h2>
|
|
<ul><li>音频需要留在私有环境内,不能上传到外部云服务。</li><li>会议、归档、媒体、客服录音等长音频需要高吞吐转写。</li><li>希望一条流水线内完成 VAD、标点、时间戳和说话人分离。</li><li>需要 OpenAI 兼容音频接口,接入 Agent、Dify、LangChain、AutoGen 或内部应用。</li><li>需要 WebSocket/runtime 服务支撑流式识别或实时字幕。</li><li>希望先用 CPU 做可复现 smoke test,再迁移到 GPU 服务。</li></ul>
|
|
<p>如果你更需要完全托管服务、厂商 SLA,或你的自有评测显示目标语言/领域还不够好,可以暂时保留现有方案。</p></section>
|
|
<section id="plan"><h2>快速评估计划</h2>
|
|
<ol><li>选择 20-50 条有代表性的音频,覆盖短音频、长录音、噪声、多说话人、目标语言和方言。</li><li>按生产方式运行当前 Whisper 或云端 ASR,保存转写结果、延迟、成本和失败样例。</li><li>用教程跑 FunASR,再根据 <a href="deployment-matrix.html">部署选型表</a> 选择服务路径。</li><li>用人工审阅或现有 WER/CER 流程比较结果,不要只看一个干净 demo 音频。</li><li>运行 <a href="https://github.com/modelscope/FunASR/tree/main/examples/migration">迁移评测示例</a>,为自己的音频目录生成 JSONL 和 Markdown 汇总。</li><li>如果应用已经使用 OpenAI 风格客户端,运行 <a href="https://github.com/modelscope/FunASR/blob/main/examples/openai_api/smoke_test.py">OpenAI 兼容 API Python 烟测脚本</a>。</li><li>分开记录 warmup、模型下载、设备、GPU/CPU 型号、batch size、音频时长和稳定吞吐。</li></ol></section>
|
|
<section id="mapping"><h2>功能映射</h2>
|
|
<table><tr><th>现有流程</th><th>FunASR 路径</th><th>需要验证什么</th></tr>
|
|
<tr><td>Whisper 文件转写</td><td><a href="tutorial.html">教程</a> · <a href="model-selection.html">模型选择</a></td><td>转写质量、时间戳、速度、模型下载、CPU/GPU 行为。</td></tr>
|
|
<tr><td>Whisper + pyannote</td><td>VAD、标点和 <code>spk_model="cam++"</code></td><td>说话人标签、换人位置、重叠说话、长静音。</td></tr>
|
|
<tr><td>OpenAI 音频 API 或云端批量 ASR</td><td><a href="agent.html#server">OpenAI 兼容 API</a> · <a href="https://github.com/modelscope/FunASR/blob/main/examples/openai_api/kubernetes/README_zh.md">Kubernetes 模板</a> · <a href="https://github.com/modelscope/FunASR/blob/main/examples/openai_api/JAVASCRIPT_zh.md">JS/TS 配方</a></td><td><code>/v1/audio/transcriptions</code>、响应格式、客户端兼容性、上传限制。</td></tr>
|
|
<tr><td>Dify/LangChain/AutoGen Agent 音频</td><td><a href="agent.html">Agent 与 API 配方</a> 或 MCP 服务</td><td>工具延迟、文件处理、鉴权边界、错误返回。</td></tr>
|
|
<tr><td>实时字幕或客服流式识别</td><td><a href="tutorial.html#streaming">实时示例</a></td><td>分块、断句、重连、背压、中间/最终结果行为。</td></tr>
|
|
<tr><td>字幕生成</td><td><a href="agent.html#subtitle">字幕生成器</a></td><td>分段可读性、行长、说话人标签、SRT/VTT 兼容性。</td></tr>
|
|
<tr><td>离线归档处理</td><td><a href="https://github.com/modelscope/FunASR/blob/main/examples/batch_asr_improved.py">批处理示例</a></td><td>manifest、重试、进度日志、吞吐、失败文件恢复。</td></tr></table></section>
|
|
<section id="compare"><h2>最小本地对比</h2>
|
|
<p>安装 FunASR,并用你基线评测里的同一条音频运行。若要评测整个目录,可以使用 <a href="https://github.com/modelscope/FunASR/blob/main/examples/migration/benchmark_funasr.py">benchmark_funasr.py</a> 生成 <code>results.jsonl</code> 和 <code>summary.md</code>。</p>
|
|
<pre><code>pip install funasr</code></pre>
|
|
<pre><code>from funasr import AutoModel
|
|
|
|
model = AutoModel(
|
|
model="iic/SenseVoiceSmall",
|
|
vad_model="fsmn-vad",
|
|
spk_model="cam++",
|
|
device="cuda", # 便携 smoke test 可改成 "cpu"
|
|
)
|
|
result = model.generate(input="sample.wav")
|
|
print(result)</code></pre>
|
|
<p>若要做可复现的目录级评测:</p>
|
|
<pre><code>python examples/migration/benchmark_funasr.py \
|
|
--input /path/to/audio_samples \
|
|
--recursive \
|
|
--model iic/SenseVoiceSmall \
|
|
--device cuda \
|
|
--spk-model cam++ \
|
|
--output-dir outputs/funasr_migration_eval</code></pre>
|
|
<p>如果要按 API 服务方式对比:</p>
|
|
<pre><code>pip install funasr fastapi uvicorn python-multipart
|
|
funasr-server --model sensevoice --device cuda
|
|
|
|
curl http://localhost:8000/v1/audio/transcriptions \
|
|
-F [email protected] \
|
|
-F model=sensevoice \
|
|
-F response_format=verbose_json</code></pre></section>
|
|
<section id="quality"><h2>质量与速度检查清单</h2>
|
|
<ul><li>音频时长、语言、领域、采样率、声道数和说话人数。</li><li>模型名、模型版本、FunASR 版本、Python/PyTorch/CUDA 版本,以及 Docker 镜像 tag。</li><li>硬件、设备模式、batch size、流式 chunk size,以及是否排除 warmup/模型下载时间。</li><li>WER/CER 或人工审阅记录:姓名、数字、标点、说话人分离、时间戳、领域词。</li><li>延迟、吞吐、GPU/CPU 内存、每小时音频成本、失败文件比例。</li><li>运维要求:鉴权、上传限制、TLS、日志、监控、重试和数据留存规则。</li></ul></section>
|
|
<section id="rollout"><h2>上线检查清单</h2>
|
|
<ul><li>在代表性评测通过前,保留旧流水线作为回退。</li><li>先做内部 endpoint 或离线批处理,再对外暴露 API。</li><li>为每个请求记录 request id、音频时长、模型、设备、延迟和错误类型。</li><li>在 runbook 中固定模型别名和部署命令。</li><li>测试噪声、静音、多人重叠、长文件、非 UTF-8 文件名和网络中断。</li><li>遇到阻塞时,通过 <a href="https://github.com/modelscope/FunASR/issues/new?template=deployment_help.md">Deployment Help issue</a> 提交命令、日志、模型、设备和样本特征。</li></ul></section>
|
|
<section id="share"><h2>分享迁移结果</h2><p>如果 FunASR 替代或补充了你的现有 ASR 栈,欢迎提交 <a href="https://github.com/modelscope/FunASR/issues/new?template=migration_benchmark.md">Migration Benchmark Report</a> 或 <a href="https://github.com/modelscope/FunASR/issues/new?template=showcase.md">showcase issue</a>。包含硬件、速度、质量记录和部署细节的迁移报告,能帮助新用户更快选型。</p></section>
|
|
</div></div>
|
|
<footer><p>FunASR · 通义实验室,阿里巴巴集团</p><p><a href="index.html">首页</a> · <a href="migration.html">迁移指南</a> · <a href="use-cases.html">场景速览</a> · <a href="deployment-matrix.html">部署选型</a> · <a href="agent.html">Agent</a> · <a href="benchmark.html">Benchmark</a> · <a href="https://github.com/modelscope/FunASR">GitHub</a></p></footer>
|
|
</body></html>
|