Skip to content

v1.4.17

Latest

Choose a tag to compare

@github-actions github-actions released this 28 Oct 09:40
· 1 commit to main since this release
19e33ba

FunASR 1.4.17

Release source: 19e33badf1dba6f7606c9410c32c622486b5df13 (tag v1.4.17).

  • 487 focused pytest checks passed; two local browser cases were skipped. The final PR-head hosted browser and other CI checks passed separately.
  • Real NVIDIA L20Z validation includes CUDA compile checks and 48 CPU/CUDA FP32/BF16 keyword-decoding comparisons. These use synthetic inputs or tiny stand-ins, not pretrained ASR quality evaluation.
  • Published wheel and sdist source bytes were checked against the final tag; strict Twine, offline installation, import and CLI checks passed.
  • All ten runtime archives (including CUDA Blackwell), wheel and sdist were byte/hash and integrity verified. Eight files were downloaded from this release; four unchanged runtime archives reuse complete verified cache bytes whose full SHA-256 and size equal the new GitHub asset metadata. The new Python packages do not reuse candidate builds. SHA256SUMS covers these 12 payloads. Archive integrity was checked; platform binaries were not executed.

This is focused release validation, not the complete repository test suite or the Nano leaderboard regression.

What's Changed

  • Publish FunASR 1.4.16 bilingual site guide by @LauraGPT in #3721
  • Record FunASR 1.4.16 release closeout by @LauraGPT in #3722
  • fix(campplus): bound the clustering thread usage and stop over-computing the spectrum by @Gmgge in #3699
  • fix(paraformer): correct timestamp alpha and peak argument order by @xx205 in #3716
  • [perf] Fun-ASR-Nano fine-tuning on B200: 0.244 s to 0.068 s per step at 1 GPU, mostly from cuDNN SDPA plan builds on every new batch shape by @TarzanZhao in #3705
  • fix: use y.device instead of hardcoded .cuda() in data2vec compute_var by @li-lizhe in #3710
  • docs: note mixed-device support in PyPI 1.4.16 by @LauraGPT in #3724
  • docs(nano): clarify training-speed evidence and release scope by @LauraGPT in #3725
  • docs: 新增《在昇腾 NPU 上运行 FunASR》指南 by @Liuzi0816 in #3708
  • fix(nano): correct punctuation timestamps across VAD merges by @Bruce-Yii in #3703
  • fix: avoid deep-copying the checkpoint in load_pretrained_model by @yydhYYDH in #3729
  • Remove unused imports by @yaojingguo in #3731
  • Fix invalid escape sequences in text normalization and models by @MBK-fr in #3709
  • fix: assign sentence speakers by total overlap without double counting by @LauraGPT in #3733
  • feat(benchmark): report first nonempty transcript latency by @LauraGPT in #3734
  • fix(sensevoice): preserve SentencePiece word boundaries by @LauraGPT in #3737
  • fix(website): correct LiteLLM transcription route and guards by @LauraGPT in #3736
  • docs: diagnose actual AutoModel GPU placement by @LauraGPT in #3740
  • fix(amp): resolve autocast/GradScaler device type for non-CUDA accelerators by @li-lizhe in #3735
  • fix(auto): warn when unavailable accelerators fall back to CPU by @LauraGPT in #3742
  • Fix stale start timestamp in timestamp_sentence_en when timestamp list is shorter than punctuation list by @Arthur031221 in #3741
  • docs: surface merged speech-to-speech SenseVoice integration by @LauraGPT in #3743
  • docs(ops): record verified product-site release by @LauraGPT in #3745
  • fix(hotwords): stop fuzzy postprocess matching from rewriting nearby text by @Arthur031221 in #3744
  • fix: keep token separators in timestamp_sentence raw_text by @MohammadHijjawi97 in #3746
  • fix(sensevoice): stop rendering the Cough event as the Sneeze emoji by @MohammadHijjawi97 in #3747
  • fix(runtime): skip empty deduplicated event segments by @LauraGPT in #3748
  • ci: run rich transcription regressions in ONNX package checks by @LauraGPT in #3749
  • feat(audio): support explicit PCM16 input without container probing by @LauraGPT in #3751
  • ci: cover CLI regressions in CPU NumPy checks by @LauraGPT in #3752
  • docs(ops): make site monitoring aware of log rotation by @LauraGPT in #3753
  • fix(realtime): recover merged long-segment partials by @LauraGPT in #3755
  • fix(auto-model): preserve the resampled rate for speaker inference by @hulkbig in #3763
  • fix: retain unpunctuated tail in sentence timestamps by @Arthur031221 in #3754
  • fix(auto): skip blank lines in wav.scp and jsonl file lists by @Lesereingrape in #3758
  • fix(paraformer): skip blank lines and read hotword files as UTF-8 by @MohammadHijjawi97 in #3761
  • ci: cover timestamp and Paraformer hotword regressions by @LauraGPT in #3765
  • docs: fix contact image paths in runtime SDK tutorials by @pratikgx in #3764
  • fix(frontend): stop cmvn readers from crashing on blank lines or returning empty statistics by @Lesereingrape in #3760
  • fix(auto): generate independent keys for unkeyed batch inputs by @hulkbig in #3772
  • fix(data): read and write scp2jsonl/jsonl2scp lists as UTF-8 by @MohammadHijjawi97 in #3774
  • docs: fix SenseVoice README images and Android SDK guide link by @pratikgx in #3775
  • fix(train): bind distributed training to the active accelerator by @li-lizhe in #3771
  • fix(metrics): score utterances with an empty reference in funasr.metrics.wer by @MohammadHijjawi97 in #3779
  • fix(nano): avoid duplicate fs and preserve audio loading errors by @txfs19260817 in #3778
  • fix(metrics): size the WER cost matrix for long inputs by @Batianxieshen1 in #3784
  • fix(metrics): size the duplicated WER cost matrices for long inputs by @Batianxieshen1 in #3785
  • fix(metrics): report unscored references in the WER summary line by @MohammadHijjawi97 in #3787
  • fix(cli): warn when jieba is unavailable for readable SRT splitting by @Linxiushen in #3726
  • fix(kws): ignore empty keyword entries in KwsCtcPrefixDecoder by @MohammadHijjawi97 in #3800
  • Release FunASR 1.4.17 by @LauraGPT in #3770

New Contributors

Full Changelog: v1.4.16...v1.4.17

Runtime downloads

This Python release pairs with the current prebuilt llama.cpp / GGUF runtime release: runtime-llamacpp-v0.2.6.

The same verified runtime assets are attached directly to this Python release so users can find the package and self-contained llama-funasr-* binaries in one place.

Platform Asset SHA-256
Linux arm64 funasr-llamacpp-linux-arm64.tar.gz 7bca29cfa3c9a08e235a62212ca9e00f6656e59a8f07078966a2bfda1e5aa1f9
Linux x64 AVX2 funasr-llamacpp-linux-x64-avx2.tar.gz aaebc5470f846ce915200b35d6e9f9bd0a0d3ed399d39e49bdeb7a1f1782bc70
Linux x64 Vulkan funasr-llamacpp-linux-x64-vulkan.tar.gz f02d41e98e9d4041f0896661007193810f025484d2175958f7c1313d5c90ec46
Linux x64 portable funasr-llamacpp-linux-x64.tar.gz 779967de1c528c2be966bcc47f246e7d3e6fcdb748d9491263062f4120f35e52
macOS arm64 funasr-llamacpp-macos-arm64.tar.gz bda59474202b887190f59d25b7b42c714469efae71276072c12fa0a38de68792
Windows x64 AVX2 funasr-llamacpp-windows-x64-avx2.zip 062cda8fefadd31c3e811227116daccf448a8520f4b0bb168d225c896e65ebbd
Windows x64 CUDA Blackwell (sm_120) funasr-llamacpp-windows-x64-cuda-blackwell.zip e32961a753f40888182f352fa551159c5165a6a77718ae4ade316aedfea4b1c2
Windows x64 CUDA funasr-llamacpp-windows-x64-cuda.zip 148657911fb666b7af6ec43af2e23a0984e3259012b4c39f95631b717feb6840
Windows x64 Vulkan funasr-llamacpp-windows-x64-vulkan.zip debf8007e55011cad06081e7b8a78972f1b8fe672bc324d41e650d68821f6a6a
Windows x64 portable funasr-llamacpp-windows-x64.zip f6a73a548413ba9fbaf2145263ea66ec53cbdad1fb11790dbeeee493e339492e

Quick start: download one asset, unpack it, then run the bundled download-funasr-model.sh <sensevoice|paraformer|nano> helper and one of llama-funasr-cli, llama-funasr-sensevoice, or llama-funasr-paraformer.

For Python users, install from PyPI:

python -m pip install -U "funasr==1.4.17"