Edited by humans. Written by AI. How our editing works
All articles

audio.cpp Aims to Be a Local Runtime for Audio AI

audio.cpp is a new open-source C++ project attempting to unify local audio AI—TTS, STT, voice cloning—into one binary. Here's what it can and can't do yet.

Dev Kapoor

Written by AI. Dev Kapoor

August 15, 20267 min read
Share:
Yellow "AUDIO" box with arrow pointing to cartoon llama character with microphone symbol, on dark background

Photo: AI. Atticus Ferenczi

The story of local AI keeps repeating itself, and that's not a bad thing. A fragmented, Python-dependent mess. Someone writes a lean C++ wrapper around a capable inference engine. The ecosystem consolidates. Suddenly things that felt academic feel usable. llama.cpp did it for language models. whisper.cpp did it for transcription. Now a project barely a month old is making the same bet—but for the full audio stack.

The project is audio.cpp, and the pitch is blunt: one binary, one runtime, roughly 30 model families, covering text-to-speech, speech-to-text, voice cloning, voice conversion, speaker identification, and music generation. No Python at inference time. No cloud dependency. Built on GGML—the same tensor computation library that powers both llama.cpp and whisper.cpp—with swappable backends for CPU, Nvidia, Vulkan, and Apple Silicon's Metal.

Better Stack's recent hands-on video walks through the project in real time, demo crashes and timing disclaimers included. It's worth watching because the host makes a choice that a lot of tech coverage doesn't: they don't just read the benchmark numbers off the README. They time things live on their own Mac instead.

That decision matters, and I'll explain why in a moment.

What the gap actually looks like

Before audio.cpp, the local audio AI landscape was a collection of single-purpose tools that didn't talk to each other. whisper.cpp transcribes. Ollama and llama.cpp handle text. Coqui and Piper synthesize speech. FFmpeg moves audio around without running a single neural model. None of them cross lanes.

As the Better Stack video puts it: "Whisper CPP only listens. Ollama and Llama CPP are text brains. They're not for audio. Coqui and Piper only talk. FFmpeg shoves audio around, but doesn't run a single neural model."

If you wanted a local pipeline that could transcribe, respond, and speak back—a voice assistant that never phones home—you were stitching together multiple runtimes, managing multiple Python environments, and hoping nothing clashed. That's not a hypothetical complaint. Anyone who tried to build something like this before 2023 knows exactly how many hours disappear into PyTorch version hell.

audio.cpp is trying to be the thing standing in the middle. One static binary you can copy to another machine and run.

That Alibaba's Fun Audio Chat model shows similar ambitions from a different direction—bringing conversational voice AI to local hardware—which tells you something about where developer appetite is right now. Multiple teams, with very different resources, are converging on the same problem.

The demo and what it actually shows

The voice cloning demonstration in the video is genuinely interesting: a 10-second reference clip fed directly to audio.cpp, C++ inference on GGML's Metal backend, output generated without anything leaving the machine. The host types a sentence that didn't exist before and gets back their own voice reading it. That's real, and it works.

What's also real: the host is very deliberate about not citing the project's own benchmarks. Those numbers—10 hours of audio processed in 3 minutes, five times faster than PyTorch—were all measured on an Nvidia RTX 5090. "There's no one single published [benchmark] on Apple Silicon yet. That's the real reason I timed this right now instead of just reading from the state of this."

That's the right call, and it's a small act of intellectual honesty that's easy to skip when a project's README is doing the marketing for you. Benchmarks measured on a $2,000 GPU are not informative for someone running Metal on a MacBook. They're informative for the project's GitHub star count.

What's actually broken right now

audio.cpp is approximately one month old. That's not a caveat—it's load-bearing information for every claim about what this project is.

The issue tracker is, by the video's account, populated with real crashes, memory leaks, and models that produce robotic output. There are no pre-built Mac binaries; you compile it yourself using a Metal build script and Xcode tools. That's doable, but it's not the one-click install that made Ollama so accessible to developers who weren't comfortable living in a terminal.

The "no Python" promise also requires a qualifier: "Downloading and converting the models still leans on a Python helper." Python-free at inference time is accurate. Python-free end-to-end is not yet true.

There's also a labeling issue worth flagging. Some models in the project carry an MLX label—Apple's machine learning framework—but audio.cpp doesn't actually use MLX. It's GGML on a Metal backend. That's not necessarily a problem in terms of functionality, but it's the kind of metadata confusion that creates friction when developers are trying to understand what they're actually running.

And then there's the maintainer situation, which is the part of this story that I find most interesting from a sustainability standpoint: "This is essentially one person." One developer, early version, real crashes, active issue tracker. That's a recognizable shape in open source—it's what llama.cpp looked like before Georgi Gerganov had hundreds of contributors. It's also what a lot of projects look like right before they quietly stop being maintained.

The llama.cpp argument

The strongest version of audio.cpp's case isn't "this is ready to use." It's "this is where the category is going, and someone has to build the first rough version."

The Better Stack video makes this argument explicitly, and it's worth engaging with on its merits: "Llama CPP didn't change everything because its first release was flawless. It wasn't. It changed everything because it took a complete Python mess and it turned it into one fast local binary and the whole ecosystem just piled on top of that."

That's historically accurate. llama.cpp's early commits were rough. The project worked because the underlying insight—GGML can run quantized models fast on consumer hardware—was correct, and because enough developers found that insight compelling enough to contribute. The messy early code got cleaned up because the direction was right.

audio.cpp is making the same structural bet. If the underlying insight holds—that GGML can unify local audio AI the way it unified local language models—then the crashes and missing benchmarks and Python helper scripts are iteration problems, not architectural ones. If the insight doesn't hold, this is a GitHub repo that will quietly accumulate unresolved issues until the maintainer moves on.

The Apache 2.0 license (the README's GitHub metadata apparently misdetects it, but the license file itself is unambiguous) means the codebase is legally reusable. If the project stalls, someone else can pick it up. That's worth something.

Who this is actually for right now

The Better Stack video is refreshingly clear about the audience: people who enjoy local AI, don't flinch at compiling software, and will evaluate output quality themselves before depending on it. That's a real demographic—it's not small—but it's not "developers who need to ship a voice feature next quarter."

If you're in the first group, audio.cpp is worth an afternoon. The voice cloning demo works. The OpenAI-compatible server mode—which lets you point existing cloud API code at localhost without rewriting anything—is a genuinely clever design choice that lowers the switching cost considerably.

If you're in the second group, the project's own issue tracker will tell you everything you need to know about where it is in its development arc.

The more interesting question is what happens between those two groups over the next six to twelve months. llama.cpp went from "interesting hack" to "thing that reshaped how the industry thinks about model deployment" in roughly that timeframe, partly because the timing aligned with a surge of developer interest in local AI. That same interest is now pointing at audio. audio.cpp showed up early. Whether it's the right project at the right time, or just early, is genuinely unclear—and that uncertainty is worth sitting with rather than resolving in either direction.


Dev Kapoor covers open source software and developer communities for Buzzrag.

From the BuzzRAG Team

AI Moves Fast. We Keep You Current.

Framework breakdowns, tool comparisons, and AI coding insights — distilled from the best tech YouTube creators. Free, weekly.

Weekly digestNo spamUnsubscribe anytime

More Like This

Open box overflowing with AI audio tools and icons against dark background with "TOO MUCH?" text and yellow arrow pointing…

Microsoft's VibeVoice Can Clone Your Voice—Here's Why

Microsoft released VibeVoice, an open-source voice cloning tool that runs offline. Better Stack tested it against ElevenLabs and Chatterbox—here's what works.

Tyler Nakamura·6 months ago·5 min read
Google Gemma 4 chat interface with starry background, showing message input box and installation guide text, Windows and…

Google's Gemma 4 Brings Powerful AI to Consumer Hardware

Google released Gemma 4 under Apache 2.0 license. The open model runs on standard GPUs, challenging the assumption you need enterprise hardware for capable AI.

Dev Kapoor·4 months ago·6 min read
A dark background with "5 MIN FIX" in white and yellow text, a clock showing 3 o'clock, and a red starburst icon connected…

Claude-Mem Gives AI Coding Tools Persistent Memory

Open-source plugin Claude-Mem solves AI coding amnesia with local, persistent memory across sessions. Token-efficient and searchable context retention.

Dev Kapoor·6 months ago·5 min read
Bold yellow and white text reading "GOODBYE AI SLOP" with "NEW" label and arrow pointing to a dark device interface with a…

Fallow: Cleaning Up After AI Coding Agents

Fallow promises to detect dead code, duplication, and complexity in AI-generated JavaScript. But who's actually responsible for code quality?

Dev Kapoor·3 months ago·6 min read
Two high-end graphics cards clash with lightning effects between them, labeled "1-BIT MODELS" with text "THE GAME CHANGED…

PrismML's Bonsai 27B Brings Qwen to Consumer Hardware

PrismML's Bonsai 27B runs Qwen 3.6 27B on 10GB of RAM using ternary compression. Here's what the benchmarks show—and what they don't.

Dev Kapoor·1 month ago·7 min read
Five men in casual business attire participate in a panel discussion about local AI, with company logos (NVIDIA, Roboflow,…

Local AI's Inflection Point: Useful, Not Just Interesting

A panel of local AI builders at NVIDIA, Roboflow, Exo Labs, and r/LocalLLaMA maps where the movement stands—and what still needs solving.

Dev Kapoor·1 month ago·8 min read
Dark blue presentation slide with lightning bolts, featuring "Lightning Talk: Proof Searching in DepC" in white and gold…

Can a Compiler Prove Your C Code Is Safe?

Raffaele Rossi's DepC project brings dependent types to C/C++, letting the compiler prove array bounds at compile time. Here's what that actually means.

Dev Kapoor·3 months ago·7 min read
A cartoon penguin mascot gestures on a bright yellow background next to bold text reading "WHAT'S NEW IN LINUX 7.0

Linux 7.0 Released: What's New in the Kernel

Linux 7.0 is here with major changes to file systems, networking, containers, and Btrfs. Here's what the release actually means—and what it signals about where the kernel is headed.

Dev Kapoor·3 months ago·7 min read

RAG·vector embedding

2026-08-15
1,808 tokens1536-dimmodel text-embedding-3-small

This article is indexed as a 1536-dimensional vector for semantic retrieval. Crawlers that parse structured data can use the embedded payload below.