{"slug": "decibri-unified-audio-layer-for-ai-agents-and-voice-ai-applications", "title": "Decibri – unified audio layer for AI agents and Voice AI applications", "summary": "Decibri launched a unified audio layer for AI agents and Voice AI applications, providing real-time microphone capture, speaker playback, and streaming to voice agents, WebSockets, or files via Python, Node.js, or Rust. The tool features built-in voice activity detection, zero system dependencies, and cross-platform support for macOS, Windows, and Linux, aiming to simplify real-time audio integration for developers.", "body_md": "# The unified audio layer for AI agents and Voice AI applications\n\nCapture real-time microphone audio, play to speakers, or pipe anywhere (voice agents, WebSockets, or files) using Python, Node.js, or Rust. Built-in voice activity detection. Zero system dependencies. Zero setup.\n\nInstall with one command:\n\nThen start streaming:\n\n``` python\nimport decibri\n\nwith decibri.Microphone(sample_rate=16000) as mic:\n    for chunk in mic:\n        print(f\"Got {len(chunk)} bytes\")\n        break\njs\nconst { Microphone } = require('decibri');\n\nconst mic = new Microphone({ sampleRate: 16000 });\nmic.on('data', (chunk) => console.log(`Got ${chunk.length} bytes`));\nsetTimeout(() => mic.stop(), 5000);\nuse std::time::Duration;\nuse decibri::{DecibriError, Microphone, MicrophoneConfig};\n\nfn main() -> Result<(), Box<dyn std::error::Error>> {\n    let capture = Microphone::new(MicrophoneConfig::default())?;\n    let stream = capture.start()?;\n    loop {\n        match stream.next_chunk(1600, Some(Duration::from_millis(100))) {\n            Ok(Some(chunk)) => println!(\"Got {} samples\", chunk.data.len()),\n            Ok(None) => continue,\n            Err(DecibriError::MicrophoneStreamClosed) => break,\n            Err(e) => return Err(e.into()),\n        }\n    }\n    Ok(())\n}\n```\n\n## Real-time audio capture and playback is harder than it should be\n\n## Designed for real-time systems\n\nBuilt for real-time audio. Pre-built binaries for Python, Node.js, and Rust mean no compilers, no system audio libraries, and no setup.\n\n### Cross-platform\n\nmacOS, Windows, and Linux with pre-built binaries. No build tools required on any platform.\n\n### Direct capture\n\n100ms 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.\n\n### Stream-native\n\nPython iterators, Node.js Readable streams, and Rust channels. Pipe to files, WebSockets, or voice agents using each language's native idioms.\n\n### Zero dependencies\n\nNo system audio libraries, no build tools, no install scripts. Rust and cpal compiled into a single package per language.\n\n### Type-safe\n\nBundled type definitions for Python (typing stubs), Node.js (TypeScript .d.ts), and Rust (native types). Full IDE autocomplete and inline documentation.\n\n### Configurable\n\nSample rate, channels, frames per buffer, device selection by index or name, int16 or float32 output, and optional voice activity detection with speech/silence events.\n\n### Audio output\n\nPlay audio through the system speaker. Decibri's Speaker API works as a standard write target you can pipe capture into for full duplex audio.\n\n### ML voice detection\n\nBundled Silero VAD v5 model for accurate speech detection in noisy environments. Runs locally in Rust via ONNX Runtime with no cloud API needed.\n\n### Browser support\n\nThe Node.js package ships with browser support out of the box. Conditional exports serve an AudioWorklet implementation when bundled for browsers.\n\n## Pre-built binaries, zero setup\n\nPre-compiled native binaries ship inside the package. No build tools, no compilation, no post-install downloads.\n\n## Built for real-time voice applications\n\n### Record audio to disk\n\nDecibri provides a one-line `record_to_file()`\n\nhelper 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.\n\n``` python\nimport decibri\n\ndecibri.record_to_file(\"capture.wav\", duration_seconds=10, sample_rate=16000)\njs\nconst { Microphone } = require('decibri');\nconst fs = require('fs');\n\nconst mic = new Microphone({ sampleRate: 16000, channels: 1 });\nmic.pipe(fs.createWriteStream('capture.raw'));\nuse decibri::sample::f32_to_i16_le_bytes;\nuse decibri::{Microphone, MicrophoneConfig};\nuse std::fs::File;\nuse std::io::Write;\n\nfn main() -> Result<(), Box<dyn std::error::Error>> {\n    let mut file = File::create(\"capture.raw\")?;\n    let capture = Microphone::new(MicrophoneConfig::default())?;\n    let stream = capture.start()?;\n    while let Ok(Some(chunk)) = stream.next_chunk(1600, None) {\n        file.write_all(&f32_to_i16_le_bytes(&chunk.data))?;\n    }\n    Ok(())\n}\n```\n\n## Audio infrastructure for real-time applications\n\nDecibri 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 managing system dependencies or platform differences.\n\n### Decibri is built for:\n\n- ✓Real-time microphone capture in Python, Node.js, or Rust applications\n- ✓Streaming PCM audio to speech-to-text services, voice agents, or WebSocket pipelines\n- ✓Local wake word detection with bundled Silero VAD\n- ✓Recording audio to file for ASR batch jobs or CI smoke tests\n- ✓Cross-platform deployment (Windows, macOS, Linux) without system audio dependencies\n- ✓Server-side audio in voice agent backends, CLI tools, and edge devices\n\n## Works with your existing stack\n\nDecibri outputs raw 16-bit PCM, the standard format expected by speech and audio processing engines. See the integration guides for working examples.\n\n[Cloud](/docs/integrations/stt/assemblyai)\n\n### AssemblyAI\n\nReal-time cloud speech-to-text with turn-based transcription\n\n[Cloud](/docs/integrations/stt/aws-transcribe)\n\n### AWS Transcribe\n\nReal-time cloud speech-to-text with Amazon Transcribe streaming\n\n[Cloud](/docs/integrations/stt/azure)\n\n### Azure\n\nReal-time cloud speech-to-text with Azure Speech-to-Text\n\n[Cloud](/docs/integrations/stt/deepgram)\n\n### Deepgram\n\nReal-time cloud speech-to-text with Deepgram's Nova-3 model\n\n[Cloud](/docs/integrations/stt/google)### Google\n\nReal-time cloud speech-to-text with Google Cloud Speech-to-Text\n\n[Cloud](/docs/integrations/stt/mistral-voxtral)\n\n### Mistral\n\nReal-time cloud speech-to-text with Voxtral open-weights model\n\n[Cloud](/docs/integrations/stt/openai)\n\n### OpenAI\n\nReal-time cloud speech-to-text with OpenAI's Realtime API\n\n[Local](/docs/integrations/stt/whisper-cpp)\n\n### Whisper.cpp\n\nLocal speech-to-text transcription with OpenAI's Whisper model\n\nDecibri outputs raw PCM, the standard format used by Vosk, openWakeWord, and any audio processing engine.\n\n## Products powered by Decibri\n\nTools that use decibri as their audio capture layer. From voice agents to wake phrase detection.\n\n[\nvoxagent\ndecibri\n+\nwhisper.cpp\n+\nOllama\n](https://voxagent.run)\n\nVoice-powered terminal agent. Speak commands, get answers. Fully offline using whisper.cpp for local transcription and Ollama for local LLM inference. No cloud, no API keys.\n\n[\nWake Word\ndecibri\n+\nsherpa-onnx\n+\nVS Code API\n](https://wakeword.io)\n\nVoice activation for code editors. Say \"Hey Claude\" and Claude opens. Say \"Hey Copilot\" and Copilot opens. Fully local wake phrase detection using sherpa-onnx. Zero config.\n\n## Common questions\n\n16-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.\n\nNo. Decibri uses cpal for direct OS audio access. There are no system audio libraries to install.\n\nNo. Pre-built binaries ship with the package on every supported platform: Python (wheels), Node.js (optional platform packages), and Rust (compiled at install time via cargo). No compilers, no node-gyp, no Visual Studio Build Tools, no Xcode required.\n\nYes. 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](/docs/apis/browser).\n\nYes. Use Microphone.devices() to list available input devices, then pass the device index or a name substring to the constructor options.\n\nNode.js 18 and above.\n\nApache-2.0.\n\nDecibri supports Python 3.10 and above on Windows, macOS, and Linux. Prebuilt wheels are published for Linux x64, Linux ARM64, macOS Apple Silicon, and Windows x64.\n\nYes. 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.\n\nRust gives decibri direct OS audio access via cpal, 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 with zero system dependencies.\n\n## Start streaming audio in minutes\n\nOne install. One import. Real-time microphone audio.", "url": "https://wpnews.pro/news/decibri-unified-audio-layer-for-ai-agents-and-voice-ai-applications", "canonical_source": "https://decibri.com", "published_at": "2026-07-15 07:23:38+00:00", "updated_at": "2026-07-15 07:48:01.933100+00:00", "lang": "en", "topics": ["ai-tools", "developer-tools", "artificial-intelligence"], "entities": ["Decibri", "Silero VAD", "ONNX Runtime", "cpal"], "alternates": {"html": "https://wpnews.pro/news/decibri-unified-audio-layer-for-ai-agents-and-voice-ai-applications", "markdown": "https://wpnews.pro/news/decibri-unified-audio-layer-for-ai-agents-and-voice-ai-applications.md", "text": "https://wpnews.pro/news/decibri-unified-audio-layer-for-ai-agents-and-voice-ai-applications.txt", "jsonld": "https://wpnews.pro/news/decibri-unified-audio-layer-for-ai-agents-and-voice-ai-applications.jsonld"}}