Skip to content

Commit 2e4914e

Browse files
authored
Merge pull request #3497 from modelscope/codex/site-llamacpp-blog-v020-20260815
docs: refresh llama.cpp deployment blog
2 parents 9041074 + 534f83c commit 2e4914e

5 files changed

Lines changed: 77 additions & 15 deletions

File tree

web-pages/product-site/content/legacy-manifest.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"blog/chinese-speech-recognition.html": "a78eeb4e5ea38ce95ad05ebc54eceb0185d8dddd2286769b5ba1b7dd00e8b615",
99
"blog/fun-asr-nano-guide.html": "4e9a5c41c3846e482cc74e5379e642b16b6b35b680eea36a4cc79147933b76d5",
1010
"blog/funasr-cli-transcribe-command-line.html": "84dd389969e2795bf8bb9054b2f88b2abc16893bf6f7a7673e1f2887827da12e",
11-
"blog/funasr-llama-cpp-whisper-cpp-alternative.html": "328e5a173381c72d4b500e9d10c4532a0574f3e477b5567eb6de8c3dc1b9244a",
11+
"blog/funasr-llama-cpp-whisper-cpp-alternative.html": "3e1a8901c3f7f74e310b8050e2f6722c736ce0b37155805b85786d5b5455ae8f",
1212
"blog/funasr-realtime-streaming-asr.html": "7b6c34ace6c4c782f5af9c3f52181c1b1ef08d32c4ea3fafab63b1f30a9e72db",
1313
"blog/funasr-speaker-diarization.html": "451273993769f38de014160788581529788db8e4ca9fb56773d7723c51d96a52",
1414
"blog/funasr-transcribe-long-audio.html": "4f7f593c114dd54b11e3cf2b2e7ddcfea6af29326034ce4a76c690d30f41ff28",
@@ -44,7 +44,7 @@
4444
"en/blog/chinese-speech-recognition.html": "16b68bd2a1122236c580c62275002ae2c0875ca14e32686e88d3b5ccfa9f56ef",
4545
"en/blog/fun-asr-nano-guide.html": "1746c708bd0606188de4266d8255984dd9e14634af33c54ad65a5f05b767be1b",
4646
"en/blog/funasr-cli-transcribe-command-line.html": "1675699115f99e629d59f2a5323389d9405a6044c2a54efbcdd682c883c9322b",
47-
"en/blog/funasr-llama-cpp-whisper-cpp-alternative.html": "ff1162a4691b113e133a0a9362ed5f2401899a0e0fdd7023bb4346e7df295f1a",
47+
"en/blog/funasr-llama-cpp-whisper-cpp-alternative.html": "3808ee7a014f63e3befd83c886eca3fd96abea7d4de68a90a8bd23befe579282",
4848
"en/blog/funasr-realtime-streaming-asr.html": "65c7353fcdc393fc0adec3969d9762edc8f30dc15d20e360a2b11508d8c60a91",
4949
"en/blog/funasr-speaker-diarization.html": "db6511de2f356b7bf5e3f1f89b33991500a293c9d3bd2420d8a6cd6cf6cf3997",
5050
"en/blog/funasr-transcribe-long-audio.html": "6d486c9cee4a8c339e09e60ecee579b7cd650ce512d1ac8fe25789e2489b87fb",

web-pages/product-site/legacy/blog/funasr-llama-cpp-whisper-cpp-alternative.html

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
<link rel="alternate" hreflang="x-default" href="https://www.funasr.com/en/blog/funasr-llama-cpp-whisper-cpp-alternative.html">
1919
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap" rel="stylesheet">
2020
<script type="application/ld+json">
21-
{"@context":"https://schema.org","@type":"BlogPosting","headline":"FunASR 跑进 llama.cpp:中文 ASR 的 whisper.cpp 替代品(CPU/零 Python/下载即用)| FunASR 博客","description":"FunASR 的 llama.cpp/GGUF 端侧运行时:单个自包含二进制、零 Python、内置 VAD、吃任意音频,下载即用转写中文。中文 CPU 上比 whisper.cpp 准约 2.7 倍。3 步实测跑通。","datePublished":"2026-06-20","dateModified":"2026-06-20","author":{"@type":"Organization","name":"FunASR / Tongyi Lab"},"publisher":{"@type":"Organization","name":"FunASR","logo":{"@type":"ImageObject","url":"https://www.funasr.com/logo.png"}},"mainEntityOfPage":{"@type":"WebPage","@id":"https://www.funasr.com/blog/funasr-llama-cpp-whisper-cpp-alternative.html"},"image":"https://www.funasr.com/logo.png"}
21+
{"@context":"https://schema.org","@type":"BlogPosting","headline":"FunASR 跑进 llama.cpp:中文 ASR 的 whisper.cpp 替代品(CPU/零 Python/下载即用)| FunASR 博客","description":"FunASR 的 llama.cpp/GGUF 端侧运行时:单个自包含二进制、零 Python、内置 VAD、吃任意音频,下载即用转写中文。中文 CPU 上比 whisper.cpp 准约 2.7 倍。3 步实测跑通。","datePublished":"2026-06-20","dateModified":"2026-08-15","author":{"@type":"Organization","name":"FunASR / Tongyi Lab"},"publisher":{"@type":"Organization","name":"FunASR","logo":{"@type":"ImageObject","url":"https://www.funasr.com/logo.png"}},"mainEntityOfPage":{"@type":"WebPage","@id":"https://www.funasr.com/blog/funasr-llama-cpp-whisper-cpp-alternative.html"},"image":"https://www.funasr.com/logo.png"}
2222
</script>
2323
<style>:root{--primary:#2563eb;--primary-dark:#1d4ed8;--bg:#fff;--surface:#f8fafc;--border:#e2e8f0;--text:#0f172a;--text-soft:#475569;--text-muted:#94a3b8;--radius:12px}
2424
*{margin:0;padding:0;box-sizing:border-box}
@@ -54,20 +54,28 @@
5454
.post-card p{margin:0;color:var(--text-soft);font-size:0.9rem}
5555
.post-card .date{color:var(--text-muted);font-size:0.8rem}
5656
footer{background:#0f172a;color:#94a3b8;padding:28px 0;text-align:center;font-size:0.8rem}
57-
footer a{color:#94a3b8}</style>
57+
footer a{color:#94a3b8}
58+
@media(max-width:760px){
59+
.nav{padding:12px 0}
60+
.nav .container{gap:12px;flex-wrap:nowrap}
61+
.nav-links{display:none}
62+
.nav-logo{margin-right:auto}
63+
.nav-btn{padding:7px 12px}
64+
article{padding-top:96px}
65+
}</style>
5866
</head>
5967
<body>
6068
<nav class="nav"><div class="container"><a href="/" class="nav-logo">Fun<span>ASR</span></a><div class="nav-links"><a href="/#capabilities">核心能力</a><a href="/#usage">如何使用</a><a href="/#benchmark">性能</a><a href="/#demo">演示</a><a href="https://modelscope.github.io/FunASR/zh/" target="_blank">文档</a><a href="/quickstart.html">快速上手</a><a href="/models.html">模型</a><a href="/ecosystem.html">生态</a><a href="/blog/">技术博客</a><a href="/vs-whisper.html">对比 Whisper</a><a href="/donors.html">功德榜</a></div><a href="https://www.funasr.com/en/blog/funasr-llama-cpp-whisper-cpp-alternative.html" style="font-size:0.83rem;font-weight:500;color:var(--text-soft)">EN</a><a href="https://github.com/modelscope/FunASR" target="_blank" class="nav-btn">GitHub ★</a></div></nav>
6169
<article><div class="container">
6270
<h1>FunASR 跑进 llama.cpp:中文语音识别的 whisper.cpp 替代品(CPU、零 Python、下载即用)</h1>
63-
<p class="post-meta">2026-06-20 · FunASR 团队</p>
71+
<p class="post-meta">2026-06-20 · 2026-08-15 更新 · FunASR 团队</p>
6472

65-
<p><a href="https://github.com/ggml-org/whisper.cpp" target="_blank">whisper.cpp</a> 是端侧语音识别的事实标准——单个自包含二进制、CPU 就能跑、零依赖。但 Whisper 在<strong>中文</strong>上偏弱。现在 <strong>FunASR 有了 llama.cpp / GGUF 运行时</strong>:一样的"下载即用"体验,**单个静态二进制、零 Python、内置 VAD、吃任意音频**,而且在中文 CPU 上比 whisper.cpp <strong>准约 2.7 倍</strong></p>
73+
<p><a href="https://github.com/ggml-org/whisper.cpp" target="_blank">whisper.cpp</a> 是端侧语音识别的事实标准——单个自包含二进制、CPU 就能跑、零依赖。但 Whisper 在<strong>中文</strong>上偏弱。现在 <strong>FunASR 有了 llama.cpp / GGUF 运行时</strong>:一样的"下载即用"体验,<strong>单个静态二进制、零 Python、内置 VAD、吃任意音频</strong>,而且在中文 CPU 上比 whisper.cpp <strong>准约 2.7 倍</strong></p>
6674

67-
<p style="background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:12px 16px"><strong>👉 想直接下载?</strong> 各平台预编译二进制(Linux/macOS/Windows)+ 一站式 quickstart 与 benchmark 见 <a href="/llama-cpp.html">在 CPU 上运行 FunASR(llama.cpp 下载页)</a></p>
75+
<p style="background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:12px 16px"><strong>👉 想直接下载?</strong> v0.2.0 提供 9 个 LinuxmacOSWindows 预编译包及 SHA-256;下载矩阵、quickstart 与已知限制见 <a href="/deploy/llama-cpp.html">llama.cpp / GGUF 部署页</a></p>
6876
<h2>3 步跑通(全部实测)</h2>
6977
<pre># 1. 下预编译二进制(linux-x64 / linux-arm64 / macos-arm64 / windows-x64)
70-
wget https://github.com/modelscope/FunASR/releases/download/runtime-llamacpp-v0.1.9/funasr-llamacpp-linux-x64-vulkan.tar.gz
78+
wget https://github.com/modelscope/FunASR/releases/download/runtime-llamacpp-v0.2.0/funasr-llamacpp-linux-x64-vulkan.tar.gz
7179
tar xzf funasr-llamacpp-linux-x64-vulkan.tar.gz
7280
# Windows Vulkan 包: funasr-llamacpp-windows-x64-vulkan.zip(运行时加 --backend vulkan)
7381

@@ -90,7 +98,8 @@ <h2>你能得到什么</h2>
9098
<ul>
9199
<li><strong>内置 FSMN-VAD</strong>:长音频自动分段(`--vad fsmn-vad.gguf`),裸二进制即达参考精度,无需 Python 前端</li>
92100
<li><strong>任意音频</strong>:wav / mp3 / flac、任意采样率/声道,二进制内部重采样</li>
93-
<li><strong>多平台预编译</strong>:Linux x64/arm64、macOS arm64、Windows x64,含 Linux/Windows Vulkan 与 Windows CUDA 加速包(<a href="https://github.com/modelscope/FunASR/releases/tag/runtime-llamacpp-v0.1.9" target="_blank">Release</a>);其它平台一条 CMake 命令自构建</li>
101+
<li><strong>多平台预编译</strong>:v0.2.0 提供 9 个 Linux x64/arm64、macOS arm64、Windows x64 包,含 Linux/Windows Vulkan 与 Windows CUDA 加速包(<a href="https://github.com/modelscope/FunASR/releases/tag/runtime-llamacpp-v0.2.0" target="_blank">Release</a>);其它平台一条 CMake 命令自构建</li>
102+
<li><strong>直接输出字幕</strong>:Fun-ASR-Nano、SenseVoiceSmall 和 Paraformer CLI 均可通过 <code>--srt</code> 输出带时间戳的 SRT 字幕</li>
94103
</ul>
95104

96105
<h2>中文 CPU 上 vs whisper.cpp</h2>

web-pages/product-site/legacy/en/blog/funasr-llama-cpp-whisper-cpp-alternative.html

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
<link rel="alternate" hreflang="x-default" href="https://www.funasr.com/en/blog/funasr-llama-cpp-whisper-cpp-alternative.html">
1919
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap" rel="stylesheet">
2020
<script type="application/ld+json">
21-
{"@context":"https://schema.org","@type":"BlogPosting","headline":"FunASR on llama.cpp — a whisper.cpp Alternative for Chinese ASR (CPU, no Python) | FunASR Blog","description":"FunASR's llama.cpp/GGUF on-device runtime: a single self-contained binary, no Python, built-in VAD, any audio format — download and transcribe Chinese. ~2.7x more accurate than whisper.cpp on CPU. Verified 3-step quickstart.","datePublished":"2026-06-20","dateModified":"2026-06-20","author":{"@type":"Organization","name":"FunASR / Tongyi Lab"},"publisher":{"@type":"Organization","name":"FunASR","logo":{"@type":"ImageObject","url":"https://www.funasr.com/logo.png"}},"mainEntityOfPage":{"@type":"WebPage","@id":"https://www.funasr.com/en/blog/funasr-llama-cpp-whisper-cpp-alternative.html"},"image":"https://www.funasr.com/logo.png"}
21+
{"@context":"https://schema.org","@type":"BlogPosting","headline":"FunASR on llama.cpp — a whisper.cpp Alternative for Chinese ASR (CPU, no Python) | FunASR Blog","description":"FunASR's llama.cpp/GGUF on-device runtime: a single self-contained binary, no Python, built-in VAD, any audio format — download and transcribe Chinese. ~2.7x more accurate than whisper.cpp on CPU. Verified 3-step quickstart.","datePublished":"2026-06-20","dateModified":"2026-08-15","author":{"@type":"Organization","name":"FunASR / Tongyi Lab"},"publisher":{"@type":"Organization","name":"FunASR","logo":{"@type":"ImageObject","url":"https://www.funasr.com/logo.png"}},"mainEntityOfPage":{"@type":"WebPage","@id":"https://www.funasr.com/en/blog/funasr-llama-cpp-whisper-cpp-alternative.html"},"image":"https://www.funasr.com/logo.png"}
2222
</script>
2323
<style>:root{--primary:#2563eb;--primary-dark:#1d4ed8;--bg:#fff;--surface:#f8fafc;--border:#e2e8f0;--text:#0f172a;--text-soft:#475569;--text-muted:#94a3b8;--radius:12px}
2424
*{margin:0;padding:0;box-sizing:border-box}
@@ -54,20 +54,28 @@
5454
.post-card p{margin:0;color:var(--text-soft);font-size:0.9rem}
5555
.post-card .date{color:var(--text-muted);font-size:0.8rem}
5656
footer{background:#0f172a;color:#94a3b8;padding:28px 0;text-align:center;font-size:0.8rem}
57-
footer a{color:#94a3b8}</style>
57+
footer a{color:#94a3b8}
58+
@media(max-width:760px){
59+
.nav{padding:12px 0}
60+
.nav .container{gap:12px;flex-wrap:nowrap}
61+
.nav-links{display:none}
62+
.nav-logo{margin-right:auto}
63+
.nav-btn{padding:7px 12px}
64+
article{padding-top:96px}
65+
}</style>
5866
</head>
5967
<body>
6068
<nav class="nav"><div class="container"><a href="/en/" class="nav-logo">Fun<span>ASR</span></a><div class="nav-links"><a href="/en/#capabilities">Capabilities</a><a href="/en/#usage">How to Use</a><a href="/en/#benchmark">Benchmark</a><a href="/en/#demo">Demo</a><a href="https://modelscope.github.io/FunASR/" target="_blank">Docs</a><a href="/en/quickstart.html">Quickstart</a><a href="/en/models.html">Models</a><a href="/en/ecosystem.html">Ecosystem</a><a href="/en/blog/">Blog</a><a href="/en/vs-whisper.html">vs Whisper</a><a href="/en/donors.html">Thanks</a></div><a href="https://www.funasr.com/blog/funasr-llama-cpp-whisper-cpp-alternative.html" style="font-size:0.83rem;font-weight:500;color:var(--text-soft)">中文</a><a href="https://github.com/modelscope/FunASR" target="_blank" class="nav-btn">GitHub ★</a></div></nav>
6169
<article><div class="container">
6270
<h1>FunASR on llama.cpp — a whisper.cpp Alternative for Chinese ASR (CPU, no Python)</h1>
63-
<p class="post-meta">2026-06-20 · FunASR Team</p>
71+
<p class="post-meta">2026-06-20 · Updated 2026-08-15 · FunASR Team</p>
6472

6573
<p><a href="https://github.com/ggml-org/whisper.cpp" target="_blank">whisper.cpp</a> is the de-facto on-device ASR runtime — a single self-contained binary, runs on CPU, zero dependencies. But Whisper is comparatively weak on <strong>Chinese</strong>. Now <strong>FunASR has a llama.cpp / GGUF runtime</strong>: the same download-and-run experience — <strong>one static binary, no Python, built-in VAD, any audio format</strong> — and it is about <strong>2.7× more accurate than whisper.cpp on Chinese CPU</strong>.</p>
6674

67-
<p style="background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:12px 16px"><strong>👉 Just want the download?</strong> Prebuilt binaries for Linux/macOS/Windows plus a one-page quickstart and benchmarks are on the <a href="/en/llama-cpp.html">Run FunASR on CPU (llama.cpp) page</a>.</p>
75+
<p style="background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:12px 16px"><strong>👉 Just want the download?</strong> v0.2.0 ships nine Linux, macOS, and Windows archives with SHA-256 values. Use the <a href="/en/deploy/llama-cpp.html">llama.cpp / GGUF deployment page</a> for the download matrix, quickstart, and known limitations.</p>
6876
<h2>Run it in 3 steps (all verified)</h2>
6977
<pre># 1. Download a prebuilt binary (linux-x64 / linux-arm64 / macos-arm64 / windows-x64)
70-
wget https://github.com/modelscope/FunASR/releases/download/runtime-llamacpp-v0.1.9/funasr-llamacpp-linux-x64-vulkan.tar.gz
78+
wget https://github.com/modelscope/FunASR/releases/download/runtime-llamacpp-v0.2.0/funasr-llamacpp-linux-x64-vulkan.tar.gz
7179
tar xzf funasr-llamacpp-linux-x64-vulkan.tar.gz
7280
# Windows Vulkan asset: funasr-llamacpp-windows-x64-vulkan.zip (run with --backend vulkan)
7381

@@ -90,7 +98,8 @@ <h2>What you get</h2>
9098
<ul>
9199
<li><strong>Built-in FSMN-VAD</strong>: automatic long-audio segmentation (`--vad fsmn-vad.gguf`); the bare binary reaches reference accuracy with no Python front end.</li>
92100
<li><strong>Any audio</strong>: wav / mp3 / flac, any sample rate / channels — resampled inside the binary.</li>
93-
<li><strong>Multi-platform prebuilts</strong>: Linux x64/arm64, macOS arm64, Windows x64, including Linux/Windows Vulkan and Windows CUDA acceleration packages (<a href="https://github.com/modelscope/FunASR/releases/tag/runtime-llamacpp-v0.1.9" target="_blank">Release</a>); one CMake command to build for others.</li>
101+
<li><strong>Multi-platform prebuilts</strong>: v0.2.0 ships nine Linux x64/arm64, macOS arm64, and Windows x64 archives, including Linux/Windows Vulkan and Windows CUDA packages (<a href="https://github.com/modelscope/FunASR/releases/tag/runtime-llamacpp-v0.2.0" target="_blank">Release</a>); use one CMake command to build for other targets.</li>
102+
<li><strong>Direct subtitle output</strong>: the Fun-ASR-Nano, SenseVoiceSmall, and Paraformer CLIs can emit timestamped SRT subtitles with <code>--srt</code>.</li>
94103
</ul>
95104

96105
<h2>vs whisper.cpp on Chinese CPU</h2>

web-pages/product-site/tests/browser/product-site.spec.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,3 +200,25 @@ test('reduced motion disables smooth scrolling', async ({ page }) => {
200200
const behavior = await page.locator('html').evaluate((node) => getComputedStyle(node).scrollBehavior);
201201
expect(behavior).toBe('auto');
202202
});
203+
204+
test('llama.cpp blog heading clears fixed navigation on mobile', async ({ page }, testInfo) => {
205+
await page.setViewportSize({ width: 390, height: 844 });
206+
await page.goto('/blog/funasr-llama-cpp-whisper-cpp-alternative.html');
207+
208+
const layout = await page.evaluate(() => {
209+
const navigation = document.querySelector<HTMLElement>('nav.nav');
210+
const heading = document.querySelector<HTMLElement>('h1');
211+
return {
212+
overflow: document.documentElement.scrollWidth - document.documentElement.clientWidth,
213+
navigationBottom: navigation?.getBoundingClientRect().bottom ?? 0,
214+
headingTop: heading?.getBoundingClientRect().top ?? 0,
215+
};
216+
});
217+
218+
expect(layout.overflow).toBeLessThanOrEqual(1);
219+
expect(layout.headingTop).toBeGreaterThanOrEqual(layout.navigationBottom + 16);
220+
await page.screenshot({
221+
path: testInfo.outputPath('llama-cpp-blog-mobile.png'),
222+
fullPage: true,
223+
});
224+
});

web-pages/product-site/tests/test_legacy.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,3 +156,25 @@ def test_v140_release_pages_are_bilingual_indexed_and_precise():
156156
assert f'/en/blog/{slug}' in en_index
157157
assert f'https://www.funasr.com/blog/{slug}' in sitemap
158158
assert f'https://www.funasr.com/en/blog/{slug}' in sitemap
159+
160+
161+
def test_llama_cpp_blog_points_directly_to_current_runtime_release():
162+
pages = {
163+
'zh': LEGACY / 'blog' / 'funasr-llama-cpp-whisper-cpp-alternative.html',
164+
'en': LEGACY / 'en' / 'blog' / 'funasr-llama-cpp-whisper-cpp-alternative.html',
165+
}
166+
expected_routes = {
167+
'zh': '/deploy/llama-cpp.html',
168+
'en': '/en/deploy/llama-cpp.html',
169+
}
170+
171+
for language, path in pages.items():
172+
text = path.read_text(encoding='utf-8')
173+
soup = BeautifulSoup(text, 'html.parser')
174+
hrefs = {link.get('href') for link in soup.select('a[href]')}
175+
176+
assert 'runtime-llamacpp-v0.2.0' in text
177+
assert 'runtime-llamacpp-v0.1.9' not in text
178+
assert expected_routes[language] in hrefs
179+
assert '2026-08-15' in soup.select_one('script[type="application/ld+json"]').string
180+
assert '**' not in soup.select_one('article').get_text()

0 commit comments

Comments
 (0)