Voice format: FishAudio.<Model>.<VoiceId>
Fish Audio is a Telnyx-hosted external TTS provider. Telnyx exposes a hand-vetted shortlist of Fish Audio voices from their public Voice Library.
Fish Audio is cross-lingual — any voice can speak any language from the input text. The language field in the voice listing is the voice’s native accent only, not a synthesis constraint.
Models
| Model | Description |
|---|
s2.1-pro | Latest generation. Improved quality, latency, and throughput. Default. |
s2-pro | Previous generation. Multi-speaker, expression control. |
s1 | Oldest generation. |
All curated voices are available under all three models.
Curated Voices
| Voice | Gender | Native Language | Voice ID |
|---|
| Aria | Female | English | 933563129e564b19a115bedd57b7406a |
| Nova | Female | English | b545c585f631496c914815291da4e893 |
| Paula | Female | English | c2623f0c075b4492ac367989aee1576f |
| Claire | Female | French | 5567200c7d8341738f0892bbacd3be3c |
| Yuki | Female | Japanese | 5161d41404314212af1254556477c17d |
| Ethan | Male | English | 536d3a5e000945adb7038665781a4aca |
| Atlas | Male | English | c5f56a6cc2ec4fa8920cb4c5889a3fb7 |
| Max | Male | English | 802e3bc2b27e49c2995d23ef70e6ac89 |
| Adrian | Male | English | bf322df2096a46f18c579d0baa36f41d |
| Mateo | Male | Spanish | 35199d5438854f5d9157c500479ab684 |
Only curated catalog voices are accepted for synthesis. Arbitrary Fish Voice-Library reference_ids cannot be used under the Telnyx API key.
WebSocket
Query Parameters
| Parameter | Type | Default | Description |
|---|
audio_format | string | linear16 | mp3, wav, linear16 (maps to PCM). |
sample_rate | integer | 24000 | Depends on format (see table below). |
Voice Settings
Fish Audio does not support speed, pitch, or emotion controls. Voice settings are limited to format and sample rate overrides:
| Field | Type | Default | Description |
|---|
format | string | pcm | mp3, wav, pcm, opus. |
sample_rate | integer | 24000 | Sample rate in Hz (valid values depend on format). |
{
"text": " ",
"voice_settings": {
"format": "mp3",
"sample_rate": 44100
}
}
REST API
Fields
| Field | Type | Default | Description |
|---|
format | string | pcm | mp3, wav, pcm, opus. |
sample_rate | integer | 24000 | Sample rate in Hz (valid values depend on format). |
output_type | string | binary_output | binary_output, base64_output, or audio_id. |
Response
Default (binary_output): chunked audio bytes.
With output_type: "base64_output": JSON with base64-encoded audio.
With output_type: "audio_id": JSON with an audio_url for deferred retrieval.
Each format has a fixed set of accepted sample rates:
| Format | Accepted Sample Rates (Hz) |
|---|
pcm | 8000, 16000, 24000, 32000, 44100 |
wav | 8000, 16000, 24000, 32000, 44100 |
mp3 | 32000, 44100 |
opus | 48000 |
On WebSocket, the audio_format query parameter and voice_settings.format are independent parameters with different vocabularies. The audio_format query param accepts mp3, wav, and linear16 (which maps to pcm). The voice_settings.format field accepts mp3, wav, pcm, and opus directly. If both are set, voice_settings.format takes precedence.
In-Call Playback
Fish Audio is available for in-call TTS via Call Control speak and TeXML <Say>. For telephony playback, the gateway automatically delivers MP3 at 44.1 kHz to ensure correct resampling by the call-control audio pipeline.
See In-Call Playback for details.
Provider Docs