From 7b74892b4d3bf0480c7b50ef752450fb1b4ebef6 Mon Sep 17 00:00:00 2001 From: LauraGPT <18321252+LauraGPT@users.noreply.github.com> Date: Fri, 18 Sep 2026 06:23:31 +0000 Subject: [PATCH 1/2] Publish FunASR 1.4.16 site guide Signed-off-by: LauraGPT <18321252+LauraGPT@users.noreply.github.com> --- .../product-site/content/legacy-manifest.json | 8 +-- web-pages/product-site/data/blog.json | 13 +++++ ...unasr-v1-4-16-submodel-device-release.html | 51 ++++++++++++++++++ web-pages/product-site/legacy/blog/index.html | 1 + ...unasr-v1-4-16-submodel-device-release.html | 51 ++++++++++++++++++ .../product-site/legacy/en/blog/index.html | 1 + web-pages/product-site/legacy/sitemap.xml | 2 + web-pages/product-site/tests/test_legacy.py | 53 +++++++++++++++++++ 8 files changed, 177 insertions(+), 3 deletions(-) create mode 100644 web-pages/product-site/legacy/blog/funasr-v1-4-16-submodel-device-release.html create mode 100644 web-pages/product-site/legacy/en/blog/funasr-v1-4-16-submodel-device-release.html diff --git a/web-pages/product-site/content/legacy-manifest.json b/web-pages/product-site/content/legacy-manifest.json index d15f8a36c..c89cc092c 100644 --- a/web-pages/product-site/content/legacy-manifest.json +++ b/web-pages/product-site/content/legacy-manifest.json @@ -24,6 +24,7 @@ "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": "d3724b2f5236ff30b1a409d2eed0b488bca75d6b448fca029c848c6dc605987c", + "blog/funasr-v1-4-16-submodel-device-release.html": "0d7d4f899246cd1f751ccb97bbbf6953cb60718ca1db03920996754731a4adad", "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", @@ -31,7 +32,7 @@ "blog/funclip-v2-1-0-video-clipping-release.html": "88f6c44e5332d1746c4db0fc97d755ef82f12e46d8f1c1c0ad9351152ff9dfc1", "blog/funclip-v2-2-0-moss-speaker-clipping.html": "db4ee351aefc1cb6997ed36b624cbc7e2527d81665635bd6169550d782a2e145", "blog/generate-subtitles-srt-vtt-from-audio-video.html": "0f38a121c9f8f1c9f9fb3de5276ba422cb899094b2077085814e577c636ffb48", - "blog/index.html": "bd04951ed11b340a6786c7b38a25beace6554f7269274c2d25d4228ebaaf2a0e", + "blog/index.html": "5be19287f692f4278d80174b8f0ebae765e65d1174341d3a0a7c4347ae4d0b58", "blog/japanese-speech-recognition.html": "399f5ce84e68ac00854bdf70b52b1cde6795efca7c800fd6492035a37a7c1b68", "blog/lightweight-speech-recognition-cpu.html": "d6270066222ed5baef0df108e6a4155f4a87bb5482169f23f218794d371f3281", "blog/meeting-transcript-acceptance.html": "8173b3049ca707bdac46013748bc0ca7d9576ebf6f7ff6db6c940a833b12e4a9", @@ -66,6 +67,7 @@ "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": "95e97ea540a017fe5e2fcd14cf39c73244469ab6c81dfb42f22ee0631d8e3bf2", + "en/blog/funasr-v1-4-16-submodel-device-release.html": "13fdb875229adff4d22c27ab05b2351baf46bec307c4dac4521b59cd26bbaa79", "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", @@ -73,7 +75,7 @@ "en/blog/funclip-v2-1-0-video-clipping-release.html": "229baf59adf2c3290541d9b3c8a6243992406ba84b712714e9d14599205cb1d4", "en/blog/funclip-v2-2-0-moss-speaker-clipping.html": "115f7dd0963754ed75c6022bb8ceb8ddf83b0391b1ba215af32358b2568c240a", "en/blog/generate-subtitles-srt-vtt-from-audio-video.html": "937777559f43f5722994cf32da8f13196eae3a04d1488c1948d66291ee904d32", - "en/blog/index.html": "fe18072fb67da6b9cc274fa26b8dabc5854c426a9a38210bb2317219e8123900", + "en/blog/index.html": "fa1cc01da835325a0d43e9715f227fa38d9ea1caeba0c9e1f17b989eb65a9684", "en/blog/japanese-speech-recognition.html": "c476adcc2be1ed7c19e2345cc91b8ee6a0e04efd794b9b6476dd5d9b3a2c8b04", "en/blog/lightweight-speech-recognition-cpu.html": "0e02c0e0853b12613d32c250f593c05c2052f18231207b63ee01d6e6600a86f7", "en/blog/meeting-transcript-acceptance.html": "ffc6eb2329267515bb367f21bb2d1c0523ff90d3f02b2e734ae41f78b02d0515", @@ -120,7 +122,7 @@ "models.html": "fd4179a53735b8e034a1ee8e79fb78c6c66b6a6205c7124fcef7f4e0aaf92437", "quickstart.html": "a543bf07c2cfc9a69ef3831f15c9e9d3e571a826a73cf7e4bdc8e9eb7b910254", "robots.txt": "1305b0f680b3e9f73b01301dc474423230dffab85731a379a694f30c73c07f2d", - "sitemap.xml": "1fc88be1d337d7fac6acf0dd61e6b3416f6808f5d6e8fc0006fb9b15cba6e039", + "sitemap.xml": "c855b97c31f76e5de5cc78c2450a180c230b4f34334927ac5dcc754f4b07e18a", "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/data/blog.json b/web-pages/product-site/data/blog.json index a504812ed..270e0f26f 100644 --- a/web-pages/product-site/data/blog.json +++ b/web-pages/product-site/data/blog.json @@ -204,6 +204,19 @@ "summary": "" } }, + { + "slug": "funasr-v1-4-16-submodel-device-release", + "category": "releases", + "reviewed": true, + "zh": { + "title": "v1.4.16:混合设备子模型修复", + "summary": "保持 VAD、标点和说话人子模型的显式设备配置,并补齐原生 Transformers 指南。" + }, + "en": { + "title": "v1.4.16: Mixed-device submodel fix", + "summary": "Preserve explicit VAD, punctuation, and speaker placement, with tested native Transformers guides." + } + }, { "slug": "funasr-v1-4-3-pypi-release", "category": "releases", diff --git a/web-pages/product-site/legacy/blog/funasr-v1-4-16-submodel-device-release.html b/web-pages/product-site/legacy/blog/funasr-v1-4-16-submodel-device-release.html new file mode 100644 index 000000000..f691f7698 --- /dev/null +++ b/web-pages/product-site/legacy/blog/funasr-v1-4-16-submodel-device-release.html @@ -0,0 +1,51 @@ + + + + + + FunASR v1.4.16:混合设备子模型与原生 Transformers 指南 | FunASR + + + + + + + + + + + + + + + + + + +
+

FunASR v1.4.16:混合设备子模型与原生 Transformers 指南

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

v1.4.16 让显式配置的 VAD、标点和说话人 submodel 在重复推理与运行时覆盖之间保持各自设备,并补齐标点行为和原生 Transformers 接入文档。

+

安装

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

公开包位于 PyPI 1.4.16。wheel SHA-256 为 f95943f6a8111349a1b08907363b048a49e9cb9caa1e3afd8c92970d08bf450d,sdist SHA-256 为 1e2f8e3887fbc4b164cce40f73bf1324907da6ab59d1e8bf2add827f534c69e7

+

这次修复什么

+ +
设备回归由 CPU 权重替身与模拟加速器可用性验证;它覆盖配置传播、回退和重复调用,但不是 CUDA、MPS 或 NPU 性能认证。
+

签名源码与可校验资产

+

签名标签 v1.4.16 精确指向 904cd18681b8083de5e1039bd0ecebc4f49ede60Release 恰有 12 个资产:两个 Python 制品、九个来自 runtime-llamacpp-v0.2.6 的独立版本运行时,以及一份清单。

+ +

九个原生运行时未携带本次 Python 修复;请先用清单校验,再在目标硬件和真实音频上验收。

+

从固定版本和校验清单开始复现。

查看 v1.4.16 的 12 个资产
+
+ + + diff --git a/web-pages/product-site/legacy/blog/index.html b/web-pages/product-site/legacy/blog/index.html index c2f5acba1..267f89eaa 100644 --- a/web-pages/product-site/legacy/blog/index.html +++ b/web-pages/product-site/legacy/blog/index.html @@ -49,6 +49,7 @@
2026-08-31 · FunClip v2.2.0

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

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

查看部署与剪辑边界 →
+
2026-09-18 · 正式 Release

FunASR v1.4.16:混合设备子模型与原生 Transformers 指南

保持 VAD、标点和说话人子模型的显式设备配置,公开可校验的 PyPI 制品、九个运行时与清单。

2026-09-09 · 应用工程

HTTP 200 不等于转写成功:会议录音的验收清单

区分文本、匿名说话人、时间戳和尾部覆盖;用经过测试的 Python 检查器开始验收,不把结构合法当作质量合格。

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-09-09 · 生态技术与应用

Fun-ASR-Nano + Transformers:先选对权重,再接入应用

原生 Transformers 支持已合并:分清 -hf、原始权重、vLLM 和 GGUF,理解音频预处理、生成结果与应用验收,附固定版本接入指南。

2026-08-03 · 生态集成

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

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

diff --git a/web-pages/product-site/legacy/en/blog/funasr-v1-4-16-submodel-device-release.html b/web-pages/product-site/legacy/en/blog/funasr-v1-4-16-submodel-device-release.html new file mode 100644 index 000000000..ac78087da --- /dev/null +++ b/web-pages/product-site/legacy/en/blog/funasr-v1-4-16-submodel-device-release.html @@ -0,0 +1,51 @@ + + + + + + FunASR v1.4.16: Mixed-device Submodels and Native Transformers Guides | FunASR + + + + + + + + + + + + + + + + + + +
+

FunASR v1.4.16: Mixed-device Submodels and Native Transformers Guides

+ + FunASR v1.4.16 release visual +

v1.4.16 keeps explicitly configured VAD, punctuation, and speaker submodels on their own devices across repeated inference and runtime overrides, while adding clearer punctuation and native Transformers guidance.

+

Install

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

The public distributions are on PyPI 1.4.16. The wheel SHA-256 is f95943f6a8111349a1b08907363b048a49e9cb9caa1e3afd8c92970d08bf450d; the sdist SHA-256 is 1e2f8e3887fbc4b164cce40f73bf1324907da6ab59d1e8bf2add827f534c69e7.

+

What changed

+ +
Device regressions use CPU-resident stand-in weights and mocked accelerator availability. They cover propagation, fallback, and repeated calls; they are not CUDA, MPS, or NPU performance certification.
+

Signed source and verifiable assets

+

The signed v1.4.16 tag resolves exactly to 904cd18681b8083de5e1039bd0ecebc4f49ede60. The Release has exactly 12 assets: two Python distributions, nine independently versioned runtimes from runtime-llamacpp-v0.2.6, and one manifest.

+ +

The nine native runtimes do not contain this Python fix. Verify the manifest first, then validate on target hardware with representative audio.

+

Start from a pinned version and the checksum manifest.

Open all 12 v1.4.16 assets
+
+ + + diff --git a/web-pages/product-site/legacy/en/blog/index.html b/web-pages/product-site/legacy/en/blog/index.html index c7de746e1..205911b80 100644 --- a/web-pages/product-site/legacy/en/blog/index.html +++ b/web-pages/product-site/legacy/en/blog/index.html @@ -49,6 +49,7 @@
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 →
+
September 18, 2026 · Stable release

FunASR v1.4.16: Mixed-device Submodels and Native Transformers Guides

Preserve explicit VAD, punctuation, and speaker placement, with verifiable PyPI artifacts, nine runtimes, and a checksum manifest.

2026-09-09 · Application engineering

HTTP 200 is not a usable transcript: a meeting-audio acceptance checklist

Separate words, anonymous speakers, timestamps and tail coverage. Start with a tested Python checker without mistaking structural validity for quality.

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.

2026-09-09 · Ecosystem engineering

Fun-ASR-Nano + Transformers: choose the checkpoint before the API

Native Transformers support has merged. Separate -hf, original, vLLM and GGUF artifacts, understand preprocessing and generation, and follow a pinned application guide.

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.

diff --git a/web-pages/product-site/legacy/sitemap.xml b/web-pages/product-site/legacy/sitemap.xml index 533bfc1b4..107af554b 100644 --- a/web-pages/product-site/legacy/sitemap.xml +++ b/web-pages/product-site/legacy/sitemap.xml @@ -16,6 +16,8 @@ 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-16-submodel-device-release.html2026-09-180.9monthly + https://www.funasr.com/en/blog/funasr-v1-4-16-submodel-device-release.html2026-09-180.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/test_legacy.py b/web-pages/product-site/tests/test_legacy.py index 17d37d003..20778c30b 100644 --- a/web-pages/product-site/tests/test_legacy.py +++ b/web-pages/product-site/tests/test_legacy.py @@ -339,6 +339,59 @@ def test_v140_release_pages_are_bilingual_indexed_and_precise(): assert f'https://www.funasr.com/en/blog/{slug}' in sitemap +def test_v1416_release_pages_are_bilingual_indexed_and_precise(): + slug = 'funasr-v1-4-16-submodel-device-release.html' + pages = { + 'zh': LEGACY / 'blog' / slug, + 'en': LEGACY / 'en' / 'blog' / slug, + } + release_assets = { + 'SHA256SUMS', + 'funasr-1.4.16-py3-none-any.whl', + 'funasr-1.4.16.tar.gz', + 'funasr-llamacpp-linux-arm64.tar.gz', + 'funasr-llamacpp-linux-x64-avx2.tar.gz', + 'funasr-llamacpp-linux-x64-vulkan.tar.gz', + 'funasr-llamacpp-linux-x64.tar.gz', + 'funasr-llamacpp-macos-arm64.tar.gz', + 'funasr-llamacpp-windows-x64-avx2.zip', + 'funasr-llamacpp-windows-x64-cuda.zip', + 'funasr-llamacpp-windows-x64-vulkan.zip', + 'funasr-llamacpp-windows-x64.zip', + } + + for language, path in pages.items(): + text = path.read_text(encoding='utf-8') + soup = BeautifulSoup(text, 'html.parser') + assert 'funasr==1.4.16' in text + assert '904cd18681b8083de5e1039bd0ecebc4f49ede60' in text + assert 'f95943f6a8111349a1b08907363b048a49e9cb9caa1e3afd8c92970d08bf450d' in text + assert '1e2f8e3887fbc4b164cce40f73bf1324907da6ab59d1e8bf2add827f534c69e7' in text + assert 'https://pypi.org/project/funasr/1.4.16/' in text + assert 'https://github.com/modelscope/FunASR/releases/tag/v1.4.16' in text + assert 'submodel' in text.lower() + assert 'blackwell' not in text.lower() + asset_codes = { + code.get_text(strip=True) + for code in soup.select('code') + if code.get_text(strip=True).startswith(('funasr-', 'SHA256SUMS')) + } + assert asset_codes == release_assets + expected_route = f'/{"" if language == "zh" else "en/"}blog/{slug}' + assert soup.select_one('link[rel="canonical"]')['href'].endswith(expected_route) + peer_route = f'/{"en/" if language == "zh" else ""}blog/{slug}' + peer_language = 'en' if language == 'zh' else 'zh' + assert soup.select_one(f'link[rel="alternate"][hreflang="{peer_language}"]')['href'].endswith(peer_route) + + zh_index = (LEGACY / 'blog' / 'index.html').read_text(encoding='utf-8') + en_index = (LEGACY / 'en' / 'blog' / 'index.html').read_text(encoding='utf-8') + sitemap = (LEGACY / 'sitemap.xml').read_text(encoding='utf-8') + assert f'/blog/{slug}' in zh_index + assert f'/en/blog/{slug}' in en_index + assert f'https://www.funasr.com/blog/{slug}' in sitemap + assert f'https://www.funasr.com/en/blog/{slug}' in sitemap + + def test_v145_release_pages_are_bilingual_indexed_and_operational(): slug = 'funasr-v1-4-5-pypi-llama-cpp-release.html' pages = { From 26ee780034506b5ed3ca406b755c592597ca609e Mon Sep 17 00:00:00 2001 From: LauraGPT <18321252+LauraGPT@users.noreply.github.com> Date: Fri, 18 Sep 2026 06:43:06 +0000 Subject: [PATCH 2/2] Update release archive browser contract Signed-off-by: LauraGPT <18321252+LauraGPT@users.noreply.github.com> --- web-pages/product-site/tests/browser/blog-editorial.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web-pages/product-site/tests/browser/blog-editorial.spec.ts b/web-pages/product-site/tests/browser/blog-editorial.spec.ts index ff675a83d..586657b2f 100644 --- a/web-pages/product-site/tests/browser/blog-editorial.spec.ts +++ b/web-pages/product-site/tests/browser/blog-editorial.spec.ts @@ -78,7 +78,7 @@ for (const prefix of ['', 'en/']) { } await page.locator(`[data-blog-more] a[href="/${prefix}blog/archive/"]`).click(); const archive = page.locator('[data-blog-view="archive"]'); - await expect(archive.locator('[data-blog-story]')).toHaveCount(36); + await expect(archive.locator('[data-blog-story]')).toHaveCount(37); await page.screenshot({ path: testInfo.outputPath('archive.png') }); await archive.locator(`a[href="/${prefix}blog/self-hosted-deepgram-assemblyai-alternative.html"]`).click(); await expect(page.locator('article h1')).toBeVisible();