llama.cpp v0.8.0 adds realtime voice chat and text-to-speech to llama-server
1 hour ago
llama.cpp v0.8.0 adds real-time voice chat to llama-server on the OpenAI realtime protocol, a TTS endpoint, and LiquidAI's LFM3 audio and omni models that call tools from speech. The web UI downloads models from Hugging Face and compacts long chats; DeepSeek V4.1 Flash, Muse Spark Open and Kolibri-1 also run now. Release notes: https://github.com/ggml-org/llama.cpp/releases/tag/v0.8.0 Commits: https://github.com/ggml-org/llama.cpp/commits/v0.8.0
Ask about this presentation
Chapters
0:00llama.cpp v0.8.0 adds realtime voice chat and text-to-speech to llama-server
0:1401 Voice and speech
0:16LiquidAI's LFM3 models hear, see and speak
0:33LFM3 calls your tools from a spoken request
0:47POST /tts turns text into a WAV file
1:0302 The web UI
1:05Find and download models from Hugging Face inside the web UI
1:19/compact summarizes a long chat to free up context
1:34Search, reasoning effort and OGG audio in the web UI
1:4703 New models
1:48DeepSeek V4.1 Flash and Muse Spark Open run in llama.cpp
2:00Models that decide, embed and read documents
2:1404 Speed, access and safety
2:17The MoE expert cache splits into a stable half and a recent half
2:30llama-server --connect reaches your server from outside your network
2:46The new ggml speeds up CUDA, Intel and OpenCL backends
3:01Deep grammars, deep JSON and the DRY sampler can't exhaust the server
3:17For a local voice assistant, start with LFM3-Omni-2B on llama-server
Show transcriptHide transcript
llama-server can now hold a spoken conversation. A new real-time endpoint speaks the OpenAI real-time protocol, so your voice streams in and the model's answer streams back as speech and text.
First, the new voice features.
Voice chat runs on LiquidAI's new LFM3 models. The Audio and Omni versions listen and talk back from one model of 2 billion parameters, and Omni also watches video. Live transcription is on the Audio model only.
Spoken requests can trigger tool calls. Asked out loud to set the volume to 30, the model calls the set volume function and starts its spoken answer within a third of a second.
Plain text-to-speech gets its own TTS endpoint. Post text and an optional speaker recording, and get a WAV file back. An OpenAI-compatible version is still to come. Soprano is a new speech model too.
Next, the web interface.
The web interface can now browse Hugging Face and download models without a terminal. Each quantization notes whether it fits in your memory, and the matching draft model for speculative decoding downloads with it.
Long chats can now be compacted. Type /compact and the model summarizes the conversation so far, and later turns continue from that summary. Automatic compaction near the context limit is still to come.
A new search dialog finds any conversation or message. The reasoning menu now lists the effort levels the model's chat template defines, and OGG voice notes attach as audio.
New models you can run.
DeepSeek V4.1 Flash now runs in llama.cpp. So does Muse Spark Open, which takes text, images and audio, and so does Kolibri-1 from Aleph Alpha.
LiquidAI's d1 decision models and Granite Switch Decision arrive too. Nemotron 3.5 Embed builds search embeddings, and MiniCPM-OCR reads the text in document images.
Then speed, remote access and safety.
Mixture-of-experts models that keep experts in system memory get a smarter expert cache. It splits in two, and regular experts sit in a stable half where a burst of rare ones can't push them out.
A new connect flag reaches llama-server from outside your home network. The link is peer to peer over WebRTC, encrypted end to end, and needs a separate program, llama-connect, which has no Intel Mac build yet.
Underneath, ggml moved to a new version with faster backends. CUDA launches its graphs in chunks, Intel GPUs replay recorded graphs, and OpenCL devices can now run Q2_K and Q3_K quantized weights.
Several fixes stop one request from taking a server down. Grammars get a recursion limit, JSON nested past 128 levels is refused, and the DRY sampler caps its sequence breakers so it can't exhaust memory.
For a voice assistant on my own machine, I'd start with LFM3 Omni on llama-server: one small model hears you, calls your tools and talks back. If you build on the library, the release notes list every API change.
