# Micdrop Integrate a powerful voice mode in your web or React Native app with a few lines of code using Micdrop. One server, the same call on every platform. Use provided AI integrations (agents, STT, TTS) or build your own. A markdown version of every page is available by appending `.md` to its URL (e.g. https://micdrop.dev/docs/getting-started.md). ## Pages - [Page not found](https://micdrop.dev/404): This page does not exist. - [Micdrop: TypeScript voice AI SDK for web and React Native](https://micdrop.dev/): Add a real-time voice mode to your web or React Native app with a few lines of TypeScript. It runs on your own servers, with hosted or local providers. - [Blog](https://micdrop.dev/blog) ## Documentation - [Getting Started](https://micdrop.dev/docs/getting-started): Get up and running with Micdrop to build real-time voice conversations with AI agents. - [Client (Browser)](https://micdrop.dev/docs/client): Handle real-time voice conversations in the browser with microphone input, speaker output, voice activity detection and WebSocket streaming. - [Installation](https://micdrop.dev/docs/client/installation): Install Micdrop client package for browser-based voice conversations. - [React Hooks](https://micdrop.dev/docs/client/react-hooks): React hooks for seamless integration of Micdrop voice conversations in React applications. - [Start/Stop Call](https://micdrop.dev/docs/client/start-stop-call): Manage voice conversations by starting and stopping the Micdrop client connection and microphone. - [Pause/Resume Call](https://micdrop.dev/docs/client/pause-resume-call): Control the conversation flow by pausing and resuming the microphone and audio processing. - [Mute/Unmute Call](https://micdrop.dev/docs/client/mute-unmute-call): Control microphone input during a conversation by muting and unmuting the microphone while keeping the call active. - [Call State](https://micdrop.dev/docs/client/call-state): Monitor and react to real-time conversation state changes during voice calls. - [Display Conversation Messages](https://micdrop.dev/docs/client/display-conversation-messages): Display and manage conversation messages between the user and AI assistant during voice calls. - [Handling Tool Calls](https://micdrop.dev/docs/client/handling-tool-calls): Monitor and respond to AI agent tool executions in real-time on the client side. - [Device Management](https://micdrop.dev/docs/client/devices-management): Select and manage microphone and speaker devices for optimal audio quality and user preference. - [Voice Activity Detection (VAD)](https://micdrop.dev/docs/client/vad): Micdrop uses a VAD (Voice Activity Detection) to detect speech and silence and send chunks of audio to the server only when speech is detected. - [Turn Detection](https://micdrop.dev/docs/client/turn-detection): Hold the turn open while the user hesitates, and answer as soon as their question lands, by reading the sound of the sentence rather than counting silence. - [Reducing Latency](https://micdrop.dev/docs/client/latency): Where the time goes between the last word a user says and the first word the agent says back, and which settings actually move it. - [Error Handling](https://micdrop.dev/docs/client/error-handling): Handle errors gracefully in your voice conversations with comprehensive error management and user feedback. - [Mic](https://micdrop.dev/docs/client/utility-classes/mic): The Mic object manages microphone capture, the input device in use, and the level the voice activity detection reads. - [MicdropClient](https://micdrop.dev/docs/client/utility-classes/micdrop-client): The MicdropClient class manages real-time audio communication between a client and server, handling microphone input, WebSocket connections, and audio playback. - [MicRecorder](https://micdrop.dev/docs/client/utility-classes/mic-recorder): The MicRecorder class provides functionality for recording audio from a microphone with voice activity detection (VAD). - [Speaker](https://micdrop.dev/docs/client/utility-classes/speaker): The Speaker object plays the assistant voice as it streams in, and manages the output device. - [Client (React Native)](https://micdrop.dev/docs/react-native): Run a real-time voice conversation on iOS and Android, with the microphone, the audio session, voice activity detection and the WebSocket handled for you. - [Installation](https://micdrop.dev/docs/react-native/installation): Install the Micdrop React Native client, the audio library it records with, and the iOS and Android permissions a voice call needs. - [Hooks and Call State](https://micdrop.dev/docs/react-native/hooks): Read the Micdrop call state from a React Native screen with the same hooks a web app uses. - [Audio Output and Devices](https://micdrop.dev/docs/react-native/audio-output): Play the assistant voice on the loudspeaker or on the earpiece, and pick the microphone among the inputs the phone offers. - [Voice Activity Detection (VAD)](https://micdrop.dev/docs/react-native/vad): How Micdrop decides that someone is speaking on a phone, with volume detection or with the Silero model on the native ONNX runtime. - [Turn Detection](https://micdrop.dev/docs/react-native/turn-detection): Hold the turn open while someone hesitates on a phone, and answer as soon as their question lands, with the Smart Turn model running on the native ONNX runtime. - [Using Another Audio Library](https://micdrop.dev/docs/react-native/custom-audio): Replace the recording and playback of the Micdrop React Native client with another native audio library. - [Server (Node.js)](https://micdrop.dev/docs/server): Micdrop server orchestrates voice conversations by integrating AI agents, speech-to-text, and text-to-speech services with WebSocket communication. - [Installation](https://micdrop.dev/docs/server/installation): Set up Micdrop server with WebSocket support for real-time voice conversations. - [With Fastify](https://micdrop.dev/docs/server/with-fastify): Integrate Micdrop server with Fastify for robust web applications with voice capabilities. - [With NestJS](https://micdrop.dev/docs/server/with-nestjs): Integrate Micdrop server with NestJS for enterprise-grade voice applications with dependency injection and decorators. - [Auth and Parameters](https://micdrop.dev/docs/server/auth-and-parameters): Handle user authentication and custom parameters in your voice server for secure and personalized conversations. - [First Message](https://micdrop.dev/docs/server/first-message): Configure the initial message that greets users when they start a voice conversation. - [Save Messages](https://micdrop.dev/docs/server/save-messages): Capture and store conversation messages by listening to the Agent "Message" event for analytics, logging, and conversation history. - [Resume a Conversation](https://micdrop.dev/docs/server/resume-conversation): Pick up a saved conversation where the user left off, after the WebSocket drops mid-call, the user closes the tab, or the session is paused on purpose. - [Recording Audio](https://micdrop.dev/docs/server/recording-audio): The MicdropRecorder class enables recording of audio messages during voice calls, capturing both user and assistant audio with their corresponding conversation… - [Error Handling](https://micdrop.dev/docs/server/error-handling): Handle server-side errors gracefully with comprehensive error management and recovery strategies. - [Tools](https://micdrop.dev/docs/server/tools): The Agent system supports adding and removing custom tools to extend its capabilities. - [Extract Value from Answer](https://micdrop.dev/docs/server/extract): The Agent system can extract structured data from assistant responses, such as JSON objects or content between custom tags. - [Auto End Call](https://micdrop.dev/docs/server/auto-end-call): When enabled, the agent automatically detects when the user wants to end the conversation and triggers the call termination. - [Semantic Turn Detection](https://micdrop.dev/docs/server/semantic-turn-detection): Let the user pause mid-sentence and keep the floor. A small model reads the sound of their voice, or the language model reads the transcript instead. - [Noise Filtering](https://micdrop.dev/docs/server/noise-filtering): User noise filtering automatically filters out meaningless sounds like "uh", "hmm", "ahem" that don't carry conversational meaning, improving the quality of… - [Micdrop Protocol](https://micdrop.dev/docs/server/protocol): Micdrop uses a simple custom protocol over WebSocket for real-time communication between the client and server. - [AI Integration](https://micdrop.dev/docs/ai-integration): Integrate speech-to-text, text-to-speech, and AI agents from multiple providers or build custom implementations. - [AI SDK](https://micdrop.dev/docs/ai-integration/provided-integrations/ai-sdk): Plug any Vercel AI SDK model provider into a TypeScript voice agent, so your Node server can answer with an OpenAI, Anthropic, Google or Mistral model. - [Cartesia](https://micdrop.dev/docs/ai-integration/provided-integrations/cartesia): Stream Cartesia's Sonic voices from your Node server in TypeScript, and the audio reaches the browser while the agent is still writing its answer. - [ElevenLabs](https://micdrop.dev/docs/ai-integration/provided-integrations/elevenlabs): Add ElevenLabs streaming voices to a TypeScript voice pipeline with one npm package, and your Node server pushes the audio out as it arrives. - [Gladia](https://micdrop.dev/docs/ai-integration/provided-integrations/gladia): Transcribe a live call in your Node server using Gladia streaming speech to text. One npm package and an API key wire it into a TypeScript voice pipeline. - [Gradium](https://micdrop.dev/docs/ai-integration/provided-integrations/gradium): Run speech to text and text to speech through Gradium's WebSocket API in a TypeScript voice pipeline, on the EU endpoint by default or on the US one. - [Kokoro](https://micdrop.dev/docs/ai-integration/provided-integrations/kokoro): Local text to speech with Kokoro, running in your Node process. - [Mistral](https://micdrop.dev/docs/ai-integration/provided-integrations/mistral): Drive a voice agent with Mistral models in your Node server, then transcribe the user with Voxtral realtime, both from the same TypeScript integration. - [OpenAI](https://micdrop.dev/docs/ai-integration/provided-integrations/openai): OpenAI implementation for @micdrop/server. - [Piper](https://micdrop.dev/docs/ai-integration/provided-integrations/piper): Local text to speech with Piper, covering around forty languages. - [Pocket TTS](https://micdrop.dev/docs/ai-integration/provided-integrations/pocket-tts): Local text to speech with Kyutai Pocket TTS, cloning a voice on the CPU. - [Whisper](https://micdrop.dev/docs/ai-integration/provided-integrations/whisper): Local speech to text with Whisper, running in your Node process. - [Agent (LLM)](https://micdrop.dev/docs/ai-integration/custom-integrations/custom-agent): The Agent class is the core abstraction for AI conversation handling in Micdrop. It provides a standardized interface for integrating various AI providers into… - [Speech-to-Text (STT)](https://micdrop.dev/docs/ai-integration/custom-integrations/custom-stt): The STT class is the core abstraction for speech-to-text functionality in Micdrop. It provides a standardized interface for integrating various speech-to-text… - [Text-to-Speech (TTS)](https://micdrop.dev/docs/ai-integration/custom-integrations/custom-tts): The TTS class is the core abstraction for text-to-speech functionality in Micdrop. It provides a standardized interface for integrating various text-to-speech… - [FallbackAgent](https://micdrop.dev/docs/ai-integration/fallback-strategies/agent-fallback): The FallbackAgent class provides automatic failover between multiple LLM agents for improved reliability. - [FallbackSTT](https://micdrop.dev/docs/ai-integration/fallback-strategies/stt-fallback): The FallbackSTT class provides automatic failover between multiple STT providers for improved reliability. - [FallbackTTS](https://micdrop.dev/docs/ai-integration/fallback-strategies/tts-fallback): The FallbackTTS class provides automatic failover between multiple TTS providers for improved reliability. - [Local Models](https://micdrop.dev/docs/ai-integration/local-models): Run the whole Micdrop pipeline on your own machine, with no API key and no data leaving it. - [Choosing the Models](https://micdrop.dev/docs/ai-integration/local-models/choosing-models): Which agent, transcription and voice to run locally, and what each one gives up. - [Latency and Memory](https://micdrop.dev/docs/ai-integration/local-models/performance): What a local call costs per turn, how much memory it holds, and why transcription and the voice stay on the CPU. - [Explorations](https://micdrop.dev/docs/ai-integration/local-models/explorations): Local models that were measured, timed and left out of the stack, with the reason for each. - [IA Vocale Souveraine 🇫🇷🇪🇺](https://micdrop.dev/docs/ai-integration/sovereign-voice-ai): Micdrop permet de construire une solution d'IA vocale entièrement souveraine, en combinant des fournisseurs d'IA français et européens. - [Migration](https://micdrop.dev/docs/migration): Upgrade guides for Micdrop, with the breaking changes of each major version and what to do about them. - [Upgrade to v3](https://micdrop.dev/docs/migration/v3): Upgrade a Micdrop app to v3, where the client was split so the same call runs in a browser and on a phone. Breaking changes, version mapping and what stays put. ## Blog - [Local Text to Speech in Node: Kokoro, Piper, Pocket TTS](https://micdrop.dev/blog/local-tts-node-kokoro-vs-piper): Three engines speak from a Node server with no API key. Pocket TTS speaks first, Piper covers 43 languages, Kokoro installs in one command. - [Speech to Text in React Native: The Options in 2026](https://micdrop.dev/blog/speech-to-text-react-native): The system recogniser, a model on the device, or streaming to a server. Three ways to transcribe voice in a React Native app, and what each one costs. - [Retell AI Alternative: Run the Voice Loop in Your App](https://micdrop.dev/blog/alternative-to-retell-ai): Retell AI bills the voice loop and the model by the minute, concurrency by the month. Micdrop runs the same loop in your Node server, with no meter on top. - [OpenAI Realtime API vs an STT-LLM-TTS Pipeline](https://micdrop.dev/blog/openai-realtime-api-vs-pipeline): The Realtime API gives you speech to speech in one connection. A pipeline gives you provider choice, voices and cost control. Here is how to pick between them. - [Vapi Alternative: Own the Voice Loop in TypeScript](https://micdrop.dev/blog/alternative-to-vapi): Vapi runs your voice agent on its servers for $0.05 a minute. Micdrop runs the same loop inside the Node server you already ship, with no platform fee. - [LiveKit Agents Alternative: Voice AI in TypeScript](https://micdrop.dev/blog/alternative-to-livekit-agents): LiveKit Agents ships a Node SDK, and it still runs on WebRTC rooms and workers. Micdrop is a WebSocket voice pipeline written in TypeScript on both sides. - [Best Open Source Voice AI Agent Frameworks in 2026](https://micdrop.dev/blog/open-source-voice-agent-frameworks): Thirteen voice agent frameworks and hosted platforms compared on language, transport, licence and cost. Micdrop publishes this ranking and sits third in it. - [Voice Activity Detection in the Browser](https://micdrop.dev/blog/voice-activity-detection-browser): Voice activity detection decides when someone is speaking. This post compares volume thresholds, WebRTC VAD and Silero, and shows how to tune one. - [Pipecat Alternative for TypeScript and Node.js Web Apps](https://micdrop.dev/blog/alternative-to-pipecat): Micdrop runs the whole voice AI pipeline in TypeScript, browser and Node.js side, with provider fallback and semantic turn detection built in. - [Text-to-speech français souverain avec Gradium et Micdrop](https://micdrop.dev/blog/gradium-text-to-speech-souverain): Intégrez Gradium, le TTS français issu de Kyutai, dans une application web avec Micdrop. Vos données passent par des serveurs européens, avec un fallback.