diff --git a/docs/community_growth_20k.md b/docs/community_growth_20k.md index fffc18447..06d624861 100644 --- a/docs/community_growth_20k.md +++ b/docs/community_growth_20k.md @@ -361,13 +361,16 @@ Paste the Markdown output into launch notes, weekly community updates, or releas - [x] Create a GitHub release focused on one sharp value proposition. On 2026-07-23, the latest GitHub release [`v1.3.26`](https://github.com/modelscope/FunASR/releases/tag/v1.3.26) was updated with the headline `Release focus: OpenAI-compatible ASR deployment`. The release now tells users this is the current Python release to install from PyPI, run the OpenAI-compatible transcription API, follow WebSocket realtime examples, or pair with the prebuilt llama.cpp / GGUF runtime assets. The top evidence block cites `python -m pip install -U "funasr==1.3.26"`, `/v1/audio/transcriptions`, `serve_realtime_ws.py`, `docs/vllm_guide.md`, the H100 Fun-ASR-Nano `vllm 0.19.1` smoke output, `funasr.com` 14-page patrol, and matching `runtime-llamacpp-v0.1.9` downloads for nine self-contained `llama-funasr-*` assets, including Windows Vulkan. - [x] Keep recent Python GitHub release pages linked to runtime assets. On 2026-07-23, `v1.3.19` through `v1.3.26` were updated and verified to include a `Runtime downloads` section pointing to `runtime-llamacpp-v0.1.9`, including Windows Vulkan, Linux Vulkan, Windows CUDA, all nine prebuilt llama.cpp / GGUF assets, SHA-256 digests, and the matching PyPI install command. PR [#3398](https://github.com/modelscope/FunASR/pull/3398) merged as `9b918d74d7090b38211a6414c6ee08893a34afd4`; tag run [30000804161](https://github.com/modelscope/FunASR/actions/runs/30000804161) passed all nine builds plus the release job, and the published Windows Vulkan EXE depends only on the system Vulkan/Windows DLLs. The `scripts/update_release_runtime_downloads.py` guard and `tests/test_release_runtime_downloads.py` cover future tag releases. - [x] Update PyPI release description if needed. On 2026-07-23, the live PyPI `funasr 1.3.26` page was audited: its long description already comes from `README.md` and includes the current deployment-routing markers `OpenAI-compatible`, `/v1/audio/transcriptions`, `vllm`, `runtime-llamacpp-v0.1.8`, `GGUF`, and `funasr==1.3.26`. The package summary was prepared for the next PyPI publish by updating `setup.py` to `OpenAI-compatible speech recognition toolkit with WebSocket streaming, vLLM acceleration, and llama.cpp/GGUF edge runtime`, plus discovery keywords for `openai-compatible`, `websocket`, `vllm`, `gguf`, and `llama-cpp`; the currently published PyPI metadata remains `1.3.26` until the next weekly release upload. +- [x] Publish and round-trip verify FunASR v1.4.0. On 2026-07-31, signed tag [`v1.4.0`](https://github.com/modelscope/FunASR/releases/tag/v1.4.0) was verified by GitHub against exact main `5f177695f238385d513415a0e20883b6411093be`. The public Release contains exactly 12 assets: wheel, sdist, all nine `runtime-llamacpp-v0.1.9` targets, and `SHA256SUMS-v1.4.0`; every GitHub digest matches the preserved staging bytes. Public PyPI contains only `funasr-1.4.0-py3-none-any.whl` and `funasr-1.4.0.tar.gz`; both were downloaded again with no-cache headers, matched exact-main size/SHA-256, and passed a fresh installed-wheel smoke covering version/import, the `vda_model` to `vad_model` guard, SenseVoice English normalization, and all four RWKV-BAT CUDA kernel sources. Release copy keeps the legacy WebSocket end-control fix scoped to tagged source rather than claiming it is part of the PyPI wheel. - [ ] Update Hugging Face organization/model cards. The `FunAudioLLM/Fun-ASR-MLT-Nano-2512` README update is complete: HF PR [#5](https://huggingface.co/FunAudioLLM/Fun-ASR-MLT-Nano-2512/discussions/5) merged commit `3dd802bfb8a05dadc440c9d9fc84ecfc1e15c0ff`, and a 2026-07-23 live Hub download confirmed `main` now includes `python -m pip install -U "funasr>=1.3.26"` before optional demo-repo setup. Prepared README patches for `FunAudioLLM/Fun-ASR-Nano-2512` and `FunAudioLLM/SenseVoiceSmall` would add the same `funasr>=1.3.26` install floor, but the current `langgz` token still cannot write those model cards: direct upload fails with `403 Forbidden: pass create_pr=1`, and the Hub's suggested `--create-pr` path also fails at `preupload/main?create_pr=1` with `403 Forbidden: Authorization error`. Retry after model-card preupload/write permission is granted on those two repos. - [ ] Update ModelScope model cards and demos. On 2026-07-23, `scripts/sync_modelscope_model_cards.py` was added to generate and optionally upload current ModelScope README updates for `FunAudioLLM/Fun-ASR-Nano-2512` (`README.md`, `README_zh.md`) and `iic/SenseVoiceSmall` (`README.md`). The prepared cards add `python -m pip install -U "funasr>=1.3.26" modelscope` and `torch.cuda.is_available()` CUDA-wheel verification guidance, matching the clean H100 quickstart evidence. Prepared files are under `/cpfs_speech/user/zhifu.gzf/.cache/funasr-ops/modelscope-card-sync-20260723/`. A live upload attempt with the existing 32-byte `.modelscope/credentials/session` failed: SDK uploads returned HTTP 400 from the ModelScope LFS batch API, and CLI upload reported `No credentials found`; the remaining blocker is a real ModelScope access token from `https://modelscope.cn/my/myaccesstoken`. Do not mark complete until those three ModelScope README files are uploaded and re-downloaded from the live model cards. + - **2026-07-31 credential recheck:** `ind-gpu8` still has no `MODELSCOPE_API_TOKEN`, `MODELSCOPE_TOKEN`, `MODELSCOPE_ACCESS_TOKEN`, or ModelScope token file under the release config; only the previously rejected 32-byte `.modelscope/credentials/session` remains. The v1.4.0 SenseVoice/RWKV-BAT guidance must not overwrite live model cards until a real write-capable ModelScope token exists. - [x] Update homepage hero and docs entry points. On 2026-07-23, the live homepage entry points were audited and added to the public website contract. [`https://www.funasr.com/`](https://www.funasr.com/) visibly leads with the Chinese industrial speech-recognition hero, links `/donors.html`, and exposes the OpenAI-compatible `/v1/audio/transcriptions` and `vLLM` deployment path. [`https://www.funasr.com/en/`](https://www.funasr.com/en/) exposes `Industrial Speech Recognition`, `OpenAI-compatible`, `/v1/audio/transcriptions`, and `vLLM`. The bilingual launch guide at `funasr-v1-3-26-openai-vllm-llama-cpp.html` adds one owned conversion path from the blog's existing traffic to `funasr==1.3.26`, the OpenAI-compatible API, the H100-validated vLLM path, `runtime-llamacpp-v0.1.9` with Windows Vulkan, and all four ecosystem repositories. `scripts/check_funasr_website_static.py` now patrols both homepages plus the ecosystem, donor, CLI tutorial, llama.cpp landing, llama.cpp blog, and bilingual v1.3.26 launch pages; the live check prints `funasr.com static page contract passed for 14 pages`. ### Week 4: Distribution and feedback - [x] Share the release in relevant developer communities. On 2026-07-23, GitHub Discussion [`modelscope/FunASR#3376`](https://github.com/modelscope/FunASR/discussions/3376) was published in the `Announcements` category with the title `FunASR v1.3.26: OpenAI-compatible ASR deployment, vLLM, and llama.cpp runtime`. It routes readers to `funasr==1.3.26`, `/v1/audio/transcriptions`, WebSocket realtime examples, `docs/vllm_guide.md`, the H100 vLLM smoke evidence, `runtime-llamacpp-v0.1.9` with the Windows Vulkan asset, troubleshooting docs, and asks real app users to share hardware, model path, latency, and deployment friction. The same release story is now published on the owned website in Chinese and English at [`/blog/funasr-v1-3-26-openai-vllm-llama-cpp.html`](https://www.funasr.com/blog/funasr-v1-3-26-openai-vllm-llama-cpp.html) and [`/en/blog/funasr-v1-3-26-openai-vllm-llama-cpp.html`](https://www.funasr.com/en/blog/funasr-v1-3-26-openai-vllm-llama-cpp.html), with featured entry points on both blog indexes and direct links to all four repositories. +- [x] Announce the verified v1.4.0 package release. On 2026-07-31, GitHub Discussion [`modelscope/FunASR#3451`](https://github.com/modelscope/FunASR/discussions/3451) was published in the `Announcements` category. It links the exact `funasr==1.4.0` install command, separates PyPI wheel fixes from the tagged-source WebSocket fix, points to all 12 GitHub Release assets and the checksum manifest, records the public no-cache round-trip smoke, and asks users to report model, hardware, install path, input boundary, and reproducible deployment friction. The same bounded story is prepared for the bilingual owned-site routes `/blog/funasr-v1-4-0-pypi-release.html` and `/en/blog/funasr-v1-4-0-pypi-release.html`. - [x] Pin a GitHub discussion for the release. On 2026-07-23, [`modelscope/FunASR#3376`](https://github.com/modelscope/FunASR/discussions/3376) was pinned through the repository's authenticated Discussions admin UI. GitHub returned `Discussion has successfully been pinned`, and the admin controls now expose `Edit pinned discussion` and `Unpin discussion`; the `v1.3.26` OpenAI-compatible ASR, vLLM, and llama.cpp release story is therefore visible at the top of the public Discussions page. - [x] Triage all new issues within 48 hours. On 2026-07-23, all four repositories were patrolled with the GitHub token on `ind-gpu8`: `modelscope/FunASR`, `QwenAudio/Fun-ASR`, `QwenAudio/SenseVoice`, and `modelscope/FunClip` all had `0` open pull requests; Fun-ASR, SenseVoice, and FunClip had `0` open issues. The only open FunASR issues were already triaged: #3302 is labeled `question` + `needs feedback` and is waiting for the reporter to retest the merged hotword/postprocess fix, while #3104 is labeled `enhancement` + `needs maintainer decision` and is waiting on release-scope confirmation for RL training code. No unlabelled or unowned open issue remained in the 48-hour window. - [x] Convert top 3 support questions into docs. On 2026-07-23, the latest 80 FunASR issues were triaged into three repeat support blockers: install / hub / model-id selection (#3321, #3045, #3042, #2973, #2976), llama.cpp / GGUF / CUDA-Vulkan runtime packages (#3298, #3297, #3296, #3289, #3243), and realtime / VAD / vLLM / server output behavior (#3101, #3109, #3038, #3031, #2968, #2965). `docs/troubleshooting.md` and `docs/troubleshooting_zh.md` now start with a Top support questions section that maps those three issue clusters to the existing install, model-download, OpenAI-compatible server, WebSocket, and llama.cpp / GGUF FAQ anchors. diff --git a/web-pages/product-site/content/legacy-manifest.json b/web-pages/product-site/content/legacy-manifest.json index 462c34ac8..43d0059df 100644 --- a/web-pages/product-site/content/legacy-manifest.json +++ b/web-pages/product-site/content/legacy-manifest.json @@ -15,11 +15,12 @@ "blog/funasr-v1-3-26-openai-vllm-llama-cpp.html": "304453b66c09d65aaa35dfe679c7368c6c69d65ab68bae7d85c536aadecf44b1", "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-vs-faster-whisper-chinese.html": "bfe9bb8017be80c7e7f4587726f43f6064f1dc4c65e39788f836fdfb0c9789f7", "blog/funasr-vs-whisper-benchmark.html": "b7b49adf24d20570abb09b733ce03d4a50a4a0e98e746b4a9320f453e01cce84", "blog/funclip-v2-1-0-video-clipping-release.html": "88f6c44e5332d1746c4db0fc97d755ef82f12e46d8f1c1c0ad9351152ff9dfc1", "blog/generate-subtitles-srt-vtt-from-audio-video.html": "dbaf77072a980c8c50f33cb74e9513dea5dba2d31bd802fade38dcb0bb97e849", - "blog/index.html": "de4764bd8fed5ed4040196e9cd9ec27952e14e5cd0eb4682295f1c6c4b1b3d65", + "blog/index.html": "ff0057519f7b657ddf737987be2d5eb615286346153fb92fd16d7863ad11eefb", "blog/japanese-speech-recognition.html": "90f1f3bee4dcd72e414c6cb1ef9c0e580d5b7107356bc4285ac801affbb64486", "blog/lightweight-speech-recognition-cpu.html": "d6270066222ed5baef0df108e6a4155f4a87bb5482169f23f218794d371f3281", "blog/punctuation-restoration-python.html": "6cd26e03bf75b4343afd7b351c2681ebd513b058fb549c5888802be9ff3a1229", @@ -49,11 +50,12 @@ "en/blog/funasr-v1-3-26-openai-vllm-llama-cpp.html": "665c9c66c9af0e649cc3020859e3af65f6ec595dfdbf36923058b97dc5e2512e", "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-vs-faster-whisper-chinese.html": "abf31d3827dfba9b31ccd4e76229de9e4bfff00ab8bcee33bd718c88249630f4", "en/blog/funasr-vs-whisper-benchmark.html": "367d4a8a1cc09ac932c80cdad065127925c5e5f942a806ace683c16dc1132769", "en/blog/funclip-v2-1-0-video-clipping-release.html": "229baf59adf2c3290541d9b3c8a6243992406ba84b712714e9d14599205cb1d4", "en/blog/generate-subtitles-srt-vtt-from-audio-video.html": "bd81aa43c6a977f28dd3925861bf456002fbacfec0df0504b413daa64ae60dfa", - "en/blog/index.html": "959760d77aee74bbe8075988763f49a171d2a8f899a2e7b745dfeac75ae83482", + "en/blog/index.html": "19080d45223511743fda663d076835dff88c9011d9840ee85d1a21dc754d5787", "en/blog/japanese-speech-recognition.html": "8b106563142c291d3b86fad79a51e9c8746417b7750430e91296cc90764e570f", "en/blog/lightweight-speech-recognition-cpu.html": "0e02c0e0853b12613d32c250f593c05c2052f18231207b63ee01d6e6600a86f7", "en/blog/punctuation-restoration-python.html": "d6e30049f48d9dc6e6bc22eb567830013e4161eca51215616738b675dd1ffc40", @@ -97,7 +99,7 @@ "models.html": "2fa557c327c81717e5ae145ae96436168ea51f58301bd7bb6357d4e15686cdfc", "quickstart.html": "90c5f25b428b064be02df11c38d24556ec97f4bc80900398c223424aaa48e7b8", "robots.txt": "1305b0f680b3e9f73b01301dc474423230dffab85731a379a694f30c73c07f2d", - "sitemap.xml": "055e1fbf6da8689720eca3ce508b7115dfbb90ebf45cd4cab18d0b13d01aa139", + "sitemap.xml": "967778b911c834ffeb186126353b4e8cecc009c5c73d4684b9978363e97ede34", "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-0-pypi-release.html b/web-pages/product-site/legacy/blog/funasr-v1-4-0-pypi-release.html new file mode 100644 index 000000000..75dcc6fa9 --- /dev/null +++ b/web-pages/product-site/legacy/blog/funasr-v1-4-0-pypi-release.html @@ -0,0 +1,98 @@ + + + + + + FunASR v1.4.0:更完整的 PyPI 安装包与更安全的 AutoModel 参数 | FunASR + + + + + + + + + + + + + + + + + + +
+

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

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

FunASR v1.4.0 把“源码里存在、安装后也必须存在”变成可验证的发布契约:PyPI wheel 恢复 SenseVoice 英文拼写表和 RWKV-BAT CUDA 编译源码,同时在下载模型前拒绝常见的 vda_model 误拼写并提示 vad_model

+

签名 GitHub Release 同时提供 wheel、sdist、九个平台的 llama.cpp / GGUF 运行时和 SHA256SUMS-v1.4.0,共 12 个资产。

+ +

Python 包修复与发布边界

+ + + + + + + + +
交付边界v1.4.0 内容用户收益
PyPI wheelvda_model 在模型下载前抛出明确错误并指向 vad_modelVAD 分段、说话人处理和 sentence_info 不再因拼写错误被静默关闭
PyPI wheel包含 SenseVoice 的 english.jsoncolour centre 等英式拼写可稳定规范化为美式拼写
PyPI wheel包含 RWKV-BAT encoder/decoder 的四个 .cpp/.cu 文件从已安装 wheel 运行时可定位 CUDA 扩展编译源码
tagged sourcelegacy WebSocket 文件输入在 end-control 后完成 offline、online 与 2pass 尾音频并返回明确确认该修复随 GitHub tagged source 分发,不属于 PyPI wheel;客户端不会把固定 sleep 误当完成信号
+ +

1. 安装并确认版本

+

从 public PyPI 固定正式版:

+
python -m pip install -U "funasr==1.4.0"
+funasr --version
+

public PyPI 只发布这两个 Python 文件:funasr-1.4.0-py3-none-any.whlfunasr-1.4.0.tar.gz。它们的 size 和 SHA-256 已与 exact-main 构建逐字节核对,并再次 no-cache 下载、隔离安装和 smoke。

+
发布前通过 87 项 package/AutoModel/WebSocket/docs/runtime/llama.cpp 测试(另有 1 项在线模型下载测试按已知环境限制 deselect)和 52 项产品站测试;wheel 与 sdist 通过 Twine 7.0,public 回源安装再次验证版本、import、拼写保护、SenseVoice 英文规范化和四个 RWKV-BAT kernel 文件。
+ +

2. 九个平台运行时与校验清单

+

同一发布页复用并验证了 runtime-llamacpp-v0.1.9 的全部九个平台资产:

+ +

下载后在同一目录校验:

+
sha256sum -c SHA256SUMS-v1.4.0
+

模型、命令与硬件选择见 llama.cpp / GGUF 专页。manifest 覆盖 wheel、sdist 和九个 runtime;manifest 自身的 GitHub digest 也已核验。

+ +
+

先用固定版本在真实音频上复现,再按 SHA-256 选择适合硬件的运行时。遇到问题请附模型、设备、输入边界和可复现命令。

+ 查看 v1.4.0 发布与 12 个资产 +
+
+ + + diff --git a/web-pages/product-site/legacy/blog/index.html b/web-pages/product-site/legacy/blog/index.html index 99c6d173f..578e2bfc2 100644 --- a/web-pages/product-site/legacy/blog/index.html +++ b/web-pages/product-site/legacy/blog/index.html @@ -48,7 +48,7 @@ @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}} -
2026-07-24 · 新 Release

FunClip v2.1.0:本地 AI 视频剪辑的首个版本化发布

Paraformer、Fun-ASR-Nano、SenseVoice 与大模型剪辑,提供可校验、可回退的源码下载。

查看发布指南 →
-
2026-07-24

FunASR v1.3.28:实时识别可靠性与字幕对齐修复

连续完整的实时终稿、可靠的 STOP 与断线处理、对齐的 SenseVoice 字幕,以及 11 个直接下载。

+
2026-07-31 · 正式 Release

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

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

查看发布与校验指南 →
+
2026-07-24

FunClip v2.1.0:本地 AI 视频剪辑的首个版本化发布

Paraformer、Fun-ASR-Nano、SenseVoice 与大模型剪辑,提供可校验、可回退的源码下载。

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 部署指南:比 Whisper 快 15 倍

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

更多:快速上手 · 模型

diff --git a/web-pages/product-site/legacy/en/blog/funasr-v1-4-0-pypi-release.html b/web-pages/product-site/legacy/en/blog/funasr-v1-4-0-pypi-release.html new file mode 100644 index 000000000..2173902f5 --- /dev/null +++ b/web-pages/product-site/legacy/en/blog/funasr-v1-4-0-pypi-release.html @@ -0,0 +1,98 @@ + + + + + + FunASR v1.4.0: Complete PyPI Packages and Safer AutoModel Arguments | FunASR + + + + + + + + + + + + + + + + + + +
+

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

+ + FunASR v1.4.0 release visual +

FunASR v1.4.0 turns “present in source” into a tested installation contract. The PyPI wheel restores the SenseVoice English spelling table and RWKV-BAT CUDA build sources, while rejecting the common vda_model typo before model download and pointing to vad_model.

+

The signed GitHub Release contains the wheel, sdist, nine self-contained llama.cpp / GGUF runtimes, and SHA256SUMS-v1.4.0: 12 assets in total.

+ +

Python fixes and distribution boundaries

+ + + + + + + + +
Distribution boundaryv1.4.0 contentWhy it matters
PyPI wheelvda_model fails before model download and points to vad_modelVAD segmentation, speaker processing, and sentence_info are no longer silently disabled by a typo
PyPI wheelSenseVoice english.json is installedBritish spellings such as colour centre reliably normalize to American spellings
PyPI wheelFour RWKV-BAT encoder/decoder .cpp/.cu files are installedRuntime CUDA extension compilation can locate its sources after wheel installation
tagged sourceThe legacy WebSocket file client/server completes offline, online, and 2pass tail audio after end-control and returns an explicit acknowledgementThis fix ships in the GitHub tagged source and is not part of the PyPI wheel; clients no longer mistake a fixed sleep for completion
+ +

1. Install and confirm the version

+

Pin the stable build from public PyPI:

+
python -m pip install -U "funasr==1.4.0"
+funasr --version
+

Public PyPI contains exactly two Python files: funasr-1.4.0-py3-none-any.whl and funasr-1.4.0.tar.gz. Their sizes and SHA-256 values match the exact-main build, and both were downloaded with no-cache headers before a second isolated installation smoke.

+
The release gate passed 87 package/AutoModel/WebSocket/docs/runtime/llama.cpp tests (with one known online model-download test deselected for the host environment) plus 52 product-site tests. Twine 7.0 accepted both artifacts; the public wheel then passed version, import, typo guard, SenseVoice normalization, and four-file RWKV-BAT kernel checks.
+ +

2. Nine runtime targets and one checksum manifest

+

The same release page reuses and verifies every asset from runtime-llamacpp-v0.1.9:

+ +

Verify the download directory before use:

+
sha256sum -c SHA256SUMS-v1.4.0
+

See the llama.cpp / GGUF page for model and hardware selection. The manifest covers the wheel, sdist, and nine runtimes, while GitHub also exposes a digest for the manifest itself.

+ +
+

Pin the Python version, verify downloaded assets, and reproduce with real audio. When reporting a problem, include the model, device, input boundary, and exact command.

+ Open v1.4.0 and all 12 assets +
+
+ + + diff --git a/web-pages/product-site/legacy/en/blog/index.html b/web-pages/product-site/legacy/en/blog/index.html index 92427630f..8e34983df 100644 --- a/web-pages/product-site/legacy/en/blog/index.html +++ b/web-pages/product-site/legacy/en/blog/index.html @@ -48,7 +48,7 @@ @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}} -
July 24, 2026 · New release

FunClip v2.1.0: The First Versioned Local AI Video-Clipping Release

Paraformer, Fun-ASR-Nano, SenseVoice, and LLM clipping in verifiable, rollback-ready source downloads.

Read the release guide →
-
July 24, 2026

FunASR v1.3.28: Reliable Realtime ASR and Better Subtitles

Continuous realtime finals, reliable STOP and disconnect handling, aligned SenseVoice subtitles, and eleven direct downloads.

+
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.

Read the release and verification guide →
+
July 24, 2026

FunClip v2.1.0: The First Versioned Local AI Video-Clipping Release

Paraformer, Fun-ASR-Nano, SenseVoice, and LLM clipping in verifiable, rollback-ready source downloads.

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: 15x Faster Than Whisper

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 84fa72f26..1592e4f2d 100644 --- a/web-pages/product-site/legacy/sitemap.xml +++ b/web-pages/product-site/legacy/sitemap.xml @@ -12,6 +12,8 @@ https://www.funasr.com/en/ecosystem.html0.8weekly https://www.funasr.com/blog/0.9weekly https://www.funasr.com/en/blog/0.9weekly + https://www.funasr.com/blog/funasr-v1-4-0-pypi-release.html2026-07-310.9monthly + https://www.funasr.com/en/blog/funasr-v1-4-0-pypi-release.html2026-07-310.9monthly https://www.funasr.com/blog/funclip-v2-1-0-video-clipping-release.html2026-07-240.9monthly https://www.funasr.com/en/blog/funclip-v2-1-0-video-clipping-release.html2026-07-240.9monthly https://www.funasr.com/blog/funasr-v1-3-28-realtime-websocket-subtitles.html2026-07-240.9monthly diff --git a/web-pages/product-site/tests/test_legacy.py b/web-pages/product-site/tests/test_legacy.py index 938f5364b..d0acbff13 100644 --- a/web-pages/product-site/tests/test_legacy.py +++ b/web-pages/product-site/tests/test_legacy.py @@ -109,3 +109,50 @@ def test_english_navigation_uses_language_peer(): assert [link.get_text(strip=True) for link in soup.select('.nav-links a')][-1] == 'Donors' assert soup.select_one('[data-language-peer]')['href'] == '/blog/example.html' + + +def test_v140_release_pages_are_bilingual_indexed_and_precise(): + slug = 'funasr-v1-4-0-pypi-release.html' + pages = { + 'zh': LEGACY / 'blog' / slug, + 'en': LEGACY / 'en' / 'blog' / slug, + } + runtime_assets = ( + 'linux-arm64', + 'linux-x64', + 'linux-x64-avx2', + 'linux-x64-vulkan', + 'macos-arm64', + 'windows-x64', + 'windows-x64-avx2', + 'windows-x64-cuda', + 'windows-x64-vulkan', + ) + + for language, path in pages.items(): + text = path.read_text(encoding='utf-8') + soup = BeautifulSoup(text, 'html.parser') + + assert 'funasr==1.4.0' in text + assert 'https://github.com/modelscope/FunASR/releases/tag/v1.4.0' in text + assert 'SHA256SUMS-v1.4.0' in text + assert '`vda_model`' not in text + assert 'vda_model' in text + assert 'vad_model' in text + assert 'SenseVoice' in text + assert 'RWKV-BAT' in text + assert 'PyPI wheel' in text + assert 'tagged source' in text + assert all(asset in text for asset in runtime_assets) + + expected_route = f'/{"" if language == "zh" else "en/"}blog/{slug}' + assert soup.select_one('link[rel="canonical"]')['href'].endswith(expected_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