sherpa-onnx

Library Featured

Safe Rust wrapper for sherpa-onnx speech recognition toolkit

Checked · Sources

Downloads
259,599
Dependents
28
Stars
15,834
Forks
1,858
Contributors
273
Commits
2,187
Latest release
2.0.1 ·

About

From the project README ·

Supported functions
Speech recognitionSpeech synthesisSource separation
✔️✔️✔️
Speaker identificationSpeaker diarizationSpeaker verification
✔️✔️✔️
Supported platforms
ArchitectureAndroidiOSWindowsmacOSlinuxHarmonyOS
x64✔️✔️✔️✔️✔️
x86✔️✔️
arm64✔️✔️✔️✔️✔️✔️
arm32✔️✔️✔️
riscv64✔️
Supported programming languages
1. C++2. C3. Python4. JavaScript
✔️✔️✔️✔️
5. Java6. C#7. Kotlin8. Swift
✔️✔️✔️✔️
9. Go10. Dart11. Rust12. Pascal
✔️✔️✔️✔️

It also supports WebAssembly.

Supported frameworks
Flutter
ArchitectureAndroidiOSWindowsmacOSLinuxWeb
x64✔️✔️✔️✔️✔️
x86✔️✔️
arm64✔️✔️✔️✔️✔️✔️
arm32✔️✔️
Tauri
ArchitectureAndroidiOSWindowsmacOSLinux
x64✔️✔️✔️✔️
x86✔️
arm64✔️✔️✔️✔️✔️
arm32✔️
Supported NPUs

Join our discord

Introduction

This repository supports running the following functions locally

Read the full README
  • Speech-to-text (i.e., ASR); both streaming and non-streaming are supported
  • Text-to-speech (i.e., TTS)
  • Speaker diarization
  • Speaker identification
  • Speaker verification
  • Spoken language identification
  • Audio tagging
  • VAD (e.g., silero-vad)
  • Speech enhancement (e.g., gtcrn, DPDFNet, VoxLock)
  • Keyword spotting
  • Source separation (e.g., spleeter, UVR)

on the following platforms and operating systems:

with the following APIs

  • C++, C, Python, Go, C#
  • Java, Kotlin, JavaScript
  • Swift, Rust
  • Dart, Object Pascal
Links for Huggingface Spaces

You can visit the following Huggingface spaces to try sherpa-onnx without installing anything. All you need is a browser.

DescriptionURL中国镜像
Speaker diarizationClick me镜像
Speech recognitionClick me镜像
Speech recognition with WhisperClick me镜像
Speech synthesisClick me镜像
Generate subtitlesClick me镜像
Audio taggingClick me镜像
Source separationClick me镜像
Spoken language identification with WhisperClick me镜像

We also have spaces built using WebAssembly. They are listed below:

DescriptionHuggingface spaceModelScope space
Voice activity detection with silero-vadClick me地址
Real-time speech recognition (Chinese + English) with ZipformerClick me地址
Real-time speech recognition (Chinese + English) with ParaformerClick me地址
Real-time speech recognition (Chinese + English + Cantonese) with Paraformer-largeClick me地址
Real-time speech recognition (English)Click me地址
VAD + speech recognition (Chinese) with Zipformer CTCClick me地址
VAD + speech recognition (Chinese + English + Korean + Japanese + Cantonese) with SenseVoiceClick me地址
VAD + speech recognition (English) with Whisper tiny.enClick me地址
VAD + speech recognition (English) with Moonshine tinyClick me地址
VAD + speech recognition (English) with Zipformer trained with GigaSpeechClick me地址
VAD + speech recognition (Chinese) with Zipformer trained with WenetSpeechClick me地址
VAD + speech recognition (Japanese) with Zipformer trained with ReazonSpeechClick me地址
VAD + speech recognition (Thai) with Zipformer trained with GigaSpeech2Click me地址
VAD + speech recognition (Chinese 多种方言) with a TeleSpeech-ASR CTC modelClick me地址
VAD + speech recognition (English + Chinese, 及多种中文方言) with Paraformer-largeClick me地址
VAD + speech recognition (English + Chinese, 及多种中文方言) with Paraformer-smallClick me地址
VAD + speech recognition (多语种及多种中文方言) with Dolphin-baseClick me地址
Speech synthesis (Piper, English)Click me地址
Speech synthesis (Piper, German)Click me地址
Speech synthesis (Matcha, Chinese)Click me地址
Speech synthesis (Matcha, English)Click me地址
Speech synthesis (Matcha, Chinese+English)Click me地址
Speaker diarizationClick me地址
Voice cloning with ZipVoice (Chinese+English)Click me地址
Voice cloning with Pocket TTS (English)Click me地址
Links for pre-built Android APKs

You can find pre-built Android APKs for this repository in the following table

DescriptionURL中国用户
Speaker diarizationAddress点此
Streaming speech recognitionAddress点此
Simulated-streaming speech recognitionAddress点此
Text-to-speechAddress点此
Voice activity detection (VAD)Address点此
VAD + non-streaming speech recognitionAddress点此
Two-pass speech recognitionAddress点此
Audio taggingAddress点此
Audio tagging (WearOS)Address点此
Speaker identificationAddress点此
Spoken language identificationAddress点此
Keyword spottingAddress点此
Links for pre-built Flutter APPs
Real-time speech recognition
DescriptionURL中国用户
Streaming speech recognitionAddress点此
Text-to-speech
DescriptionURL中国用户
Android (arm64-v8a, armeabi-v7a, x86_64)Address点此
Linux (x64)Address点此
macOS (x64)Address点此
macOS (arm64)Address点此
Windows (x64)Address点此

Note: You need to build from source for iOS.

Links for pre-built Lazarus APPs
Generating subtitles
DescriptionURL中国用户
Generate subtitles (生成字幕)Address点此
Links for pre-trained models
DescriptionURL
Speech recognition (speech to text, ASR)Address
Text-to-speech (TTS)Address
VADAddress
Keyword spottingAddress
Audio taggingAddress
Speaker identification (Speaker ID)Address
Spoken language identification (Language ID)See multi-lingual Whisper ASR models from Speech recognition
PunctuationAddress
Speaker segmentationAddress
Speech enhancementAddress
Source separationAddress
Some pre-trained ASR models (Streaming)

Please see

for more models. The following table lists only SOME of them.

Some pre-trained ASR models (Non-Streaming)

Please see

for more models. The following table lists only SOME of them.

Useful links
  • Documentation: https://k2-fsa.github.io/sherpa/onnx/
  • Bilibili 演示视频: https://search.bilibili.com/all?keyword=%E6%96%B0%E4%B8%80%E4%BB%A3Kaldi
How to reach us

Please see https://k2-fsa.github.io/sherpa/social-groups.html for 新一代 Kaldi 微信交流群 and QQ 交流群.

Projects using sherpa-onnx

VocaRead

iOS app for reading EPUBs, PDFs, and documents aloud. It uses sherpa-onnx to synthesize speech locally with Piper voices and can import books from OPDS catalogs.

Sherpa Voice / @siteed/sherpa-onnx.rn

React Native wrapper and demo app for validating sherpa-onnx on iOS, Android, and Web, including ASR, TTS, VAD, KWS, speaker ID, diarization, language ID, punctuation, audio tagging, and speech enhancement.

SmartVoice

SmartVoice is a local speech application for speech recognition and text-to-speech. Its smartvoice-auto virtual model matches each request's task and language against an editable routing table, then dynamically routes it to the most suitable installed model. sherpa-onnx powers CPU inference; a web interface and HTTP API are included.

Speed of Sound

A voice-typing application for the Linux desktop (GTK4/Adwaita). It captures microphone audio, transcribes it offline using Sherpa ONNX ASR models, optionally polishes the text with an LLM, and types the result into the active window via XDG Remote Desktop Portal keyboard simulation.

VoxSherpa TTS

VoxSherpa TTS is a 100% offline Android Text-to-Speech app powered by Sherpa-ONNX. It supports Kokoro-82M, Piper, and VITS engines with multilingual support including Hindi, English, British English, Japanese, Chinese and 50+ more languages.

GenerateModelsLibrarySettings

BreezeApp from MediaTek Research

BreezeAPP is a mobile AI application developed for both Android and iOS platforms. Users can download it directly from the App Store and enjoy a variety of features offline, including speech-to-text, text-to-speech, text-based chatbot interactions, and image question-answering

123
Open-LLM-VTuber

Talk to any LLM with hands-free voice interaction, voice interruption, and Live2D taking face running locally across platforms

See also https://github.com/t41372/Open-LLM-VTuber/pull/50

voiceapi

Streaming ASR and TTS based on FastAPI

It shows how to use the ASR and TTS Python APIs with FastAPI.

腾讯会议摸鱼工具 TMSpeech

Uses streaming ASR in C# with graphical user interface.

Video demo in Chinese: 【开源】Windows实时字幕软件(网课/开会必备)

lol互动助手

It uses the JavaScript API of sherpa-onnx along with Electron

Video demo in Chinese: 爆了!炫神教你开打字挂!真正影响胜率的英雄联盟工具!英雄联盟的最后一块拼图!和游戏中的每个人无障碍沟通!

Sherpa-ONNX 语音识别服务器

A server based on nodejs providing Restful API for speech recognition.

QSmartAssistant

一个模块化,全过程可离线,低占用率的对话机器人/智能音箱

It uses QT. Both ASR and TTS are used.

Flutter-EasySpeechRecognition

It extends ./flutter-examples/streaming_asr by downloading models inside the app to reduce the size of the app.

Note: [Team B] Sherpa AI backend also uses sherpa-onnx in a Flutter APP.

sherpa-onnx-unity

sherpa-onnx in Unity. See also #1695, #1892, and #1859

xiaozhi-esp32-server

本项目为xiaozhi-esp32提供后端服务,帮助您快速搭建ESP32设备控制服务器 Backend service for xiaozhi-esp32, helps you quickly build an ESP32 device control server.

See also

KaithemAutomation

Pure Python, GUI-focused home automation/consumer grade SCADA.

It uses TTS from sherpa-onnx. See also ✨ Speak command that uses the new globally configured TTS model.

Open-XiaoAI KWS

Enable custom wake word for XiaoAi Speakers. 让小爱音箱支持自定义唤醒词。

Video demo in Chinese: 小爱同学启动~˶╹ꇴ╹˶!

C++ WebSocket ASR Server

It provides a WebSocket server based on C++ for ASR using sherpa-onnx.

Go WebSocket Server

It provides a WebSocket server based on the Go programming language for sherpa-onnx.

Making robot Paimon, Ep10 "The AI Part 1"

It is a YouTube video, showing how the author tried to use AI so he can have a conversation with Paimon.

It uses sherpa-onnx for speech-to-text and text-to-speech.

1
TtsReader - Desktop application

A desktop text-to-speech application built using Kotlin Multiplatform.

MentraOS

Smart glasses OS, with dozens of built-in apps. Users get AI assistant, notifications, translation, screen mirror, captions, and more. Devs get to write 1 app that runs on any pair of smart glasses.

It uses sherpa-onnx for real-time speech recognition on iOS and Android devices. See also https://github.com/Mentra-Community/MentraOS/pull/861

It uses Swift for iOS and Java for Android.

flet_sherpa_onnx

Flet ASR/STT component based on sherpa-onnx. Example a chat box agent

achatbot-go

a multimodal chatbot based on go with sherpa-onnx's speech lib api.

fcitx5-vinput

Local offline voice input plugin for Fcitx5 (Linux input method framework). It uses C++ with offline ASR for speech recognition, supporting push-to-talk, command mode, and optional LLM post-processing.

Video demo in Chinese: fcitx5-vinput

Wake Word

A VS Code extension for hands-free voice-activated coding. It uses sherpa-onnx for real-time keyword spotting (KWS) to detect custom wake phrases and trigger VS Code commands by voice. Audio capture is handled by decibri, a cross-platform Node.js microphone streaming library with prebuilt native binaries.

SmartSub

SmartSub is a local-first cross-platform desktop application for the complete subtitle production pipeline: audio/video transcription, subtitle translation, proofreading, and subtitle burning/muxing.

It natively integrates sherpa-onnx to power three offline ASR engines — FunASR, Qwen3-ASR, and FireRedASR — delivering high-accuracy Chinese and multilingual speech recognition entirely on-device, with no file uploads required.

Fono

Talk to your computer. Fono is an open-source (GPL-3.0), complete voice-AI stack (speech-to-text, text-to-speech, a local LLM, wake word, speaker ID) in one small binary for the Linux, macOS, and Windows desktop. Press a key and speak: it types into any app, answers as a voice assistant, or drives a coding agent.

It uses sherpa-onnx's Supertonic TTS models for text-to-speech, with the Supertonic text frontend ported to Rust. See also #3750, which fixes dropped diacritics in the Supertonic frontend for Romanian, Czech, Polish, Hungarian, Turkish, Vietnamese, and other non-English Latin-script languages.

Domia

Domia is an open-source local AI companion you talk to, living entirely on hardware you own. Each Domia is its own character, with a distinct personality, voice, emotional state, and memory of you and its place — and it acts, not just talks: skills connect it to the real world over MCP, Home Assistant included. Domia nodes form a local peer-to-peer mesh that shares speech and reasoning compute, while room satellites bring each companion into the spaces where you live without giving up its identity. No cloud, no accounts, and no data leaving your network.

Domia runs sherpa-onnx in-process for keyword spotting, voice activity detection, streaming and offline speech recognition, and text-to-speech. Speech engines and models are selected through per-companion configuration, making it easy to match supported sherpa-onnx models to different hardware.

qwen-audio-agent

A realtime full-duplex voice runtime for AI coding agents (Claude Code, Codex, OpenCode, and other ACP agents). It uses sherpa-onnx keyword spotting with the 3M-parameter zh-en transducer model to implement a local voice wake word: the app sleeps on idle but keeps the microphone open, and the wake phrase brings the session back with no cloud calls.

Suflyor

An Android teleprompter that scrolls the script as you read it aloud. It runs two streaming Zipformer models on the phone (Russian small-ru-vosk int8 and English en-2023-06-26) and boosts the words of the script as hotwords with modified beam search. A floating window shows the text over the camera app while it records video.

Loud Caption

An open-source Flutter app for Android that turns nearby speech into large, high-contrast captions for people with hearing loss. SenseVoice ASR and Silero VAD run fully on-device through sherpa-onnx's Dart API; translation is optional and also local. No account, analytics, or cloud audio.

Recly

An open-source recorder for Galaxy Watch, Android, Apple Watch, iPhone, macOS, and Windows. Recordings go to the user's own Google Drive; there is no Recly server. The Android phone app (which also transcribes Galaxy Watch recordings) and the Windows app use sherpa-onnx for on-device transcription: Silero VAD splits each recording into speech segments, and sherpa-onnx's INT8 export of Qwen3-ASR 0.6B transcribes them. The ~1 GB model is downloaded on demand.

China Unicom 中国联通安卓 App

The Android App (version >= 12.14.1 (2026.07.28)) uses sherpa-onnx Kotlin API for keyword spotting.

APK lib screenshot showing only armeabi-v7a

China Life 中国人寿 App

The Android App (version >= 3.5.46 (2026.03.23)) uses sherpa-onnx Kotlin API for keyword spotting.

APK lib screenshot

deepseek-harness

It uses the JavaScript npm package sherpa-onnx-node with SenseVoice for local speech recognition.

akou

An open-source (GPL-3.0-or-later) call and meeting recorder for macOS that transcribes on the machine. It records the microphone and the call audio on two channels, shows a live transcript, and lets a terminal agent such as Claude Code or Codex follow and question the call over MCP. The same core runs as a self-hosted transcription server in Docker.

It runs sherpa-onnx-node in a Bun Worker: silero-vad splits each channel into speech segments, Parakeet TDT 0.6B v3 (OfflineRecognizer) or streaming Nemotron (OnlineRecognizer) writes the live transcript, and TitaNet embeddings (SpeakerEmbeddingExtractor) help tell the speakers on the call apart. After the call, Parakeet is the fast engine of the final pass and one of the engines of the fused pass. The larger Qwen3-ASR model runs outside sherpa-onnx, on llama-server.

bot-reborn

A $4 toy robot driven by an old Android phone, all from one web page in Chrome. sherpa-onnx runs in the page as WebAssembly: Silero VAD decides when someone is actually talking, so only real speech is sent to STT, and an optional keyword spotter (sherpa-onnx-kws-zipformer-zh-en-3M-2025-12-20) handles the wake word. Both run from one combined build, with the VAD symbols exported from the KWS WebAssembly target.

Voltip

An open-source (AGPL-3.0) push-to-talk dictation app for Windows, macOS, Linux and Android: hold a hotkey, speak, and the text is inserted at the cursor in the focused app. The desktop app uses the sherpa-onnx Rust crate for on-device recognition with SenseVoice and Paraformer, a streaming Zipformer for the live preview while the user speaks, and Silero VAD to trim silence and to split recordings of up to two hours at pauses. Models are downloaded on demand.

Outmake

A free Mac app (Apple silicon, macOS 26) for running open models on the Mac itself. Its Kokoro, Kitten, Piper and Supertonic voices run on sherpa-onnx: the app downloads the osx-arm64 shared build and speaks through sherpa-onnx-offline-tts, so those voices need no Python.

Runs on
GPU support unknown
What shows it
  • no dependency or feature matches a backend row
Native code
Required
  • Binds native code: sherpa-onnx, sherpa-onnx-sys
Python bindings
No Python binding crate found
License
Apache-2.0

Compare with similar projects

Order: strongest tier first, then most downloads, then name, with unmeasured values last. A library counts downloads over 30 days. An app counts binary downloads per release. An app with none counts its crate downloads over 30 days. ML Rust runs this catalogue, so its closest project always gets a row.

sherpa-onnx beside the projects that share a topic with it
ProjectDownloadsDependentsStarsLatest releaseRuns on (GPU)Native codeLicense
sherpa-onnx This page Featured

Safe Rust wrapper for sherpa-onnx speech recognition toolkit

259,599 downloads over 30 days 28 15,834 2.0.1 GPU support unknown Binds native code: sherpa-onnx, sherpa-onnx-sys Apache-2.0

Japanese text preprocessor for Text-to-Speech application (OpenJTalk rewrite in rust language).

Also in Speech and audio.

14,491 downloads over 30 days 7 61 0.15.0 GPU support unknown No native code found BSD-3-Clause
vosk-rs Listed Dormant

Safe wrapper around the Vosk API Speech Recognition Toolkit

Also in Speech and audio.

7,299 downloads over 30 days 4 182 0.3.1 GPU support unknown Binds native code: vosk-sys MIT
silero Listed

Production-oriented Rust wrapper for the Silero VAD ONNX model.

Also in Run and serve models.

1,888 downloads over 30 days 3 6 0.7.0 CUDA, ROCm Binds native code: ort-sys (feature coreml) Apache-2.0 OR MIT
qwen3_tts_rs App Listed

A Rust implementation of the Qwen3 Text-to-Speech (TTS) model inference.

Also in Run and serve models.

204 binary downloads per release Not applicable 237 Not measured Not measured None stated

Rust port of KittenTTS — ultra-lightweight ONNX-based text-to-speech

Also in Run and serve models.

3 downloads over 30 days 0 314 0.2.2 CUDA Binds native code: audiopus_sys, mp3lame-sys, ort-sys Apache-2.0
voxr New

Audio and speech on boostr: compressed-audio decode, resampling, DSP and grapheme to phoneme, with speech synthesis (Kokoro, VITS), voice cloning (VoxCPM2), transcription with word timings (Whisper), voice activity (Silero) and audio-text scoring (CLAP), on CPU or CUDA.

Also in Speech and audio.

642 downloads over 30 days 2 2 0.9.1 CUDA No native code found Apache-2.0
Why FeaturedIt passes every Featured gate.

What it meets

  • It has 20 active dependents and 20 new dependents in 365 days. Featured needs 11 active dependents or 9 new dependents in 365 days.
  • Active dependents are at 100% of their peak. Featured needs at least 50%.
  • Docs are present. The release commit or a manifest ties the crate to the repository.
  • No vulnerability advisory stays unpatched past the grace window. At least one version is neither a prerelease nor 0.0.x.
  • The last activity is on 7 Nov 2026, 2 days ago. The rules expect an update within 1200 days. Dormancy rule

Check notes

  • the latest release was packaged from a dirty working tree

Exact rules: Featured library. The check on applied thresholds version 9.

Every rule outcome, as the check records it
  • expected-interval: version 2.0.1 base 300, doubled for 259599 downloads per month, doubled for 20 active users: E = 1200 days
  • dormancy: last activity 2026-11-07, 2 days ago, E = 1200: active
  • featured: featured: active_users 20, new_adopters 20, former_glory 1
Crates2 crates

Measurements and sources

Each signal row shows the raw value, its source and the fetch date. The Sources list gathers every distinct source on this page. Movement needs more history.

Sources6 sources
Adoption20 active dependents, 20 new dependents in 365 days1 not measured
Adoption measurements
SignalValueSourceFetchedCounts
Active dependents20crates.io database dumpYes
New dependents (365 days)20crates.io database dumpYes
Peak active dependents18.5crates.io database dumpYes
Active dependents as a share of the peak1crates.io database dumpYes
Binary downloads per releaseNot measuredYes
MaintenanceLatest human commit: 2 days ago3 not measured
Maintenance measurements
SignalValueSourceFetchedCounts
Latest human commit2026-11-07GitHub repositoryYes
Latest release2026-10-27crates.io database dumpYes
First release2026-02-23crates.io database dumpYes
Latest version2.0.1crates.io database dumpYes
Days the oldest outside issue waits for a reply40GitHub repositoryYes
Maintainer replies over 365 days40GitHub repositoryYes
Repository archivedfalseGitHub repositoryYes
Repository gonefalseGitHub repositoryYes
Release commit or manifest in the repotruecrates.io packageYes
Published docstruecrates.io database dumpYes
Latest release fails cargo checkNot measuredYes
Build check dateNot measuredYes
Build check toolchainNot measuredYes
SecurityUnpatched vulnerabilities: none
Security measurements
SignalValueSourceFetchedCounts
Unpatched vulnerabilities past the grace windownoneRustSec advisory databaseYes
RustSec unmaintained advisorynoneRustSec advisory databaseYes
Deprecation noticenonecrates.io database dumpYes
Deprecated requirementnonecrates.io database dumpYes
Distribution33 releases, 259,599 downloads over 30 days5 not measured
Distribution measurements
SignalValueSourceFetchedCounts
Releases33crates.io database dumpYes
Downloads over 30 days259599crates.io database dumpYes
Binary downloads over the last 3 releasesNot measuredYes
Homebrew installs on request over 365 daysNot measuredYes
Repology repository familiesNot measuredYes
Docker pull growth over 90 daysNot measuredYes
Docker pulls at the growth baselineNot measuredYes
Every version a prereleasefalsecrates.io database dumpYes
Every version 0.0.xfalsecrates.io database dumpYes
Every version yankedfalsecrates.io database dumpYes
Crate deleted from crates.iofalsecrates.io database dumpYes
Repository15,834 stars, 1,858 forks, 273 contributors, 2,187 commits. Stars alone never qualify a project.
Repository measurements
SignalValueSourceFetchedCounts
GitHub stars15834GitHub repositoryYes — one part of the repository route
GitHub forks1858GitHub repositoryYes — one part of the repository route
Contributors with a GitHub account273GitHub contributorsYes — one part of the repository route
Commits on the default branch2187GitHub repositoryNo
Repository's main crate left out of the entrynonecrates.io database dumpYes
Facts that never count
Facts that never count measurements
SignalValueSourceFetchedCounts
LicenseApache-2.0crates.io database dumpNo
Runs on, from listed crates and their direct dependenciesGPU support unknowncrates.io database dumpNo
What shows each backendno dependency or feature matches a backend rowcrates.io database dumpNo
Native code, from listed crates and their dependenciesBinds native code: sherpa-onnx, sherpa-onnx-syscrates.io database dumpNo
Python bindings, from direct dependencies of listed cratesNo Python binding crate foundcrates.io database dumpNo
Crates that depend on a listed crate directly28crates.io database dumpNo

Corrections and review history

Report a correction

No correction applies to this entry.

Judgments

A judgment enters only through an approved issue and a merged pull request.

No judgment applies to this entry.