The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →You can build an ElevenLabs voice assistant in Node.js along either of two routes: use ElevenAgents for a hosted agent, or use Speech Engine when your Node.js server should own the conversation logic and call your chosen LLM. They are different architectures, not interchangeable setup steps. For a first working assistant with the least server-side plumbing, start with ElevenAgents; choose Speech Engine when you need custom server-side control.
How do I create a voice assistant with ElevenLabs and Node.js?
First decide which parts of the system you want ElevenLabs to manage. With ElevenAgents, create an agent in the ElevenLabs dashboard or through its API, then test it in the dashboard or embed it in an app. With Speech Engine, ElevenLabs handles speech-to-text and text-to-speech while your Node.js server receives the conversation context, calls an LLM, and returns the generated response.
| Choice | Who handles the LLM and conversation logic? | Who handles speech? | What your Node.js app needs to do |
|---|---|---|---|
| ElevenAgents | ElevenLabs’ hosted agent platform | Managed within the hosted agent experience | Create and configure the agent; test or embed it. The quickstart does not require you to build the Speech Engine server. |
| Speech Engine | Your server and the LLM you connect | ElevenLabs handles transcription and speech generation | Run or integrate a Node.js WebSocket server, use the received transcript/history in your LLM logic, and make the server reachable at the configured WebSocket URL. |
These routes reflect the responsibilities described in the ElevenAgents quickstart and Speech Engine documentation. The custom route gives you control over the server-side conversation flow, but also makes that server your responsibility.
When should I use ElevenAgents?
Choose ElevenAgents if you want to create and test a managed conversational agent rather than implement the LLM conversation loop yourself. The official quickstart starts with signing in to ElevenLabs and creating an assistant in the dashboard or through the API. You can then test it in the dashboard or embed it in a website or app.
#1 Best Overall
- [Natural Audio Clarity] Operated with frequency response of 50Hz-16KHz, the podcasting XLR mic delivers balanced audio range, likely to resonate with your audience. Directional cardioid dynamic microphone corded will not exaggerate your voice, while rejects unwanted off-axis noise for vocal originality and intelligibility during your PS5 gaming streaming video recording. (Tips: Keep the top of end-addressing XLR dynamic microphone AM8 facing audio source, and suggested recording range is 2 to 6 in.)
- [XLR Connection Upgrade-Ability] To use XLR connection, connect the podcast microphone to an audio interface (or mixer) using a separate XLR cable (NOT Included) . Well-connected and smooth operation improves audio flexibility to make you explore various types of music recording singing. The streaming mic isolates the pristine and accurate sound from ambient noise with greater no interference and fidelity. (RGB and function key on mic are INACTIVE when using XLR connection.)
- [USB Connection with Handy Mute] Skip the hassle of setting something up and plug the cable to play the dynamic USB microphone directly, which suits for beginner creators or daily podcast. You can quickly control the gamer mic with tap-to-mute that is independent of computer/Macbook programs to keep privacy when live streaming. LED mute reminder helps you get rid of forgetting to cancel the mute. (RGB and function key are only available for USB connection, but NOT for XLR connection)
- [Soothing Controllable RGB] RGB ring on the desktop gaming microphone for PC, with 3 modes and more than 10 light colors collection, matches your PC gears accessories for gaming synergy even in dim room. You can control the RGB key button of the dynamic microphone USB directly for game color scheme gaming or live streaming. Configured memory function, the streaming microphone RGB no need to repeated selections after turnning off and brings itself alive when power on. (Only available for USB connection)
- [More Function Keys] Computer microphone with headphones jack upgrades your rhythm game experience and gets feedback whether the real-time voice your audience hear as expected. Get the desired level via monitoring volume control when gaming recording. Smooth mic gain knob on the PC microphone gaming has some resistance to the point, easily for audio attenuation or boost presence to less post-production audio. (Only available for USB connection)
- Sign in to ElevenLabs and create an agent in the dashboard, or create one through the API.
- Configure the agent for your use case in the hosted platform.
- Test it in the dashboard or follow the documented embedding flow for your website or app.
Use this approach when the hosted agent’s capabilities suit your needs. Do not add Speech Engine server code just because the app uses Node.js; the quickstart’s hosted-agent path is distinct from building a custom server-side agent.
When should I use Speech Engine with Node.js?
Choose Speech Engine if you want your own server to decide how each turn is handled—for example, to call an LLM or apply application-specific conversation logic. The components divide work across the browser, ElevenLabs, and your server:
- The browser captures the user’s audio and connects to the ElevenLabs speech experience.
- ElevenLabs transcribes the audio and sends the conversation transcript or history to your server.
- Your Node.js server passes that context to your LLM and produces a response.
- ElevenLabs converts the response to speech and the browser plays the audio.
This is the documented Speech Engine responsibility split: ElevenLabs handles speech-to-text and text-to-speech, while your server provides the LLM logic. It does not establish a particular LLM vendor, latency, recognition accuracy, or cost; choose those based on your own requirements and verify current provider terms separately.
Install the official Node.js SDK
The official server SDK is @elevenlabs/elevenlabs-js. In your Node.js project, install it with:
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Scan for outdated or missing drivers - takes under a minute3Repair Windows errors before they cause bigger problemsRank #2
- [Convenient Setup] Plug and play recording USB microphone for PC, with 5.9-Foot USB cable included for computer PC laptop, is connected directly to USB-A port for recording music, computer singing or podcast. The office condenser microphone for computer is easy to use and install. (NOT compatible with Xbox and Phones)
- [Durable Metal Design] Solid sturdy metal construction design, the computer microphone for Zoom meetings with stable tripod stand is convenient when you are doing voice overs or livestreams on YouTube. Durable material extends the service life of the voice-over microphone.
- [Mic Volume Knob] Gaming condenser USB mic compatible for PS4 with additional volume knob itself has a louder or quieter adjustment and is more sensitive. Your voice would be heard well enough through the zoom microphone USB when gaming, skyping or voice recording. Also, you can adjust your volume to zero and protect your privacy.
- [Widely Use] USB-powered design, the condenser microphone for recording no need the 48v Phantom power supply, works well with Cortana, Discord, voice chat and voice recognition. The podcast microphone for Mac, with USB-B to USB-A/C cable, is compatible with desktop, laptop or PS4/PS5, which meets most of your daily recording needs.
- [Clear Output Voice] Cardioid condenser microphone for PC captures your voice properly, producing clear smooth and crisp sound. Great computer recording mic for gamers/streamers/youtubers focus on the main source and reduces background noise. The streaming microphone does the job well for broadcast ,OBS and teamspeak.
npm install @elevenlabs/elevenlabs-js
The API introduction documents this package. The Speech Engine quickstart and JavaScript SDK reference describe obtaining a Speech Engine resource and connecting it to a Node.js WebSocket server. Follow the current SDK reference for the resource setup and callback signatures; do not assume that a browser client package is a substitute for this server package.
Connect Speech Engine to a Node.js WebSocket server
The JavaScript SDK can attach to an existing Node HTTP server—including one built with Express, Fastify, or http.createServer()—or start a standalone WebSocket server. Use the option that matches how your application is structured, then provide the Speech Engine configuration with a reachable WebSocket URL.
- Install the server package. Run
npm install @elevenlabs/elevenlabs-jsin the Node.js project that will host your conversation logic. - Choose the server arrangement. Attach the Speech Engine integration to your existing HTTP server if your app already has one, or use the SDK’s standalone WebSocket server option. The SDK reference includes both patterns.
- Implement the transcript callback. Use the documented callback, such as
onTranscript, to process the conversation transcript/history received by the server. Your server’s LLM call and application-specific logic belong here. - Return the generated response through the Speech Engine flow. Use the SDK’s documented response handling so ElevenLabs can synthesize the server’s answer and deliver audio for browser playback.
- Configure a reachable
ws_url. The quickstart uses a public WebSocket URL. A browser or ElevenLabs service cannot reach a server bound only to your local machine; for local development, expose it through a suitable reachable endpoint, or deploy it to a host that supports the WebSocket behavior your app requires. - Test the full path. Confirm that a browser connection reaches the server, the callback receives transcript/history, the LLM returns a response, and audio is played back. Check the SDK’s current examples for exact configuration and lifecycle details.
The official JavaScript SDK reference documents server integration patterns and callbacks, while the quickstart establishes the need for a reachable URL. Neither names or endorses a hosting vendor; verify WebSocket compatibility for any host you consider.
How do I add a browser interface?
For a Next.js browser client, ElevenLabs documents the separate @elevenlabs/react package and its useConversation hook. Install and use that client-side integration according to the Next.js guide. The guide is a TypeScript walkthrough, but says JavaScript can be used too.
Recommended Free Tools
Rank #3
- Custom three-capsule array: This professional USB mic produces clear, powerful, broadcast-quality sound for YouTube videos, Twitch game streaming, podcasting, Zoom meetings, music recording and more
- Blue VO!CE software: Elevate your streamings and recordings with clear broadcast vocal sound and entertain your audience with enhanced effects, advanced modulation and HD audio samples
- Four pickup patterns: Flexible cardioid, omni, bidirectional, and stereo pickup patterns allow you to record in ways that would normally require multiple mics, for vocals, instruments and podcasts
- Onboard audio controls: Headphone volume, pattern selection, instant mute, and mic gain put you in charge of every level of the audio recording and streaming process
- Positionable design: Pivot the mic in relation to the sound source to optimize your sound quality thanks to the adjustable desktop stand and track your voice in real time with no-latency monitoring
Keep the roles clear: @elevenlabs/elevenlabs-js is the official Node.js package discussed for server integration; @elevenlabs/react is the React client package. If you are not building a Next.js interface, use the browser integration documented for your chosen flow rather than assuming the React hook applies to every frontend.
How do I connect an ElevenLabs agent to a Node.js server?
For a private ElevenAgents agent that a browser connects to, have your Node.js server request a signed conversation URL and provide that URL to the browser for its connection. Do not send the ElevenLabs API key to the browser or hardcode it in client JavaScript. The WebSocket library guide explains this private-agent credential flow and warns against exposing the key client-side.
Public agents have different authentication behavior: the guide says a public agent can be connected to using its agent ID in the WebSocket URL without additional authentication. Identify whether your agent is public or private before implementing connection setup; do not treat the public flow as a reason to expose a secret key.
This agent WebSocket connection is separate from the custom Speech Engine architecture. Use the former to connect a client to a hosted agent; use the latter when your Node.js server supplies the LLM and conversation logic.
Rank #4
- 360 Degree Position Adjustable Gooseneck Design --Plug and play USB microphone Pick up the sound from 360-degree with high sensitivity, in the best possible location for sound to your PC gaming, dragon voice dictation, and talk to Cortana
- Mute Button & LED Indicator --One-click to mute/unmute your microphone for pc, Build-in LED indicator tells you the working status at any time
- Intelligent Noise-Canceling Tech --Premium omnidirectional condenser microphone with noise-canceling technology can pick up your clear voice and reduce background noise and echo
- USB Plug&Play(1.8/6ft USB Cable) -- No driver required. Just need to plug & play for the microphone to start recording, well compatible with Windows(7, 8, 10 and 11) and macOS. (NOT compatible with Xbox/Raspberry Pi/Android)
- Solid Construction--Adopting premium metal pipe and heavy-duty ABS stand to make sure that you will be satisfied with our computer mic quality
Keep credentials and WebSocket connections safe
- Keep the API key server-side. Store and use it in server code or server configuration, not browser JavaScript, HTML, or a client bundle.
- Use the appropriate private-agent connection flow. Request a signed conversation URL from the server and send the resulting URL to the browser when the agent is private.
- Do not confuse public-agent access with secret management. A public agent’s documented agent-ID connection does not make the API key safe to expose.
- Make the Speech Engine endpoint reachable. Configure the public WebSocket URL required by your deployment and confirm it supports the application’s WebSocket needs.
These credential distinctions come from ElevenLabs’ WebSocket guide; the reachable-server requirement is in the Speech Engine quickstart.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Understand the real-time WebSocket events
If you use the lower-level Agent WebSocket API rather than a documented SDK integration, the protocol includes events for audio chunks, user transcripts, agent responses and audio, tool calls and results, interruptions, and connection status. The Agent WebSocket reference describes these events.
A basic implementation should begin with the SDK integration documented for its chosen route. You do not need to hand-roll the full event protocol unless your application needs that lower-level control.
Troubleshoot common setup problems
The browser cannot connect to the Speech Engine server
Check that the configured ws_url is reachable from outside your development machine and that the server is actually accepting WebSocket connections. A localhost URL is not a public endpoint; use a reachable tunnel or deployment endpoint for remote connections.
Best Value
- 【Crystal Clear Audio Quality】Our Omnidirectional pattern condenser microphone accurately captures your voice, making it perfect for dictation, online classrooms, and more.
- 【Active Noise-Cancelling】Come in CMTECK CCS2.0 SMART CHIP with Omnidirectional Polar Pattern, which can effectively block the background noise. The pop filter prevents plosives from overloading the microphone, ensuring only your voice is heard.7
- 【Convenient Mute Button with LED Indicator】You can quickly mute/un-mute the microphone with the Mute Button and the built-in LED light lets you know the working status(Greenlight: Connected; Red light: Mute mode).
- 【Easy to use】 No drivers needed, just plug and record without external power supply, directly connect the microphone to a USB compatible device, well compatible with Windows(7, 8 and 10), Mac OS and PS4 (NOT compatible with Raspberry Pi/Linux/Android)
- 【Mini size with Adjustable Gooseneck】Adopted flexible and adjustable gooseneck metal pipe, easily adjust position 360 degrees to suit user comfort. The compact and stable base maximizes your desktop space.
The private agent connection fails
Confirm that the server obtains a signed conversation URL for the private agent and that the browser connects using that URL. Do not replace it with an API key embedded in client code.
The server receives no useful conversation context
Verify that the Speech Engine callback is wired as shown in the JavaScript SDK reference and that your server’s LLM logic consumes the transcript/history provided for the session. Speech Engine is not the route where ElevenLabs supplies your server’s LLM response.
The answer is generated but no audio plays
Check each handoff: the server must produce a response through the documented SDK flow, ElevenLabs must synthesize it, and the browser must receive and play the resulting audio. Use the lower-level WebSocket event reference only if you need to inspect or manage events directly.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →

