k2-fsa/sherpa-onnx

Распознавание речи, синтез речи, диаризация говорящих, улучшение речи, разделение источников и обнаружение речи с использованием next-gen Kaldi и onnxruntime без подключения к интернету. Поддержка встроенных систем, Android, iOS, HarmonyOS, Raspberry Pi, RISC-V, RK NPU, Axera NPU, Ascend NPU, x86_64

Аудио⭐ 14 884C++последний релиз: v1.13.8
Открыть на GitHub ↗Сайт проекта ↗

Что это за инструмент

Sherpa-onnx — это локальный движок для обработки речи (ASR, TTS, VAD и др.), работающий на ONNX Runtime без подключения к интернету.

Зачем нужен

Инструмент позволяет внедрять распознавание, синтез речи и анализ аудио прямо в приложения на любых устройствах, от серверов до мобильных телефонов. Он полезен для создания приватных, офлайн-решений с низкой задержкой, не зависящих от облачных API.

Что можно реализовать

  • Локальное распознавание речи (ASR) и синтез (TTS) в мобильных приложениях (Android, iOS) и на встраиваемых системах (Raspberry Pi, RK3588).
  • Разделение голосов и источников звука (source separation) или улучшение качества аудио (speech enhancement) на стороне клиента.
  • Идентификация и верификация говорящих (speaker identification/verification) и диаризация (diarization) в офлайн-режиме.
  • Обнаружение ключевых слов (keyword spotting) и определение активности голоса (VAD) в реальном времени.
  • Создание веб-приложений с обработкой аудио через WebAssembly или использование WebSocket для клиент-серверной архитектуры.

Ключевые возможности

  • Полная автономность: все модели работают локально через ONNX Runtime, без интернета.
  • Кроссплатформенность: поддержка x86_64, ARM, RISC-V, NPU (Rockchip, Qualcomm, Ascend, Axera) и ОС (Linux, Windows, macOS, Android, iOS, HarmonyOS).
  • Широкий стек языков: официальные биндинги для C++, Python, Java, C#, JavaScript, Go, Rust, Swift, Dart, Pascal и других.
  • Комплексный функционал: объединяет ASR, TTS, VAD, diarization, source separation и audio tagging в одном инструменте.
  • Готовые демо на Huggingface Spaces для быстрого тестирования без установки.

👤 Кому подойдёт: Разработчики встраиваемых систем, мобильные разработчики, инженеры по машинному обучению, ищущие офлайн-решения для обработки аудио.

Релизы

v1.13.8minor
🕐 11 дн назад · релиз на GitHub ↗

Релиз v1.13.8: исправление галлюцинаций моделей на тишине, поддержка Intel NPU, Termux и Go API для Windows arm64.

  • Fixed: Устранены галлюцинации (выдача текста на тишине) в моделях Cohere Transcribe, Moonshine v2 и FunASR-Nano, а также исправлен пустой транскрипт в Canary.
  • Added: Добавлена поддержка Intel NPU через OpenVINO, а также Go API для Windows arm64 и запуск Rust-примеров в Termux на Android.
  • Added: Введена вычисление уверенности (confidence) для каждого сегмента при диаризации говорящих (OfflineSpeakerDiarization) с поддержкой в Go и JNI.
  • Added: Добавлен голос em_santa для Kokoro v1.0 и скрипты конвертации арабского TTS Nabra-82M, а также обновлен onnxruntime до v1.28.2.
v1.13.7minor
🕐 20 дн назад · релиз на GitHub ↗

Исправлены галлюцинации Qwen3-ASR, добавлена поддержка iOS для Rust и пакетная декодировка в JS API.

  • Fixed: Устранены галлюцинации модели Qwen3-ASR на тишине при использовании горячих слов или языковых моделей.
  • Added: Добавлена поддержка iOS для Rust и пример приложения Tauri.
  • Added: В JavaScript API (node-addon) реализована пакетная декодировка нескольких онлайн-потоков.
  • Added: В JavaScript API добавлена поддержка перестримовых runtime-опций (setOption/getOption/hasOption) для потоковой ASR.
  • Fixed: Исправлена инициализация модели пунктуации при наличии не-ASCII символов в пути к словарю на Windows.
v1.13.6patch
🕐 1 мес назад · релиз на GitHub ↗

Исправления сборки Android, iOS и Dart, унификация API Flutter/Dart, добавление примеров VAD+ASR и экспозиция pyannote.

  • Fixed: Исправлена сборка примеров для Android и Java, а также использование SPM в iOS-примерах.
  • Fixed: Устранены проблемы с релизом Dart-пакетов.
  • Added: Унифицирован API инициализации sherpa-onnx для Flutter и Dart CLI.
  • Added: Добавлены примеры использования связки VAD+ASR для Flutter.
  • Added: В C API и языковых привязках экспонировано отношение сдвига окна pyannote.
v1.13.5minor
🕐 1 мес назад · релиз на GitHub ↗

Добавлена поддержка QNN для Nemotron 3.5 и Moonshine, экспортированы модели Inflect TTS, улучшена стабильность и примеры для Java/Android.

  • Added: Добавлена поддержка QNN для моделей Nemotron 3.5 ASR и Moonshine ASR, а также экспортированы модели TTS Inflect.
  • Added: Расширена поддержка Java API: добавлены примеры для Maven и Gradle, улучшена сборка и тестирование на Windows ARM64.
  • Added: Добавлена возможность подключения Android-демо для Inflect TTS и поддержка динамического линкования в sherpa-onnx-sys.
  • Fixed: Исправлены критические ошибки: use-after-free в асинхронных колбэках TTS, падение espeak-ng при некорректных голосах и потеря диакритики в Supertonic.
  • Fixed: Улучшена работа ScaleSilence (защита от невалидных масштабов) и оптимизировано выделение KV-кэша для FireRedASR.
v1.13.4minor
🕐 2 мес назад · релиз на GitHub ↗

Добавлена поддержка QNN для Parakeet, Whisper и Nemotron, обновлён onnxruntime до 1.27.0, улучшена работа с путями на Windows.

  • Added: Добавлен C++ runtime и экспорт моделей Parakeet CTC/TDT, Whisper и nemotron-speech-streaming-en-0.6b для работы через Qualcomm NPU (QNN).
  • Added: В JavaScript API для нестримингового ASR добавлена поддержка горячих слов (hotwords) для каждого потока.
  • Added: В OfflineRecognizerQwen3ASRImpl добавлена функция ApplyHomophoneReplacer.
  • Fixed: Обновлён onnxruntime до версии 1.27.0.
  • Fixed: Исправлены проблемы с путями на Windows (поддержка кириллицы), сборкой через ninja и установкой espeak-ng-data.
  • Fixed: Удалены лишние пробелы перед знаками препинания и в начале результатов распознавания речи.
v1.13.3minor
🕐 3 мес назад · релиз на GitHub ↗

Добавлена поддержка QNN для Qualcomm NPU, Nemotron-3.5, офлайн-диакритизации и улучшена документация API.

  • Added: Добавлена поддержка потоковой и непотоковой ASR на базе Zipformer и X-ASR для NPU Qualcomm через QNN, включая Android-демо.
  • Added: Включена поддержка многоязычной потоковой ASR Nemotron-3.5.
  • Added: Реализована офлайн-диакритизация (только энкодер) и добавлены Java-биндинги для Android.
  • Added: Обновлена документация для C/C++, Python и Rust API, добавлены примеры для React Native, Whisper и Supertonic3 TTS.
  • Fixed: Исправлено переполнение буфера в TopkIndex и ошибка генерации субтитров для funasr nano.