# What changed in funasr

> 38 changes in funasr 1 from its official release notes, upgrade guides and advisories: 1 new APIs and options. Each one cited. Sources checked 2026-10-28. HTML: https://unstale.sh/pypi/funasr/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## funasr 1

### New APIs and options

- Supports explicit PCM16 input without container probing. (1.4.17) — [release notes](https://github.com/modelscope/FunASR/releases/tag/v1.4.17)

### Performance

- Bounds clustering thread usage and avoids over-computing the spectrum. (1.4.17) — [release notes](https://github.com/modelscope/FunASR/releases/tag/v1.4.17)
- Reports a B200 single-GPU step-time reduction from 0.244 s to 0.068 s, mostly by avoiding cuDNN SDPA plan builds on every new batch shape. (1.4.17) — [release notes](https://github.com/modelscope/FunASR/releases/tag/v1.4.17)
- Avoids deep-copying the checkpoint when loading a pretrained model. (1.4.17) — [release notes](https://github.com/modelscope/FunASR/releases/tag/v1.4.17)

### Behavior and default changes

- Idle time is excluded from the dynamic VAD silence schedule. (1.4.15) — [release notes](https://github.com/modelscope/FunASR/releases/tag/v1.4.15)
- The NumPy upper bound is removed, enabling compatibility with NumPy 2. (1.4.15) — [release notes](https://github.com/modelscope/FunASR/releases/tag/v1.4.15)

### Tooling

- Adds first nonempty transcript latency to benchmark reporting. (1.4.17) — [release notes](https://github.com/modelscope/FunASR/releases/tag/v1.4.17)

### Fixes and other changes

- Warns when unavailable accelerators cause a fallback to CPU. (1.4.17) — [release notes](https://github.com/modelscope/FunASR/releases/tag/v1.4.17)
- Resolves the autocast and GradScaler device type for non-CUDA accelerators. (1.4.17) — [release notes](https://github.com/modelscope/FunASR/releases/tag/v1.4.17)
- Prevents crashes on blank lines and avoids returning empty statistics. (1.4.17) — [release notes](https://github.com/modelscope/FunASR/releases/tag/v1.4.17)
- Uses y.device instead of hardcoded .cuda() when computing variance. (1.4.17) — [release notes](https://github.com/modelscope/FunASR/releases/tag/v1.4.17)
- Skips empty deduplicated event segments. (1.4.17) — [release notes](https://github.com/modelscope/FunASR/releases/tag/v1.4.17)
- Binds distributed training to the active accelerator. (1.4.17) — [release notes](https://github.com/modelscope/FunASR/releases/tag/v1.4.17)
- Handles empty references, sizes cost matrices for long inputs, and reports unscored references in the WER summary line. (1.4.17) — [release notes](https://github.com/modelscope/FunASR/releases/tag/v1.4.17)
- Prevents fuzzy postprocess matching from rewriting nearby text. (1.4.17) — [release notes](https://github.com/modelscope/FunASR/releases/tag/v1.4.17)
- Warns when jieba is unavailable for readable SRT splitting. (1.4.17) — [release notes](https://github.com/modelscope/FunASR/releases/tag/v1.4.17)
- Ignores empty keyword entries. (1.4.17) — [release notes](https://github.com/modelscope/FunASR/releases/tag/v1.4.17)
- Avoids duplicate fs and preserves audio loading errors. (1.4.17) — [release notes](https://github.com/modelscope/FunASR/releases/tag/v1.4.17)
- Corrects punctuation timestamps across VAD merges. (1.4.17) — [release notes](https://github.com/modelscope/FunASR/releases/tag/v1.4.17)
- Skips blank lines and reads hotword files as UTF-8. (1.4.17) — [release notes](https://github.com/modelscope/FunASR/releases/tag/v1.4.17)
- Corrects timestamp alpha and peak argument order. (1.4.17) — [release notes](https://github.com/modelscope/FunASR/releases/tag/v1.4.17)
- Recovers partials for merged long segments. (1.4.17) — [release notes](https://github.com/modelscope/FunASR/releases/tag/v1.4.17)
- Reads and writes lists as UTF-8. (1.4.17) — [release notes](https://github.com/modelscope/FunASR/releases/tag/v1.4.17)
- Stops rendering the Cough event as the Sneeze emoji. (1.4.17) — [release notes](https://github.com/modelscope/FunASR/releases/tag/v1.4.17)
- Preserves SentencePiece word boundaries. (1.4.17) — [release notes](https://github.com/modelscope/FunASR/releases/tag/v1.4.17)
- Assigns sentence speakers by total overlap without double counting. (1.4.17) — [release notes](https://github.com/modelscope/FunASR/releases/tag/v1.4.17)
- Retains the unpunctuated tail in sentence timestamps. (1.4.17) — [release notes](https://github.com/modelscope/FunASR/releases/tag/v1.4.17)
- Preserves the resampled rate for speaker inference. (1.4.17) — [release notes](https://github.com/modelscope/FunASR/releases/tag/v1.4.17)
- Avoids a stale start timestamp when the timestamp list is shorter than the punctuation list. (1.4.17) — [release notes](https://github.com/modelscope/FunASR/releases/tag/v1.4.17)
- Retains token separators in raw_text. (1.4.17) — [release notes](https://github.com/modelscope/FunASR/releases/tag/v1.4.17)
- Generates independent keys for unkeyed batch inputs. (1.4.17) — [release notes](https://github.com/modelscope/FunASR/releases/tag/v1.4.17)
- Skips blank lines in wav.scp and jsonl file lists. (1.4.17) — [release notes](https://github.com/modelscope/FunASR/releases/tag/v1.4.17)
- Explicit device placement is preserved across repeated inference calls, and runtime device overrides do not mutate already-loaded models or caller-owned submodel configuration. (1.4.16) — [release notes](https://github.com/modelscope/FunASR/releases/tag/v1.4.16)
- Explicit device placement is preserved across repeated inference calls; speaker inference uses the speaker model's own configuration. (1.4.16) — [release notes](https://github.com/modelscope/FunASR/releases/tag/v1.4.16)
- Explicit device placement is preserved across repeated inference calls, and runtime device overrides do not mutate already-loaded models or caller-owned submodel configuration. (1.4.16) — [release notes](https://github.com/modelscope/FunASR/releases/tag/v1.4.16)
- Unavailable validation metrics are excluded from checkpoint ranking. (1.4.15) — [release notes](https://github.com/modelscope/FunASR/releases/tag/v1.4.15)
- Streaming preserves KWS frames across packet and EOS boundaries. (1.4.15) — [release notes](https://github.com/modelscope/FunASR/releases/tag/v1.4.15)
- Optional output directories are now honored. (1.4.15) — [release notes](https://github.com/modelscope/FunASR/releases/tag/v1.4.15)
