Skip to content

Releases: ZhaoChaoqun/nano-typeless

v1.2.16

Choose a tag to compare

@ZhaoChaoqun ZhaoChaoqun released this 04 Mar 11:11

What's New

FunASR Nano LLM Bug Fix

  • Fix cross-session data leak: second recording no longer includes text from the first session
  • Root cause: _accumulatedText and VAD state were not reset after flush

Inference Performance

  • FunASR Nano LLM: dynamically use all CPU cores (activeProcessorCount) instead of hardcoded 1 thread, reducing flush latency from ~11s to ~0.5s on M4
  • QwenASR: default numThreads to 0 (auto-detect by Rust runtime) instead of hardcoded 4

Streaming Parameters

  • Restore Qwen3-ASR streaming params to C API defaults (chunk_sec=2.0, rollback=5, unfixed_chunks=2)
  • Streaming CER improved from 0.0968 to 0.0519, long audio decoder degeneracy resolved

Full Changelog: v1.2.15...v1.2.16

v1.2.15

Choose a tag to compare

@ZhaoChaoqun ZhaoChaoqun released this 02 Mar 09:26

What's New

Qwen3-ASR UTF-8 Mojibake Fix

  • Fix Chinese character corruption (U+FFFD replacement and Box Drawing artifacts) in both offline and streaming modes
  • Root cause: GPT-2 byte-level BPE tokens were decoded with per-token from_utf8_lossy, corrupting multi-byte UTF-8 characters split across token boundaries
  • Fix: accumulate raw bytes and defer UTF-8 conversion to safe boundaries using utf8_safe_boundary()
  • All 68 benchmark entries verified: zero mojibake

Long Audio Offline Transcription

  • Add transcribeOffline() method using segment-based decoding (qwen_asr_transcribe_pcm) for proper long audio support
  • Offline benchmark now uses the dedicated offline path instead of streaming API with finalize

New Engine: FunASR Nano LLM

  • Replace SenseVoice Nano with FunASR Nano LLM as the third ASR engine option
  • FunASR Nano LLM: SenseVoice + Qwen3 LLM with built-in punctuation and ITN

Unfixed Text Display

  • Streaming overlay now shows speculative (unfixed) text alongside stable text
  • Add getUnfixed() to ASRStreamRecognizing protocol

Benchmark Framework

  • Add Swift-based ASR pipeline benchmark tests (offline + streaming for all engines)
  • Upgrade Python benchmark script with full pipeline evaluation (ASR → CSC → punctuation)

Sherpa-ONNX Upgrade

  • Update sherpa-onnx dylib with new Whisper timestamp and FireRedASR CTC configs
  • Add inputFinished() for proper Paraformer stream termination

Test & Documentation

  • Fix test compilation for updated callback signatures
  • Remove ascend_cs_007 test case (Cantonese-accented, not in scope)
  • Update architecture docs for new three-engine lineup

Full Changelog: v1.2.14...v1.2.15

v1.2.14

Choose a tag to compare

@ZhaoChaoqun ZhaoChaoqun released this 27 Feb 06:31

What's New

Qwen3-ASR Engine

  • Add Qwen3-ASR as the third ASR engine option alongside FunASR Nano and Streaming Paraformer
  • Qwen3-ASR uses a large language model for speech recognition with built-in punctuation

UTF-8 Fix

  • Fix Chinese character corruption (mojibake) in Qwen3-ASR streaming output
  • BPE token decoding now uses byte-level accumulation instead of per-token lossy conversion

Architecture Improvements

  • Protocol-oriented ASR engine design (ASREngine protocol) for unified engine management
  • Logger migration from print statements to os.Logger
  • Dead code cleanup and thread safety improvements

Testing

  • 55+ tests including unit, E2E, boundary, concurrency, and stress tests
  • GitHub Actions CI workflow for automated testing
  • UTF-8 regression test suite (9 Rust unit tests + 4 Swift E2E stress tests)

Documentation

  • README updated to document all three ASR engines

Full Changelog: v1.2.13...v1.2.14

v1.2.13

Choose a tag to compare

@ZhaoChaoqun ZhaoChaoqun released this 24 Feb 08:30

Changes

  • Optimize: Reduce runtime memory usage from ~2GB to ~1GB
    • Switch Streaming Paraformer model loading priority from FP32 to INT8
    • INT8 model provides comparable accuracy with significantly lower memory footprint

Installation

brew tap ZhaoChaoqun/typeless
brew install --cask nano-typeless
xattr -cr "/Applications/Nano Typeless.app"

v1.2.12

Choose a tag to compare

@ZhaoChaoqun ZhaoChaoqun released this 23 Feb 09:02

变更

  • 默认模型切换为 Streaming Paraformer + CT-Transformer 标点模型
  • 首次安装自动下载标点模型
  • 设置界面模型顺序调整

v1.2.11

Choose a tag to compare

@ZhaoChaoqun ZhaoChaoqun released this 05 Feb 09:54

What's New

CT-Transformer 标点模型

  • 新增 CT-Transformer 标点模型支持,自动为识别结果添加标点符号
  • 使用 INT8 量化版本(62MB),比 FP32 版本(266MB)更小
  • 支持 ModelScope 镜像加速下载

Bug 修复

  • 修复切换 ASR 模型后识别器未重新初始化的问题
  • FunASR Nano 和 Streaming Paraformer 模式现在都能正常切换

代码优化

  • 重构 RecordingManager,统一标点处理逻辑
  • 更新开发文档(CLAUDE.md)

v1.2.10

Choose a tag to compare

@ZhaoChaoqun ZhaoChaoqun released this 05 Feb 08:10

修复

  • 修复 Streaming Paraformer 崩溃和丢字问题
    • 使用静音填充方案替代 inputFinished() 调用
    • 简化代码,移除复杂的异步同步逻辑
    • 解决松开 Fn 键时应用崩溃的问题
    • 解决最后几个字丢失的问题

v1.2.9 - Dual ASR Model Support

Choose a tag to compare

@ZhaoChaoqun ZhaoChaoqun released this 05 Feb 04:03

What's New

Dual ASR Model Support

Now you can choose between two speech recognition engines in Settings:

Model Size Features
FunASR Nano ~179MB VAD-based segmentation, supports dialects
Streaming Paraformer ~216MB Native streaming, preserves full context

Key Improvements

  • Streaming Paraformer: No VAD required, maintains complete context for better accuracy
  • Model Selection UI: Easy switching between models in Settings
  • INT8 Optimized: Streaming Paraformer uses INT8 quantization (reduced from 999MB to 216MB)
  • User Preference Persisted: Your model choice is saved automatically

Download Sources

  • ModelScope (China): Faster for users in China
  • GitHub: Fallback option

Full Changelog: v1.2.8...v1.2.9

Nano Typeless v1.2.8

Choose a tag to compare

@ZhaoChaoqun ZhaoChaoqun released this 04 Feb 10:52

What's New

HUD 体验优化

  • HUD 宽度动态调整:初始显示窄版(130px),随文字增加自动扩展(最大 400px)
  • HUD 始终保持屏幕水平居中,内容变化时自动调整位置
  • 移除文字更新时的闪烁动画
  • 移除多余的"识别中"状态(流式输出已经实时显示文字)
  • 统一字体为 medium 字重,显示效果更清晰

代码优化

  • 重构 OnboardingOverlay 的 Timer 管理,防止内存泄漏
  • 合并标点符号检测逻辑,消除重复代码

v1.2.7

Choose a tag to compare

@ZhaoChaoqun ZhaoChaoqun released this 04 Feb 09:28

优化

权限请求优化

  • 移除重复的辅助功能权限请求,避免用户看到两次权限弹窗

下载后解压即可使用