Build a browser voice assistant in JavaScript with AssemblyAI
Blog post from AssemblyAI
A tutorial explains how to build a browser-based conversational voice assistant using AssemblyAI for streaming speech-to-text, LLM responses, and text-to-speech, while keeping the API key secure on a small Node.js server. It contrasts this architecture with the browser Web Speech API, which is suitable for simple command recognition but lacks integrated LLM reasoning, consistent cross-browser support, turn detection, tool calling, and interruption handling. The implementation uses temporary server-minted tokens, an AudioWorklet to capture and resample microphone input to 16 kHz PCM, WebSockets for real-time transcription and synthesized speech, and Web Audio scheduling for gapless playback of raw PCM audio. It details turn-based transcript handling, LLM conversation history, barge-in behavior that cancels active speech when a user meaningfully interrupts, and proper session cleanup for sockets, microphone tracks, and audio resources. The tutorial also covers configuration options such as voices, prompts, turn detection, optional LLM tools, deployment security, troubleshooting audio and token issues, and pricing considerations for the three services.
| Trend | Post Mentions | Total Month Mentions | Posts | Companies | MoM |
|---|---|---|---|---|---|
| LLM | 38 | 6,496 | 1,223 | 229 | +8% |
| Real-time | 24 | 4,128 | 1,085 | 233 | -15% |
| Voice AI | 12 | 2,726 | 252 | 54 | -20% |
| Universal-3.6 Pro Realtime | 7 | 239 | 24 | 2 | +1306% |
Use this post, company, and trend context to find content marketing opportunities, perform competitive analysis, or address product feature gaps via the Plushcap MCP server or the Plushcap API.