Integration guide

Vonage Text to Speech: NCCO Talk and Audio Guide (2026)

Compare Vonage NCCO Talk with custom audio streaming, then plan Fish Audio generation, real PCM delivery, barge-in and production latency tests.

Nov 3, 2026 Updated Nov 3, 2026

Vonage text to speech can use the NCCO talk action for platform-synthesized speech or the NCCO stream action for audio delivered to a conversation. Use talk when the built-in voice fits; use Fish Audio behind a documented stream or WebSocket path when a custom voice is required.

Fish Audio is not an NCCO talk provider simply because both APIs accept text. The integration boundary is the audio transport and the current Vonage NCCO schema.

A cream NCCO call console connects synthesized-speech and hosted-audio modules to a telephone handset

What does Vonage provide?

Vonage provides numbers, call control, conversations, NCCO actions, recording and WebSocket audio. Its NCCO reference lists:

  • talk to send synthesized speech to a conversation;
  • stream to send audio files to a conversation;
  • connect to route calls to phones or WebSocket endpoints;
  • input to collect speech or digits.

The Vonage NCCO reference is the authority for the exact action fields and current barge-in behavior.

Fish Audio generates custom speech outside Vonage. The application must deliver it through an approved file, WebSocket or media path.

Should you use talk or stream?

Use talk for short, simple, platform-voice messages where no custom identity is required. It is the simplest operational path and needs no separate speech provider.

Use stream when the audio already exists as an approved file or when an application manages a live media stream. This is the practical path for branded or cloned Fish Audio speech.

Use a WebSocket endpoint when bidirectional call audio and dynamic turn handling are required. Vonage documents supported content types such as audio/l16;rate=8000 and audio/l16;rate=16000; match the current schema exactly.

How should Fish Audio fit into an NCCO flow?

For fixed prompts:

  1. generate and approve the Fish Audio file;
  2. inspect its duration and sample rate;
  3. host it at a reliable HTTPS URL;
  4. play it with the documented stream action;
  5. keep a fallback talk message.

For dynamic agent replies:

  1. accept or stream caller audio;
  2. generate the reply text;
  3. stream Fish Audio output through the backend adapter;
  4. pass audio/l16 or the current supported media contract to Vonage;
  5. stop old output when the caller interrupts.

Do not place provider keys in NCCO JSON. Keep them in the server-side secret store used by the media service.

What audio settings cause failures?

Vonage's WebSocket content type distinguishes 8 kHz and 16 kHz L16 audio. The adapter must also produce the required endianness, channel count and frame structure.

Test the complete path:

LayerFailure to check
Fish Audio outputsample rate, format, incomplete final chunk
Adapterresampling, byte order, framing
WebSocketconnection latency, dropped chunks
NCCO actionwrong action, invalid URL, barge-in behavior
Phone playbackvolume, clipping, network jitter

The telephony TTS API guide explains why a valid browser file can become noise on a phone path.

How should interruption be tested?

Test interruption while Fish Audio is generating, while the first chunk is buffering and while Vonage is already playing audio.

For each case, verify:

  • playback stops promptly;
  • the transcript records the interruption;
  • queued audio from the old turn is discarded;
  • the next answer does not repeat stale content;
  • fallback does not switch voice personality mid-sentence.

Use voice-agent TTS fallback for provider timeout, quota and invalid-voice cases.

How should pricing be compared?

Fish Audio packages speech generation as one-time character credits. Vonage prices call, number and voice-product usage separately.

Estimate generated characters, retries and interrupted speech. Then add Vonage call minutes, numbers, recording and streaming. Use TTS API pricing for the Fish Audio side.

Fixed prompts are easy to amortize: generate once, approve, cache and reuse. Dynamic agent speech has a higher operational cost because every unique reply and retry consumes generation.

What should the launch test include?

Run NCCOs through the real Vonage phone path, not only the browser playground.

Include:

  • inbound call and outbound call;
  • short prompt and long tool-driven reply;
  • caller interruption;
  • missing audio URL;
  • invalid credential or exhausted Fish Audio credits;
  • WebSocket reconnect;
  • mobile and landline audio;
  • names, numbers and two languages.

Track p95 first-audio latency, failed media chunks, generation errors, fallback rate and abandoned calls.

Key takeaways

  • Vonage talk is platform synthesis; stream moves audio into the conversation.
  • Custom Fish Audio speech belongs behind an approved stream or WebSocket adapter.
  • Match the current L16 rate and media contract exactly.
  • Test barge-in through the real call path.
  • Keep Vonage telephony and Fish Audio character costs separate.

Frequently asked questions

Can Vonage use Fish Audio for text to speech?

Vonage Voice API can play synthesized speech with NCCO talk or send hosted media with stream. Fish Audio is a separate provider behind a documented audio path.

What is the difference between NCCO talk and stream?

talk uses Vonage synthesis. stream sends audio files or media to a conversation, which is the relevant path for custom Fish Audio output.

Which audio format can a custom stream use?

Follow the current NCCO and WebSocket documentation. Vonage documents L16 rates at 8 kHz and 16 kHz for relevant endpoints.

How do you handle barge-in?

Use documented NCCO barge-in behavior and cancel upstream generation. Verify stale audio does not play after the caller interrupts.

How is the stack priced?

Fish Audio uses prepaid character credits. Vonage numbers, calls, recording and voice features are separate charges.

Vonage Text to Speech: NCCO Talk and Audio Guide (2026)