Open-source voice AI family from Microsoft, with long-form speech recognition (ASR), multi-speaker text-to-speech (TTS), and real-time streaming TTS models.
nyosegawa/speech.cpp
A C++ speech toolkit on ggml for text-to-speech, speech recognition and voice activity detection, running on Metal, Vulkan or CPU with an OpenAI-compatible server.
Open-source alternative to:OpenAI Whisper API
- Stars
- 371
- Forks
- 23
- Open issues
- 12
- Last commit
- 6 days ago
What is it?
speech.cpp provides a single `speech` command and a shared library, `libspeech`, with one C API for speech synthesis, speech recognition, voice activity detection and speaker diarization. It runs on the CPU, Metal and Vulkan through ggml, and each model is fetched by name as one GGUF file that includes its codec, so no Python or CUDA setup is needed.
The catalog covers Qwen3-TTS, Irodori-TTS, Drama 3 for synthesis, and Qwen3-ASR, ReazonSpeech, parakeet, Haas and Nemotron for recognition, with Silero VAD and Nemotron diarization for detection and speaker separation. The `speech serve` command exposes OpenAI's audio speech and transcription endpoints plus Realtime transcription over local HTTP, and `speech asr --live` transcribes microphone input as it is spoken.
For programs, `speech worker` serves a loaded model over JSON Lines on stdin and stdout, and the C API lets an application link the library directly. Installers are provided for macOS on Apple silicon, Windows x64 and Linux x86-64.
Key features
- 01Text-to-speech with several model families and named voices.
- 02Speech recognition with language detection, timestamps and speaker labels.
- 03Live microphone transcription through `speech asr --live`.
- 04OpenAI-compatible audio and Realtime transcription endpoints on localhost.
- 05Runs on Metal, Vulkan or CPU without Python or CUDA.
Use cases
- Adding local speech output or transcription to an app that uses OpenAI's audio API.
- Building a voice assistant that transcribes microphone input in real time.
- Transcribing Japanese or multilingual recordings offline on a personal computer.
- Embedding speech models in another program through the C API or JSON Lines worker.
Quick start
- 1
Install speech with the official install script from the README
- 2
Synthesize a sentence with Qwen3-TTS (the model is fetched the first time)
speech tts qwen3-tts-0.6b --voice ryan -o hello.wav "Hello. It will be sunny in Tokyo tomorrow." - 3
Transcribe the WAVE file with Qwen3-ASR
speech asr qwen3-asr-0.6b hello.wav - 4
Open the local web page to pick models, speak and transcribe
speech serve --open
Things to know
- Install scripts are available only for macOS on Apple silicon, Linux on x86-64 and Windows x64; Intel Macs require building from source.
- The server listens on 127.0.0.1 and has no authentication.
- Some models are very large, such as drama-3 at 20.8 GB and nemotron-3.5-transcribe at 19.0 GB.
In collections
Topics
FAQ
- What is speech.cpp?
- A C++ speech toolkit on ggml for text-to-speech, speech recognition and voice activity detection, running on Metal, Vulkan or CPU with an OpenAI-compatible server. speech.cpp provides a single `speech` command and a shared library, `libspeech`, with one C API for speech synthesis, speech recognition, voice activity detection and speaker diarization. It runs on the CPU, Metal and Vulkan through ggml, and each model is fetched by name as one GGUF file that includes its codec, so no Python or CUDA setup is needed.
- Is speech.cpp free to use? What license does it have?
- speech.cpp is open source under the MIT license. Check the license terms before using it in commercial products.
- Is speech.cpp still maintained?
- Actively maintained. The last commit to speech.cpp was on Nov 1, 2026.
- What can I use speech.cpp for?
- Adding local speech output or transcription to an app that uses OpenAI's audio API. Building a voice assistant that transcribes microphone input in real time. Transcribing Japanese or multilingual recordings offline on a personal computer. Embedding speech models in another program through the C API or JSON Lines worker.
- How do I install speech.cpp?
- Install speech with the official install script from the README Synthesize a sentence with Qwen3-TTS (the model is fetched the first time): speech tts qwen3-tts-0.6b --voice ryan -o hello.wav "Hello. It will be sunny in Tokyo tomorrow." Transcribe the WAVE file with Qwen3-ASR: speech asr qwen3-asr-0.6b hello.wav Open the local web page to pick models, speak and transcribe: speech serve --open
- Where can I get speech.cpp?
- The source code and installation instructions are on GitHub: https://github.com/nyosegawa/speech.cpp
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Sample code showing how to call Alibaba Cloud Bailian speech models for speech recognition, speech synthesis, and voice chat.
ComfyUI nodes for Fish Audio Drama 3 text-to-speech with voice cloning, multi-speaker dialogue and inline cues, plus native Qwen3-ASR transcription.
Open-source speech recognition toolkit for offline and streaming ASR, with VAD, punctuation, speaker labels and OpenAI-compatible serving.
A Swift SDK running speech models (ASR, TTS, VAD, speaker diarization) locally on Apple devices via CoreML and the Neural Engine.
Turkish voice design tool built on VoxCPM2 that runs on a 4 GB NVIDIA GPU, with a local web UI and bundled synthetic voices.