Why Features Compare Platforms CLI Docs

The unified audio layer for AI agents and Voice AI applications

Decibri brings the core audio infrastructure for voice applications into one stack. Capture and process real-time audio, cancel acoustic echo, detect speech, and stream to agents, services, or files. Available for Python, Node.js, and Rust. Zero setup.

Install with one command:

$ pip install decibri

Then start streaming:

import decibri

with decibri.Microphone(sample_rate=16000) as mic:
    for chunk in mic:
        print(f"Got {len(chunk)} bytes")
        break

Real-time audio capture and playback is harder than it should be

Requires system audio tools, build tools, or both
Inconsistent install experience across Python, Node.js, and Rust
Inconsistent runtime behavior across macOS, Windows, and Linux
Painful setup for something that should be simple

Designed for real-time systems

Built for real-time audio. Pre-built binaries for Python and Node.js mean no compilers and nothing to build at install time.

Cross-platform

macOS, Windows, and Linux with pre-built binaries. No build tools required on any platform.

Direct capture

100ms audio chunks by default (1600 frames at 16kHz). cpal captures directly from the OS audio layer with no subprocess, no shell, and no intermediate encoding.

Stream-native

Python iterators, Node.js Readable streams, and Rust channels. Pipe to files, WebSockets, or voice agents using each language's native idioms.

Zero setup

No system audio libraries, no build tools, no install scripts. Rust and Decibri's Audio Host compiled into a single package per language.

Type-safe

Bundled type definitions for Python (typing stubs), Node.js (TypeScript .d.ts), and Rust (native types). Full IDE autocomplete and inline documentation.

Configurable

Sample rate, channels, frames per buffer, device selection by index or name, int16 or float32 output, and optional voice activity detection with speech/silence events.

Audio output

Play audio through the system speaker. Decibri's Speaker API works as a standard write target you can pipe capture into for full duplex audio.

ML voice detection

Bundled Silero VAD v6.2 model for accurate speech detection in noisy environments. Runs locally in Rust via ONNX Runtime with no cloud API needed.

Browser support

The Node.js package ships with browser support out of the box. Conditional exports serve an AudioWorklet implementation when bundled for browsers.

Pre-built binaries, zero setup

Pre-compiled native binaries install with the package: pip fetches the wheel built for your platform, and npm adds the optional platform package that matches it. No build tools, no compilation, no post-install downloads.

Windows 11
x64
Windows 11
arm64
macOS
arm64 (Apple Silicon)
Linux
x64
Linux
arm64

Built for real-time voice applications

Real-time transcription
Wake word detection
Voice agents & assistants
Streaming audio pipelines
Speech-to-text engines
Audio monitoring

Record audio to disk

Decibri provides a one-line record_to_file() helper for the simple case, and full streaming control when you need it. Set the sample rate to match your target format. No encoding step, no intermediate buffers.

import decibri

decibri.record_to_file("capture.wav", duration_seconds=10, sample_rate=16000)

Audio infrastructure for real-time applications

Decibri sits between your application and the operating system. It captures from microphones, plays to speakers, and runs voice activity detection, all in real-time. Use it when you need predictable, low-latency audio I/O without running external audio tools or handling platform differences yourself.

Decibri is built for:

  • ✓Real-time microphone capture in Python, Node.js, or Rust applications
  • ✓Streaming PCM audio to speech-to-text services, voice agents, or WebSocket pipelines
  • ✓Local voice activity detection with bundled Silero VAD
  • ✓Recording audio to file for ASR batch jobs or CI smoke tests
  • ✓Cross-platform deployment (Windows, macOS, Linux) from a single codebase
  • ✓Server-side audio in voice agent backends, CLI tools, and edge devices

Works with your existing stack

Decibri outputs raw 16-bit PCM, the standard format expected by speech and audio processing engines. See the integration guides for working examples.

Decibri outputs raw PCM, the standard format used by Vosk, openWakeWord, and any audio processing engine.

View all docs →

Products powered by Decibri

Tools that use decibri as their audio capture layer. From voice agents to wake phrase detection.

Common questions

16-bit signed integer PCM, little-endian by default. A 32-bit float format is also available. The default is the raw format expected by most speech and wake-word engines including Vosk, sherpa-onnx, and whisper.cpp.

Through Decibri's Audio Host, which calls the operating system's own audio layer directly: WASAPI on Windows, CoreAudio on macOS, and ALSA on Linux.

Not for Python or Node.js. Pre-built binaries install with the package on every supported platform: pip fetches the wheel built for your platform, and npm adds the optional platform package that matches it. No compilers, no node-gyp, no Visual Studio Build Tools, no Xcode required. The Rust crate is compiled from source by cargo.

Yes. Decibri works in both Node.js and the browser from a single package. When bundled for the browser (webpack, vite, etc.), conditional exports serve the browser implementation automatically. No separate package needed. See the browser documentation.

Yes. Use Microphone.devices() to list available input devices, then pass the device index or a name substring to the constructor options.

Node.js 18 and above.

Apache-2.0.

Decibri supports Python 3.10 and above on Windows, macOS, and Linux. Prebuilt wheels are published for Linux x64, Linux ARM64, macOS Apple Silicon, Windows x64, and Windows ARM64. On Windows ARM64 the minimum is Python 3.11, the first CPython release published for that platform.

Yes. Decibri ships AsyncMicrophone, AsyncSpeaker, and async_record_to_file() as proper async classes that work as async context managers with async for iteration. Audio capture runs on a separate thread, so the event loop isn't blocked. The recommended pattern is async with await decibri.AsyncMicrophone.open(...) as mic: async for chunk in mic: ... The open() factory dispatches the optional Silero VAD model load off the event loop.

Rust gives Decibri direct OS audio access via Decibri Audio Host, a cross-platform Rust audio library. The Rust core compiles to native code on every supported platform, so the same audio engine powers the Python, Node.js, and Rust packages. Memory safety enables real-time audio code without manual buffer management. The result: predictable low-latency audio straight from the operating system's audio layer.

Start streaming audio in minutes

One install. One import. Real-time microphone audio.