From f28ce176e9b82f69a263b95015739a20c6ad09ca Mon Sep 17 00:00:00 2001 From: zhifu gao Date: Mon, 2 Nov 2026 16:21:29 +0800 Subject: [PATCH] chore(release): prepare FunASR 1.4.20 Deliver the merged optional speaker dependency diagnostic fix (#3819). Signed-off-by: LauraGPT --- README.md | 3 ++- README_ja.md | 3 ++- README_ko.md | 3 ++- README_zh.md | 3 ++- docs/repository_roles.md | 2 +- docs/repository_roles_zh.md | 2 +- funasr/version.txt | 2 +- tests/test_release_version_contract.py | 12 +++++++++++- 8 files changed, 22 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index ff9275240..5aa159650 100644 --- a/README.md +++ b/README.md @@ -364,7 +364,8 @@ recordings with the same evaluation scope. ## What's new - **MOSS-Transcribe-Diarize** brings long-form ASR, timestamps, and anonymous speaker labels to FunASR services, Docker, Kubernetes, vLLM/SGLang workflows, and FunClip. [Deploy MOSS ->](./docs/moss_transcribe_diarize.md) -- **FunASR 1.4.19** handles empty-token Paraformer batches, enforces `max_speakers` for automatic clustering, and adds validated JSON-object `--hf_overrides` support to realtime WebSocket serving. Install with `python -m pip install -U "funasr==1.4.19"`. [Release and verification scope ->](https://github.com/modelscope/FunASR/releases/tag/v1.4.19) +- **FunASR 1.4.20** preserves the original optional speaker dependency failure in a chained `ImportError` when `spk_model` is requested, while ASR-only construction remains available. [Fix #3819](https://github.com/modelscope/FunASR/pull/3819). Install with `python -m pip install -U "funasr==1.4.20"`. [Release and verification scope ->](https://github.com/modelscope/FunASR/releases/tag/v1.4.20) + **FunASR 1.4.19** handles empty-token Paraformer batches, enforces `max_speakers` for automatic clustering, and adds validated JSON-object `--hf_overrides` support to realtime WebSocket serving. [Release and verification scope ->](https://github.com/modelscope/FunASR/releases/tag/v1.4.19) Previous release **FunASR 1.4.18** fixes cross-script hotword misreplacement, filtered-token timestamp alignment, and Chinese VAD sentence/speaker drift. [Release and verification scope ->](https://github.com/modelscope/FunASR/releases/tag/v1.4.18) **Earlier release: FunASR 1.4.17** adds explicit PCM16 input and improves timestamp, hotword, speaker-sample-rate, and long-segment streaming handling. [Release and verification scope ->](https://github.com/modelscope/FunASR/releases/tag/v1.4.17) **Earlier release: FunASR 1.4.16** preserves explicit VAD, punctuation, and speaker-model device placement across inference calls, and adds tested native Transformers adoption guides. [Release and verification scope ->](https://github.com/modelscope/FunASR/releases/tag/v1.4.16) diff --git a/README_ja.md b/README_ja.md index 32d37fd07..18445b4ba 100644 --- a/README_ja.md +++ b/README_ja.md @@ -112,7 +112,8 @@ CER/WER をそろえて比較してください。オフラインのスループ ## 最新情報 - **MOSS-Transcribe-Diarize** を FunASR service、Docker、Kubernetes、vLLM/SGLang workflow、FunClip に統合し、長時間 ASR、timestamp、匿名 speaker label を一度に処理できます。[MOSS をデプロイ ->](./docs/moss_transcribe_diarize.md) -- **FunASR 1.4.19** は Paraformer の空 token batch を処理し、自動クラスタリングの `max_speakers` 上限を適用します。リアルタイム WebSocket サービスには JSON object を検証する `--hf_overrides` を追加しました。`python -m pip install -U "funasr==1.4.19"` でインストールできます。[リリースと検証範囲 ->](https://github.com/modelscope/FunASR/releases/tag/v1.4.19) +- **FunASR 1.4.20** は `spk_model` 指定時に任意の話者依存モジュールを読み込めない場合、元の例外を連鎖した `ImportError` で報告します。ASR のみの構築は引き続き利用できます。[修正 #3819](https://github.com/modelscope/FunASR/pull/3819)。`python -m pip install -U "funasr==1.4.20"` でインストールできます。[リリースと検証範囲 ->](https://github.com/modelscope/FunASR/releases/tag/v1.4.20) + **FunASR 1.4.19** は Paraformer の空 token batch を処理し、自動クラスタリングの `max_speakers` 上限を適用します。リアルタイム WebSocket サービスには JSON object を検証する `--hf_overrides` を追加しました。[リリースと検証範囲 ->](https://github.com/modelscope/FunASR/releases/tag/v1.4.19) 前のリリース **FunASR 1.4.18** は中国語とラテン文字が混在する hotword の誤置換、特殊 token 除去後の timestamp 対応、中国語 VAD 分割での文と話者のずれを修正しました。[リリースと検証範囲 ->](https://github.com/modelscope/FunASR/releases/tag/v1.4.18) 以前のリリース **FunASR 1.4.17** は明示的な PCM16 入力を追加し、timestamp、hotword、speaker sample rate、長い segment の streaming 処理を改善しました。[リリースと検証範囲 ->](https://github.com/modelscope/FunASR/releases/tag/v1.4.17) 以前のリリース **FunASR 1.4.16** は複数回の推論でも VAD、句読点、話者モデルの明示的な device 配置を保持し、テスト済みのネイティブ Transformers 導入ガイドを追加しました。[リリースと検証範囲 ->](https://github.com/modelscope/FunASR/releases/tag/v1.4.16) diff --git a/README_ko.md b/README_ko.md index c5b328865..c05a06649 100644 --- a/README_ko.md +++ b/README_ko.md @@ -111,7 +111,8 @@ checkpoint/revision, 오디오 집합, 하드웨어, 배치, 워밍업, 측정 ## 최신 소식 - **MOSS-Transcribe-Diarize**를 FunASR service, Docker, Kubernetes, vLLM/SGLang workflow, FunClip에 통합해 긴 오디오 ASR, timestamp, 익명 speaker label을 한 번에 처리합니다. [MOSS 배포 ->](./docs/moss_transcribe_diarize.md) -- **FunASR 1.4.19**는 Paraformer의 빈 token batch를 처리하고 자동 클러스터링에 `max_speakers` 상한을 적용합니다. 실시간 WebSocket 서비스에 JSON object를 검증하는 `--hf_overrides`도 추가했습니다. `python -m pip install -U "funasr==1.4.19"`로 설치할 수 있습니다. [릴리스 및 검증 범위 ->](https://github.com/modelscope/FunASR/releases/tag/v1.4.19) +- **FunASR 1.4.20**은 `spk_model` 사용 시 선택적 화자 의존성 가져오기가 실패하면 원래 예외를 연결한 `ImportError`를 제공합니다. ASR 전용 구성은 계속 사용할 수 있습니다. [수정 #3819](https://github.com/modelscope/FunASR/pull/3819). `python -m pip install -U "funasr==1.4.20"`로 설치할 수 있습니다. [릴리스 및 검증 범위 ->](https://github.com/modelscope/FunASR/releases/tag/v1.4.20) + **FunASR 1.4.19**는 Paraformer의 빈 token batch를 처리하고 자동 클러스터링에 `max_speakers` 상한을 적용합니다. 실시간 WebSocket 서비스에 JSON object를 검증하는 `--hf_overrides`도 추가했습니다. [릴리스 및 검증 범위 ->](https://github.com/modelscope/FunASR/releases/tag/v1.4.19) 이전 릴리스 **FunASR 1.4.18**은 중국어와 라틴 문자가 섞인 hotword의 잘못된 치환, 특수 token 제거 후 timestamp 정렬, 중국어 VAD 분할의 문장 및 화자 불일치를 수정했습니다. [릴리스 및 검증 범위 ->](https://github.com/modelscope/FunASR/releases/tag/v1.4.18) 그 이전 릴리스 **FunASR 1.4.17**은 명시적 PCM16 입력을 추가하고 timestamp, hotword, speaker sample rate, 긴 segment의 streaming 처리를 개선했습니다. [릴리스 및 검증 범위 ->](https://github.com/modelscope/FunASR/releases/tag/v1.4.17) 그 이전 릴리스 **FunASR 1.4.16**은 여러 번의 추론에서도 VAD, 문장 부호, 화자 모델의 명시적 device 배치를 유지하고 검증된 네이티브 Transformers 도입 가이드를 추가했습니다. [릴리스 및 검증 범위 ->](https://github.com/modelscope/FunASR/releases/tag/v1.4.16) diff --git a/README_zh.md b/README_zh.md index 24083770c..dc4b9f2f2 100644 --- a/README_zh.md +++ b/README_zh.md @@ -157,7 +157,8 @@ checkpoint/revision、音频集、硬件、批量大小、预热、计时范围 ## 最新动态 - **MOSS-Transcribe-Diarize** 已接入 FunASR 服务、Docker、Kubernetes、vLLM/SGLang 工作流和 FunClip,一次完成长音频转写、时间戳与匿名说话人标注。[部署 MOSS ->](./docs/moss_transcribe_diarize_zh.md) -- **FunASR 1.4.19** 修复 Paraformer 空 token 批次处理,使自动聚类遵守 `max_speakers` 上限,并为实时 WebSocket 服务新增带 JSON 对象校验的 `--hf_overrides` 参数。安装:`python -m pip install -U "funasr==1.4.19"`。[发布说明与验证范围 ->](https://github.com/modelscope/FunASR/releases/tag/v1.4.19) +- **FunASR 1.4.20** 在指定 `spk_model` 而可选说话人依赖导入失败时,通过带原始异常链的 `ImportError` 提供诊断,同时保留仅 ASR 的构造路径。[修复 #3819](https://github.com/modelscope/FunASR/pull/3819)。安装:`python -m pip install -U "funasr==1.4.20"`。[发布说明与验证范围 ->](https://github.com/modelscope/FunASR/releases/tag/v1.4.20) + **FunASR 1.4.19** 修复 Paraformer 空 token 批次处理,使自动聚类遵守 `max_speakers` 上限,并为实时 WebSocket 服务新增带 JSON 对象校验的 `--hf_overrides` 参数。[发布说明与验证范围 ->](https://github.com/modelscope/FunASR/releases/tag/v1.4.19) 上一版本 **FunASR 1.4.18** 修复跨中英文热词误替换、过滤特殊符号后的时间戳对齐,以及中文 VAD 分段的句子与说话人错位。[发布说明与验证范围 ->](https://github.com/modelscope/FunASR/releases/tag/v1.4.18) **更早版本:FunASR 1.4.17** 新增显式 PCM16 输入,改进时间戳、热词、说话人采样率与长片段流式处理。[发布说明与验证范围 ->](https://github.com/modelscope/FunASR/releases/tag/v1.4.17) **更早版本:FunASR 1.4.16** 修复 VAD、标点和说话人子模型在多次推理时的显式设备放置,并新增经过测试的原生 Transformers 使用指南。[发布说明与验证范围 ->](https://github.com/modelscope/FunASR/releases/tag/v1.4.16) diff --git a/docs/repository_roles.md b/docs/repository_roles.md index 5e19bda2e..e7f5b88d5 100644 --- a/docs/repository_roles.md +++ b/docs/repository_roles.md @@ -5,7 +5,7 @@ This document explains the responsibility boundaries, user entry points, and iss > **Directional roadmap, not a release promise.** > This document records shipped capabilities and active work, but does not commit to > future version numbers or dates. The current Python release is -> [`funasr==1.4.19`](https://github.com/modelscope/FunASR/releases/tag/v1.4.19). +> [`funasr==1.4.20`](https://github.com/modelscope/FunASR/releases/tag/v1.4.20). > Any future breaking release still requires a maintainer-approved milestone and > migration plan. diff --git a/docs/repository_roles_zh.md b/docs/repository_roles_zh.md index 5f51abd75..66721d7d9 100644 --- a/docs/repository_roles_zh.md +++ b/docs/repository_roles_zh.md @@ -4,7 +4,7 @@ > **方向性路线图,不是版本承诺。** > 本文档记录已交付能力与正在推进的工作,但不承诺未来版本号或日期。当前 Python -> 版本是 [`funasr==1.4.19`](https://github.com/modelscope/FunASR/releases/tag/v1.4.19)。 +> 版本是 [`funasr==1.4.20`](https://github.com/modelscope/FunASR/releases/tag/v1.4.20)。 > 任何未来的 breaking release 仍需 maintainer 确认 milestone 与迁移方案。 --- diff --git a/funasr/version.txt b/funasr/version.txt index fd4ca57b8..771411b02 100644 --- a/funasr/version.txt +++ b/funasr/version.txt @@ -1 +1 @@ -1.4.19 +1.4.20 diff --git a/tests/test_release_version_contract.py b/tests/test_release_version_contract.py index a5311cae5..1606e0a3d 100644 --- a/tests/test_release_version_contract.py +++ b/tests/test_release_version_contract.py @@ -4,9 +4,19 @@ ROOT = Path(__file__).resolve().parents[1] -RELEASE_VERSION = "1.4.19" +RELEASE_VERSION = "1.4.20" README_FILES = ("README.md", "README_zh.md", "README_ja.md", "README_ko.md") REPOSITORY_ROLE_FILES = ("docs/repository_roles.md", "docs/repository_roles_zh.md") +@pytest.mark.parametrize("name", README_FILES) +def test_release_summary_preserves_optional_speaker_failure_scope(name): + summaries = [line for line in (ROOT / name).read_text(encoding="utf-8").splitlines() + if f"**FunASR {RELEASE_VERSION}**" in line] + assert len(summaries) == 1 + assert "spk_model" in summaries[0] + assert "ImportError" in summaries[0] + assert "https://github.com/modelscope/FunASR/pull/3819" in summaries[0] + + @pytest.mark.parametrize("name,expected,incorrect", [