diff --git a/web-pages/product-site/content/legacy-manifest.json b/web-pages/product-site/content/legacy-manifest.json index 81e180669..b62d5885a 100644 --- a/web-pages/product-site/content/legacy-manifest.json +++ b/web-pages/product-site/content/legacy-manifest.json @@ -16,6 +16,7 @@ "blog/funasr-v1-3-27-language-metadata-vllm-fallback.html": "f1dbbc70fdd630c8a3953bda3b3a1697412b3c4bc25fc3969385583cd47874d2", "blog/funasr-v1-3-28-realtime-websocket-subtitles.html": "46a8d4c310e7f76da632d558d057484f48b345d9616873e1416fc68fcb9e9633", "blog/funasr-v1-4-0-pypi-release.html": "b5d05ac559435837caf2c3ea2531b581541d283bbecd7c4f3c1d367a2fe81c38", + "blog/funasr-v1-4-14-portable-source-release.html": "a14c6fab50d2a9cc4cc1cfd95638a5d45abd90e7d23a727703ecb3a3800a807e", "blog/funasr-v1-4-3-pypi-release.html": "6bd73c114653a12e0f8078c4cc7cc89f44cff53f106e12c79b7e6b78b36d922f", "blog/funasr-v1-4-5-pypi-llama-cpp-release.html": "14ab5d23f09f61f6bbeb924796e3be9ab53ce87cac5c968322f625c789ae3a8b", "blog/funasr-vs-faster-whisper-chinese.html": "bfe9bb8017be80c7e7f4587726f43f6064f1dc4c65e39788f836fdfb0c9789f7", @@ -23,7 +24,7 @@ "blog/funclip-v2-1-0-video-clipping-release.html": "88f6c44e5332d1746c4db0fc97d755ef82f12e46d8f1c1c0ad9351152ff9dfc1", "blog/funclip-v2-2-0-moss-speaker-clipping.html": "0d50747d3992301fb3062ad2cdf903bd427bec3db1f1e4fab1f06de207928bc9", "blog/generate-subtitles-srt-vtt-from-audio-video.html": "f1133235673d441cc654310581f59a319f182314ab7c0b0824af87da9f4a0591", - "blog/index.html": "0698ce3d08c4b61c1e1e3f94142d3564581d162765081437229d2c4f3fff5ff7", + "blog/index.html": "8cbf35e65aff908023ac299ddef94f157cf57235b271d79da59c59f7146d1500", "blog/japanese-speech-recognition.html": "399f5ce84e68ac00854bdf70b52b1cde6795efca7c800fd6492035a37a7c1b68", "blog/lightweight-speech-recognition-cpu.html": "d6270066222ed5baef0df108e6a4155f4a87bb5482169f23f218794d371f3281", "blog/punctuation-restoration-python.html": "6cd26e03bf75b4343afd7b351c2681ebd513b058fb549c5888802be9ff3a1229", @@ -55,6 +56,7 @@ "en/blog/funasr-v1-3-27-language-metadata-vllm-fallback.html": "ffaca54d75c561bda82b6063b27f2a81d810f4f0e89030b6be7a64696ada44b4", "en/blog/funasr-v1-3-28-realtime-websocket-subtitles.html": "233534cb4306387f1a9a695886a5f515679dff591d04b90827f41a668d7f7ada", "en/blog/funasr-v1-4-0-pypi-release.html": "76fce7c27ad057d160236541369fa6c6d9f143ad03754fd3269ff2c4e32908f9", + "en/blog/funasr-v1-4-14-portable-source-release.html": "04794529170fd87d9af3b8fc94b3d930f4191ab91a458b2283dbd092f1f51e10", "en/blog/funasr-v1-4-3-pypi-release.html": "b9007b4e74de38a4a7a38ef6f3659336c16c2159d454f290e7e702a4d59cc4d5", "en/blog/funasr-v1-4-5-pypi-llama-cpp-release.html": "b5944d0d3dc7f845d6e8de155958ded3f0196571a65c9e11b5b01a7f9ea7ed6b", "en/blog/funasr-vs-faster-whisper-chinese.html": "abf31d3827dfba9b31ccd4e76229de9e4bfff00ab8bcee33bd718c88249630f4", @@ -62,7 +64,7 @@ "en/blog/funclip-v2-1-0-video-clipping-release.html": "229baf59adf2c3290541d9b3c8a6243992406ba84b712714e9d14599205cb1d4", "en/blog/funclip-v2-2-0-moss-speaker-clipping.html": "644159267f0fa4e7aab9d0eda98f68cd2b6365a9985038b639c626a5ea5ea7e8", "en/blog/generate-subtitles-srt-vtt-from-audio-video.html": "1530d4b9e94820a0b60d801e8d1c19b7aeb031b2f2b76c092657392e47706c6d", - "en/blog/index.html": "fc46e28078b49173d9f124afc51bed070b94b3738850b077a7fffcdaa965bc3a", + "en/blog/index.html": "622a53a47a49834e1720fe1cad96ebb4768248324ef41ea528dc1c0c05145e41", "en/blog/japanese-speech-recognition.html": "c476adcc2be1ed7c19e2345cc91b8ee6a0e04efd794b9b6476dd5d9b3a2c8b04", "en/blog/lightweight-speech-recognition-cpu.html": "0e02c0e0853b12613d32c250f593c05c2052f18231207b63ee01d6e6600a86f7", "en/blog/punctuation-restoration-python.html": "d6e30049f48d9dc6e6bc22eb567830013e4161eca51215616738b675dd1ffc40", @@ -108,7 +110,7 @@ "models.html": "01209193cd48363f00789061fbfad0a2b387582e2507ae5e875687773ef52fbc", "quickstart.html": "a543bf07c2cfc9a69ef3831f15c9e9d3e571a826a73cf7e4bdc8e9eb7b910254", "robots.txt": "1305b0f680b3e9f73b01301dc474423230dffab85731a379a694f30c73c07f2d", - "sitemap.xml": "ed91fc0211b48458b77c56c1e600d055c013a6bb4b461821c3ec78dcff4ac26a", + "sitemap.xml": "4ea239675f5966ec8bc1408300c6aca472e83974fedd78d48c021e2b21822b7e", "static/liveplayer/liveplayer-component.min.js": "ea10fda35574cc3a77a3e7187095467d1a409009a2d39690051d33d0e7055d30", "static/liveplayer/liveplayer-lib.min.js": "ad67b4e1188c586ec218674a6db9968daf71ed4fbc262258f061c1f931d54250", "static/offline/index.html": "868781c621ddabe5d3f088d6b739e0c08e6cdc150587af6515cc323852018e62", diff --git a/web-pages/product-site/legacy/blog/funasr-v1-4-14-portable-source-release.html b/web-pages/product-site/legacy/blog/funasr-v1-4-14-portable-source-release.html new file mode 100644 index 000000000..b32b8229f --- /dev/null +++ b/web-pages/product-site/legacy/blog/funasr-v1-4-14-portable-source-release.html @@ -0,0 +1,64 @@ + + + + + + FunASR v1.4.14:可移植源码包、MOSS 入口与十平台运行时 | FunASR + + + + + + + + + + + + + + + + + + +
+

FunASR v1.4.14:可移植源码包、MOSS 入口与十平台运行时

+ + FunASR v1.4.14 发布视觉图 +

FunASR v1.4.14 让 Git archive 和源码安装路径更可移植,同时补齐 MOSS-Transcribe-Diarize 在模型、部署与服务文档中的发现入口,并延续更稳健的实时服务默认值。

+ +

安装与源码边界

+
python -m pip install -U "funasr==1.4.14"
+

正式包位于 PyPI 1.4.14。wheel SHA-256 为 8f1bceeb183359fb44402dea16200415a838da314742aa0c80752efe0e229e6c,sdist SHA-256 为 5dd3ab30f6f2f26207992173a1da54d2f0f3f74f64d0823a05a9eab9f93a704f

+
源码归档修复面向 Git archive 与 source install 的可移植性,不改变 wheel 用户的安装命令;MOSS-Transcribe-Diarize 仍是第三方模型路径,应按对应部署文档验证模型、显存与服务边界。
+ +

发布验证

+

签名标签 v1.4.14 精确指向 a23946a8b3e9146f9bf80e18f768298f0cd000b7。审计重新执行 210 项发布、文档与站点回归,并通过 compileall、PEP 517 构建、Twine、隔离 wheel 安装和 public PyPI 回源校验;重建 wheel/sdist 的解包内容与公网制品零差异。

+ +

12 个 v1.4.14 资产与 Blackwell 独立运行时

+

v1.4.14 Release 固定复用 runtime-llamacpp-v0.2.6。v1.4.14 页面共 12 个资产:2 个 Python 制品、9 个镜像运行时和 1 份校验清单;第 10 个 Blackwell 运行时保留在独立运行时发布页:

+ +
sha256sum -c SHA256SUMS
+

按硬件选择、启动命令、烟测和已知边界见 llama.cpp 工业部署页;GPU 服务可继续参考 vLLM 部署页

+ +

从固定版本和可校验资产开始,在目标硬件与真实业务音频上复测后再上线。

查看 v1.4.14 的 12 个资产
+
+ + + diff --git a/web-pages/product-site/legacy/blog/index.html b/web-pages/product-site/legacy/blog/index.html index 9627c3f37..f41d33975 100644 --- a/web-pages/product-site/legacy/blog/index.html +++ b/web-pages/product-site/legacy/blog/index.html @@ -42,13 +42,14 @@ .post-card p{margin:0;color:var(--text-soft);font-size:0.9rem} .post-card .date{color:var(--text-muted);font-size:0.8rem} .launch-feature{max-width:800px;margin:104px auto 0;padding:0 24px}.launch-feature a{display:grid;grid-template-columns:1fr auto;align-items:center;gap:20px;border:1px solid #bbf7d0;border-left:4px solid #047857;border-radius:8px;background:#f0fdf4;padding:20px 22px;color:var(--text)}.launch-feature a:hover{border-color:#047857;text-decoration:none}.launch-feature .date{font-size:.8rem;color:#047857;font-weight:600}.launch-feature h2{border:0;padding:0;margin:3px 0 5px;font-size:1.2rem}.launch-feature p{margin:0;font-size:.9rem}.launch-feature .action{font-weight:700;color:#1d4ed8;white-space:nowrap} -.previous-release{padding-top:16px}.previous-release .container{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.previous-release .post-card{margin-bottom:0} +.previous-release{padding-top:16px}.previous-release .container{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.previous-release .post-card{margin-bottom:0}.ecosystem-feature{padding-top:16px}.ecosystem-feature .post-card{margin-bottom:0} footer{background:#0f172a;color:#94a3b8;padding:28px 0;text-align:center;font-size:0.8rem} footer a{color:#94a3b8} @media(max-width:900px){.nav-links{display:none}.nav .container{gap:16px}.nav-logo{margin-right:auto}.launch-feature a{grid-template-columns:1fr}.launch-feature .action{white-space:normal}.previous-release .container{grid-template-columns:1fr}}
2026-08-31 · FunClip v2.2.0

MOSS 多说话人转写进入 FunClip:从一句话到带说话人的片段

通过经真实双说话人音频验证的 vLLM 路径,把第三方 MOSS 模型的段级时间戳和说话人标签直接用于 SRT 与说话人片段导出。

查看部署与剪辑边界 →
-
2026-08-28 · 正式 Release

FunASR v1.4.5:更轻的 Python 推理与九平台 llama.cpp 运行时

默认安装不再硬依赖 torchaudio,可选 kaldi-native-fbank,并提供 PyPI 包、九平台运行时与 SHA-256 清单。

2026-08-21 · 正式 Release

FunASR v1.4.3:可选 Silero VAD 与大规模固定 K 说话人聚类

新增毫秒级 Silero VAD 适配器,降低已知说话人数的大规模聚类内存压力,并提供 12 个带 SHA-256 的发布资产。

2026-07-31 · 正式 Release

FunASR v1.4.0:更完整的 PyPI 安装包与更安全的 AutoModel 参数

修复 SenseVoice 与 RWKV-BAT 包数据,提前拒绝 vda_model 误拼写,并提供 12 个带 SHA-256 的发布资产。

2026-08-03 · 生态集成

Subtitle Edit 5.2:Fun-ASR Nano / SenseVoice 本地视频字幕

在 Windows、macOS 与 Linux 的成熟字幕工作区中直接选择本地 ASR 引擎,支持 Q4、Q8、F16。

+
2026-09-04 · 正式 Release

FunASR v1.4.14:可移植源码包、MOSS 入口与十平台运行时

修复 Git archive 与源码安装的可移植性,补齐 MOSS 服务入口,并提供 PyPI 包、十平台运行时与 SHA-256 清单。

2026-08-28 · 正式 Release

FunASR v1.4.5:更轻的 Python 推理与九平台 llama.cpp 运行时

默认安装不再硬依赖 torchaudio,可选 kaldi-native-fbank,并提供 PyPI 包、九平台运行时与 SHA-256 清单。

2026-08-21 · 正式 Release

FunASR v1.4.3:可选 Silero VAD 与大规模固定 K 说话人聚类

新增毫秒级 Silero VAD 适配器,降低已知说话人数的大规模聚类内存压力,并提供 12 个带 SHA-256 的发布资产。

2026-07-31 · 正式 Release

FunASR v1.4.0:更完整的 PyPI 安装包与更安全的 AutoModel 参数

修复 SenseVoice 与 RWKV-BAT 包数据,提前拒绝 vda_model 误拼写,并提供 12 个带 SHA-256 的发布资产。

+
2026-08-03 · 生态集成

Subtitle Edit 5.2:Fun-ASR Nano / SenseVoice 本地视频字幕

在 Windows、macOS 与 Linux 的成熟字幕工作区中直接选择本地 ASR 引擎,支持 Q4、Q8、F16。

FunASR 技术博客

2026-06-23

语音识别带时间戳(字级 timestamps)Python 实战:每个字精确到毫秒

FunASR Paraformer 原生字级时间戳:每个字带 [起始毫秒,结束毫秒],一次调用即有。可做逐字高亮、点击跳转、字幕对齐。附真实实测+配对代码。

2026-06-23

标点恢复 Python 实战:给无标点文本/ASR 结果自动加标点

FunASR ct-punc 开源标点恢复,中英双语,3 行 Python 补全 ,。?(英文还做句首大写),也能一行挂到 ASR 上。附真实实测。

2026-06-22

中文语音识别(普通话)Python 实战:用 FunASR 又快又准

FunASR 专为中文打造:默认旗舰 Fun-ASR-Nano(CER 8.06%),CPU 用 SenseVoice(7.81%)/ Paraformer(10.18%,时间戳/热词),都远好于 Whisper(~20%)。3 行 Python。

2026-06-22

自托管语音转文字:Google / AWS / Azure 云语音 API 的免费开源替代

开源免费(MIT)、本地推理、不按分钟计费、数据不出内网、中文强,OpenAI 兼容改 base_url 即可迁移。附实测代码 + FunASR vs 云 API 对比 + 成本分析。

2026-06-22

Python 语音活动检测(VAD):检测语音、去静音、按停顿切分音频

FunASR fsmn-vad 3 行代码返回每段语音的起止毫秒。实测 13s 录音 0.12s 切成 2 段、去除 18% 静音;可去静音、切分长录音、给 Whisper 等做预处理防幻觉。

2026-06-22

日语语音识别:SenseVoice 一个模型搞定日语转写+标点+情感

同一段日语音频实测:SenseVoice 写对同音字 転売、自动加标点,Whisper-small 误为 天売、无标点。原生 ja 支持 + 自动语种识别 + 情感事件,3 行 Python。

2026-06-23

自托管替代 Deepgram / AssemblyAI

开源免费、自托管、音频不出本地、中文领先,自带 OpenAI 兼容 API——客户端只改 base_url 即可替代按分钟付费的云 STT。

2026-06-23

选哪个 FunASR 模型?Nano vs MLT-Nano vs SenseVoice vs Paraformer

模型选型表 + 场景代码:中英日及中文方言/口音选旗舰 Nano,31 语种选独立 MLT-Nano,CPU 再选 SenseVoice 或 Paraformer。

2026-06-22

轻量语音识别:CPU 上约 250MB 跑中文 ASR

单二进制 + 254MB q8 模型,无需 GPU/Python,CPU 0.16s,中文 CER 7.99%——比 whisper.cpp small 还小且准 3 倍。

2026-06-21

粤语语音识别:SenseVoice 原生支持粤语口语(Whisper 会转成普通话)

同一段粤语音频实测:SenseVoice 保留 呢/唔/嘅,Whisper 转成普通话书面语。原生 yue 支持 + 自动语种识别,3 行 Python。

2026-06-21

FunASR vs faster-whisper:中文与粤语实测对比

粤语被 faster-whisper 误判为普通话、日语同音字错;SenseVoice 原生支持粤语+语种识别,中文 CER 低约 2.7 倍。实测。

2026-06-20

FunASR 跑进 llama.cpp:中文 ASR 的 whisper.cpp 替代品(CPU/零 Python)

单个自包含二进制、内置 VAD、吃任意音频,下载即用转写中文;中文 CPU 上比 whisper.cpp 准约 2.7 倍。3 步实测。

2026-06-18

Python 语音转文字:用 FunASR 本地免费转写音频

几行 Python 把音频转成文本,带时间戳/说话人/批量;本地、免费、无 API key、中文强。

2026-06-18

用 FunASR 自动生成字幕:音频/视频一键出 SRT 和 VTT

一行命令出 SRT,Python 同时导出 VTT,带说话人和真实时间戳;本地、免费、中文强。

2026-06-18

自托管 OpenAI Whisper API 替代:FunASR 起兼容 /v1/audio/transcriptions 服务

funasr-server 暴露 OpenAI 兼容接口,OpenAI SDK 只改 base_url 就能用;本地、免费、隐私、中文更准。

2026-06-18

用 FunASR 命令行转写音频:文本/JSON/SRT 字幕

一行命令出文字/字幕/JSON,--spk 带说话人;还能 funasr-server 起 OpenAI 兼容 API。

2026-06-17

用 FunASR 转写超长音频:1 小时一次搞定

Whisper 限 30 秒,FunASR 内置 VAD 一次吃下任意时长;实测 13 分钟 4.3 秒转完(186x)。

2026-06-17

用 FunASR 实现实时流式语音识别(边说边出字)

600ms 级低延迟流式 ASR:分块+cache 边说边出字,含 2-pass(流式+离线)最佳实践。

2026-06-17

超越转写:用 SenseVoice 识别语言、情感与声学事件

一次非自回归前向同时输出转写+语种+情感+音频事件,Whisper 做不到的四合一。

2026-06-17

用 FunASR 做说话人分离:谁在何时说了什么

一次 generate 调用同时输出转写+说话人标签+时间戳,替代 pyannote+Whisper,无需 HF 授权。

2026-06-16

FunASR vs Whisper 实测对比:谁更快更准

184 中文文件 H100 实测:SenseVoice 169.6x、CER 7.81%,完整速度+准确率数据。

2026-06-16

Fun-ASR-Nano 使用指南:800M 端到端语音识别大模型

主力旗舰,中英日 + 7 大中文方言/26 种口音,热词/流式/说话人分离;31 语种请用 MLT-Nano。

2026-06-16

SenseVoice 部署指南:五语种识别、情感与音频事件

3 行代码跑通多语言识别,含语种/情感/事件检测、VAD、GPU/CPU。

更多:快速上手 · 模型

diff --git a/web-pages/product-site/legacy/en/blog/funasr-v1-4-14-portable-source-release.html b/web-pages/product-site/legacy/en/blog/funasr-v1-4-14-portable-source-release.html new file mode 100644 index 000000000..69fa4f19a --- /dev/null +++ b/web-pages/product-site/legacy/en/blog/funasr-v1-4-14-portable-source-release.html @@ -0,0 +1,64 @@ + + + + + + FunASR v1.4.14: Portable Source Archives, MOSS Discovery, and Ten Runtimes | FunASR + + + + + + + + + + + + + + + + + + +
+

FunASR v1.4.14: Portable Source Archives, MOSS Discovery, and Ten Runtimes

+ + FunASR v1.4.14 release visual +

FunASR v1.4.14 makes Git archives and source installs portable, completes MOSS-Transcribe-Diarize discovery across model, deployment, and service docs, and keeps safer realtime serving defaults.

+ +

Install and source boundaries

+
python -m pip install -U "funasr==1.4.14"
+

The stable distributions are on PyPI 1.4.14. The wheel SHA-256 is 8f1bceeb183359fb44402dea16200415a838da314742aa0c80752efe0e229e6c; the sdist SHA-256 is 5dd3ab30f6f2f26207992173a1da54d2f0f3f74f64d0823a05a9eab9f93a704f.

+
The source fix targets portable Git archives and source installs; it does not change the wheel install command. MOSS-Transcribe-Diarize remains a third-party model path whose model, memory, and service boundaries should be validated with its deployment guide.
+ +

Release verification

+

The signed v1.4.14 tag resolves exactly to a23946a8b3e9146f9bf80e18f768298f0cd000b7. The audit reran 210 release, documentation, and site regressions plus compileall, PEP 517 builds, Twine, an isolated wheel install, and public PyPI round trips. Extracted contents from the rebuilt wheel and sdist had zero differences from the public artifacts.

+ +

12 v1.4.14 assets plus a separate Blackwell runtime

+

The v1.4.14 Release pins runtime-llamacpp-v0.2.6. Its 12 assets are two Python distributions, 9 mirrored runtimes, and one checksum manifest; the tenth, Blackwell runtime remains on the separate runtime release:

+ +
sha256sum -c SHA256SUMS
+

Use the llama.cpp production deployment page for hardware selection, launch commands, smoke tests, and known boundaries. GPU API deployments can continue with the vLLM guide.

+ +

Start from a pinned version and verified assets, then revalidate on the target hardware with representative audio before rollout.

Open all 12 v1.4.14 assets
+
+ + + diff --git a/web-pages/product-site/legacy/en/blog/index.html b/web-pages/product-site/legacy/en/blog/index.html index 2191d5a2b..0a304c83f 100644 --- a/web-pages/product-site/legacy/en/blog/index.html +++ b/web-pages/product-site/legacy/en/blog/index.html @@ -42,13 +42,14 @@ .post-card p{margin:0;color:var(--text-soft);font-size:0.9rem} .post-card .date{color:var(--text-muted);font-size:0.8rem} .launch-feature{max-width:800px;margin:104px auto 0;padding:0 24px}.launch-feature a{display:grid;grid-template-columns:1fr auto;align-items:center;gap:20px;border:1px solid #bbf7d0;border-left:4px solid #047857;border-radius:8px;background:#f0fdf4;padding:20px 22px;color:var(--text)}.launch-feature a:hover{border-color:#047857;text-decoration:none}.launch-feature .date{font-size:.8rem;color:#047857;font-weight:600}.launch-feature h2{border:0;padding:0;margin:3px 0 5px;font-size:1.2rem}.launch-feature p{margin:0;font-size:.9rem}.launch-feature .action{font-weight:700;color:#1d4ed8;white-space:nowrap} -.previous-release{padding-top:16px}.previous-release .container{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.previous-release .post-card{margin-bottom:0} +.previous-release{padding-top:16px}.previous-release .container{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.previous-release .post-card{margin-bottom:0}.ecosystem-feature{padding-top:16px}.ecosystem-feature .post-card{margin-bottom:0} footer{background:#0f172a;color:#94a3b8;padding:28px 0;text-align:center;font-size:0.8rem} footer a{color:#94a3b8} @media(max-width:900px){.nav-links{display:none}.nav .container{gap:16px}.nav-logo{margin-right:auto}.launch-feature a{grid-template-columns:1fr}.launch-feature .action{white-space:normal}.previous-release .container{grid-template-columns:1fr}}
August 31, 2026 · FunClip v2.2.0

MOSS Multi-Speaker Transcription in FunClip: From One Prompt to Speaker Clips

Use the vLLM path validated on real two-speaker audio to turn the third-party MOSS model's segment timestamps and speaker labels into SRT and speaker-specific clip exports.

Read the deployment and clipping boundaries →
-
August 28, 2026 · Stable release

FunASR v1.4.5: Lighter Python Inference and Nine llama.cpp Runtimes

No hard torchaudio dependency in the default install, optional kaldi-native-fbank, plus PyPI packages, nine runtimes, and SHA-256 checksums.

August 21, 2026 · Stable release

FunASR v1.4.3: Optional Silero VAD and Fixed-K Speaker Clustering

Millisecond Silero VAD segments, lower-memory clustering for large known-speaker workloads, and 12 SHA-256-addressed release assets.

July 31, 2026 · Stable release

FunASR v1.4.0: Complete PyPI Packages and Safer AutoModel Arguments

SenseVoice and RWKV-BAT package-data fixes, an early vda_model typo guard, and 12 SHA-256-addressed release assets.

August 3, 2026 · Ecosystem

Subtitle Edit 5.2: Local Video Subtitles with Fun-ASR Nano or SenseVoice

Select a local ASR engine inside a mature subtitle workspace on Windows, macOS, or Linux, with Q4, Q8, and F16 models.

+
September 4, 2026 · Stable release

FunASR v1.4.14: Portable Source Archives, MOSS Discovery, and Ten Runtimes

Portable Git archives and source installs, clearer MOSS service discovery, plus PyPI packages, ten runtimes, and SHA-256 checksums.

August 28, 2026 · Stable release

FunASR v1.4.5: Lighter Python Inference and Nine llama.cpp Runtimes

No hard torchaudio dependency in the default install, optional kaldi-native-fbank, plus PyPI packages, nine runtimes, and SHA-256 checksums.

August 21, 2026 · Stable release

FunASR v1.4.3: Optional Silero VAD and Fixed-K Speaker Clustering

Millisecond Silero VAD segments, lower-memory clustering for large known-speaker workloads, and 12 SHA-256-addressed release assets.

July 31, 2026 · Stable release

FunASR v1.4.0: Complete PyPI Packages and Safer AutoModel Arguments

SenseVoice and RWKV-BAT package-data fixes, an early vda_model typo guard, and 12 SHA-256-addressed release assets.

+
August 3, 2026 · Ecosystem

Subtitle Edit 5.2: Local Video Subtitles with Fun-ASR Nano or SenseVoice

Select a local ASR engine inside a mature subtitle workspace on Windows, macOS, or Linux, with Q4, Q8, and F16 models.

FunASR Blog

2026-06-23

Speech-to-Text with Word/Character-Level Timestamps in Python

FunASR Paraformer gives native character timestamps: every char has [start_ms, end_ms] in one call. Build word highlighting, click-to-seek, subtitle alignment. Real output + pairing code.

2026-06-23

Punctuation Restoration in Python — Add Punctuation to Text / ASR Output

FunASR ct-punc: open-source bilingual (zh+en) punctuation restoration. 3 lines of Python to add ,。? (and capitalize English), or attach to ASR in one line. Real output.

2026-06-22

Chinese (Mandarin) Speech Recognition in Python — Fast & Accurate with FunASR

Purpose-built for Chinese: default flagship Fun-ASR-Nano (CER 8.06%), with SenseVoice (7.81%) / Paraformer (10.18%, timestamps/hotwords) for CPU — all far better than Whisper (~20%).

2026-06-22

Self-Hosted Speech-to-Text — Free Alternative to Google / AWS / Azure Cloud Speech APIs

Open-source (MIT), local inference, no per-minute billing, audio stays on your network, strong Chinese, OpenAI-compatible (migrate via base_url). Runnable code + FunASR vs cloud comparison + cost analysis.

2026-06-22

Voice Activity Detection in Python — Detect Speech, Remove Silence, Split Audio

FunASR fsmn-vad returns millisecond speech spans in 3 lines. Measured: a 13s clip split into 2 segments in 0.12s, 18% silence removed. Trim silence, split long audio, preprocess Whisper to cut hallucinations.

2026-06-22

Japanese Speech Recognition in Python — SenseVoice: Transcription + Punctuation + Emotion in One Pass

Real side-by-side on one Japanese clip: SenseVoice writes 転売 correctly and adds punctuation; Whisper-small gives 天売 with none. Native ja support + auto language ID + emotion/events, 3 lines of Python.

2026-06-23

Self-Hosted Deepgram / AssemblyAI Alternative

Open-source, free, self-hosted, audio stays local, Chinese-leading, with an OpenAI-compatible API — replace per-minute cloud STT by changing base_url.

2026-06-23

Which FunASR Model? Nano vs MLT-Nano vs SenseVoice vs Paraformer

A decision table with code: flagship Nano for zh/en/ja plus Chinese dialects/accents, separate MLT-Nano for 31 languages, and CPU choices SenseVoice or Paraformer.

2026-06-22

Lightweight Speech Recognition: Chinese ASR in ~250MB on CPU

One binary + a 254MB q8 model, no GPU/Python, 0.16s on CPU, 7.99% CER — smaller than whisper.cpp small and ~3x more accurate.

2026-06-21

Cantonese Speech Recognition in Python — SenseVoice Keeps Real Cantonese (Whisper Doesn't)

Real side-by-side on one Cantonese clip: SenseVoice keeps 呢/唔/嘅, Whisper rewrites to Mandarin. Native yue support + auto language ID, 3 lines of Python.

2026-06-21

FunASR vs faster-whisper: Chinese & Cantonese Compared

faster-whisper mislabels Cantonese as Mandarin + Japanese homophone errors; SenseVoice handles Cantonese natively, ~2.7x lower CER on Chinese.

2026-06-20

FunASR on llama.cpp — a whisper.cpp Alternative for Chinese ASR (CPU, no Python)

One self-contained binary, built-in VAD, any audio — download and transcribe Chinese; ~2.7x more accurate than whisper.cpp on CPU.

2026-06-18

Speech to Text in Python with FunASR

Transcribe audio in a few lines of Python — timestamps, speakers, batching. Local, free, no API key.

2026-06-18

Auto-Generate Subtitles (SRT & VTT) from Audio or Video with FunASR

One command for SRT, Python for VTT too, with speaker labels and real timestamps. Local, free, strong on Chinese.

2026-06-18

Self-Hosted OpenAI Whisper API Alternative with FunASR

funasr-server exposes an OpenAI-compatible /v1/audio/transcriptions; the OpenAI SDK works by changing only base_url. Local, free, private.

2026-06-18

Transcribe Audio from the Command Line with FunASR

One command -> text/SRT/JSON, --spk for speakers; plus funasr-server for an OpenAI-compatible API.

2026-06-17

Transcribe Long Audio with FunASR: Hours in One Call

Whisper caps at 30s; FunASR ingests any length via built-in VAD - 13 min in 4.3s (186x).

2026-06-17

Real-Time Streaming Speech-to-Text with FunASR

~600ms low-latency streaming ASR with chunks + cache, plus the 2-pass (streaming + offline) best practice.

2026-06-17

Beyond Transcription: Language, Emotion & Audio Events with SenseVoice

Transcription + language + emotion + audio events in one pass — the 4-in-1 Whisper cannot do.

2026-06-17

Speaker Diarization with FunASR: Who Spoke When

Transcription + speaker labels + timestamps in one generate() call. A pyannote+Whisper alternative, no HF gated access.

2026-06-16

FunASR vs Whisper: Real Chinese ASR Benchmark

Measured on 184 Chinese files (H100): SenseVoice 169.6x, 7.81% CER — full speed & accuracy data.

2026-06-16

Fun-ASR-Nano Guide: 800M End-to-End ASR LLM

Flagship for zh/en/ja plus 7 Chinese dialect groups and 26 accents; choose MLT-Nano for 31 languages.

2026-06-16

SenseVoice Deployment Guide: Five-Language ASR, Emotion and Audio Events

Multilingual ASR in 3 lines, with language/emotion/event tags, VAD, GPU/CPU.

More: Quickstart · Models

diff --git a/web-pages/product-site/legacy/sitemap.xml b/web-pages/product-site/legacy/sitemap.xml index d9ea3c623..2eb1d2afa 100644 --- a/web-pages/product-site/legacy/sitemap.xml +++ b/web-pages/product-site/legacy/sitemap.xml @@ -14,6 +14,8 @@ https://www.funasr.com/en/blog/0.9weekly https://www.funasr.com/blog/funclip-v2-2-0-moss-speaker-clipping.html2026-08-310.9monthly https://www.funasr.com/en/blog/funclip-v2-2-0-moss-speaker-clipping.html2026-08-310.9monthly + https://www.funasr.com/blog/funasr-v1-4-14-portable-source-release.html2026-09-040.9monthly + https://www.funasr.com/en/blog/funasr-v1-4-14-portable-source-release.html2026-09-040.9monthly https://www.funasr.com/blog/funasr-v1-4-5-pypi-llama-cpp-release.html2026-08-280.9monthly https://www.funasr.com/en/blog/funasr-v1-4-5-pypi-llama-cpp-release.html2026-08-280.9monthly https://www.funasr.com/blog/funasr-v1-4-0-pypi-release.html2026-07-310.9monthly diff --git a/web-pages/product-site/tests/browser/product-site.spec.ts b/web-pages/product-site/tests/browser/product-site.spec.ts index 2dae89fda..8f8f5ed85 100644 --- a/web-pages/product-site/tests/browser/product-site.spec.ts +++ b/web-pages/product-site/tests/browser/product-site.spec.ts @@ -507,3 +507,31 @@ test('SenseVoice guides keep mobile navigation clear of the article', async ({ p fullPage: true, }); }); + +test('FunASR v1.4.14 release hashes wrap on mobile', async ({ page }, testInfo) => { + await page.setViewportSize({ width: 390, height: 844 }); + + for (const route of [ + '/blog/funasr-v1-4-14-portable-source-release.html', + '/en/blog/funasr-v1-4-14-portable-source-release.html', + ]) { + await page.goto(route); + await expect(page.locator('h1')).toContainText('v1.4.14'); + const layout = await page.evaluate(() => ({ + overflow: document.documentElement.scrollWidth - document.documentElement.clientWidth, + assetCount: document.body.innerText.includes('12'), + blackwell: document.querySelector( + 'a[href*="runtime-llamacpp-v0.2.6/funasr-llamacpp-windows-x64-cuda-blackwell.zip"]', + )?.href, + })); + + expect(layout.overflow).toBeLessThanOrEqual(1); + expect(layout.assetCount).toBe(true); + expect(layout.blackwell).toContain('runtime-llamacpp-v0.2.6'); + } + + await page.screenshot({ + path: testInfo.outputPath('v1.4.14-release-mobile.png'), + fullPage: true, + }); +}); diff --git a/web-pages/product-site/tests/test_output.py b/web-pages/product-site/tests/test_output.py index 54b8f3fea..8da5bf736 100644 --- a/web-pages/product-site/tests/test_output.py +++ b/web-pages/product-site/tests/test_output.py @@ -669,18 +669,79 @@ def test_v1_4_3_release_blog_is_bilingual_and_verifiable( assert f'https://www.funasr.com/{relative}' in urls +@pytest.mark.parametrize( + ('relative', 'peer', 'markers'), + ( + ( + 'blog/funasr-v1-4-14-portable-source-release.html', + '/en/blog/funasr-v1-4-14-portable-source-release.html', + ( + 'FunASR v1.4.14', + '可移植源码包', + 'MOSS-Transcribe-Diarize', + '12 个 v1.4.14 资产', + '9 个镜像运行时', + 'Blackwell 独立运行时', + 'SHA256SUMS', + ), + ), + ( + 'en/blog/funasr-v1-4-14-portable-source-release.html', + '/blog/funasr-v1-4-14-portable-source-release.html', + ( + 'FunASR v1.4.14', + 'Portable Source Archives', + 'MOSS-Transcribe-Diarize', + '12 v1.4.14 assets', + '9 mirrored runtimes', + 'separate Blackwell runtime', + 'SHA256SUMS', + ), + ), + ), +) +def test_v1_4_14_release_blog_is_bilingual_and_verifiable( + built_site, relative, peer, markers +): + soup = read_soup(built_site / relative) + text = soup.get_text(' ', strip=True) + + assert soup.select_one('link[rel="canonical"]')['href'].endswith('/' + relative) + assert soup.select_one(f'link[rel="alternate"][href$="{peer}"]') + assert soup.select_one('script[type="application/ld+json"]') + assert soup.select_one('a[href="https://github.com/modelscope/FunASR/releases/tag/v1.4.14"]') + assert soup.select_one('a[href="https://pypi.org/project/funasr/1.4.14/"]') + assert soup.select_one( + 'a[href="https://github.com/modelscope/FunASR/releases/tag/runtime-llamacpp-v0.2.6"]' + ) + assert soup.select_one( + 'a[href="https://github.com/modelscope/FunASR/releases/download/' + 'runtime-llamacpp-v0.2.6/funasr-llamacpp-windows-x64-cuda-blackwell.zip"]' + ) + for marker in markers: + assert marker in text + + root = ET.parse(built_site / 'sitemap.xml').getroot() + namespace = {'sitemap': 'http://www.sitemaps.org/schemas/sitemap/0.9'} + urls = { + item.findtext('sitemap:loc', namespaces=namespace) + for item in root.findall('sitemap:url', namespace) + } + assert f'https://www.funasr.com/{relative}' in urls + + @pytest.mark.parametrize( ('relative', 'feature_href', 'history_href'), ( ( 'blog/index.html', '/blog/funclip-v2-2-0-moss-speaker-clipping.html', - '/blog/funasr-v1-4-5-pypi-llama-cpp-release.html', + '/blog/funasr-v1-4-14-portable-source-release.html', ), ( 'en/blog/index.html', '/en/blog/funclip-v2-2-0-moss-speaker-clipping.html', - '/en/blog/funasr-v1-4-5-pypi-llama-cpp-release.html', + '/en/blog/funasr-v1-4-14-portable-source-release.html', ), ), ) @@ -696,6 +757,7 @@ def test_blog_index_features_latest_release_and_preserves_history( assert history assert history.select_one(f'a[href="{history_href}"]') history_text = history.get_text(' ', strip=True) + assert 'v1.4.14' in history_text assert 'v1.4.5' in history_text assert 'v1.4.3' in history_text assert 'v1.4.0' in history_text