Fish Audio: Fish Audio Drama 3 (Preview)
Fish Audio's Drama 3 text-to-speech model (preview): a new TTS model exposed on the same /v1/tts, streaming and WebSocket endpoints as the S2 family, with single-speaker synthesis and multi-speaker dialogue via <|speaker:N|> tags. Preview status: Fish states its behavior and availability may change.
Providers
Different providers can host the same model. Choose one provider when you need a fixed backend, or let routing select among them.
Supported languages
No reviewed language list for this model yet.
Voices
Features
Generates spoken audio from text input.
text_to_speech
Listed in the model enum of the streaming HTTP (/v1/tts/stream/with-timestamp) and WebSocket (/v1/tts/live/with-timestamp) endpoints in the OpenAPI document; the AsyncAPI document for /v1/tts/live still omits it (doc inconsistency, unprobed).
streaming
Synthesizes speech from fully-submitted text in a single POST /v1/tts request.
synchronous
Accepts reference_id (persistent voice models) and references (zero-shot reference audio) like every Fish TTS model; the endpoint schema is model-agnostic.
voice_cloning
Multi-speaker dialogue synthesis (reference_id array + <|speaker:N|> tags) is available with the S2 family and drama-3-preview, not s1.
multi_speaker
Code
ElevenLabs SDK streaming TTS
Routes the ElevenLabs SDK through allmodels and streams the audio response.
import { ElevenLabsClient } from "elevenlabs";
const client = new ElevenLabsClient({
apiKey: process.env.ALLMODELS_API_KEY,
baseUrl: "https://api.allmodels.io/el"
});
const stream = await client.textToSpeech.stream("voice_id", {
text: "I'm sorry, Dave. I'm afraid I can't do that.",
modelId: "fish/drama-3-preview",
outputFormat: "mp3_44100_128"
}, {
queryParams: {
provider: {
"only": [
"fish"
]
}
}
});
const reader = stream.getReader();
for (;;) {
const { done, value } = await reader.read();
if (done) break;
// Write value to your response, file, or audio playback pipeline.
}
