Streaming

Découvrez comment diffuser de l’audio en temps réel depuis l’API ElevenLabs à l’aide de l’encodage de transfert par fragments

L’API ElevenLabs prend en charge le streaming audio en temps réel pour certains points de terminaison et renvoie des octets audio bruts, par exemple des données MP3, directement via HTTP à l’aide de l’encodage de transfert par fragments. Les clients peuvent ainsi traiter ou lire l’audio progressivement, à mesure qu’il est généré.

Nos bibliothèques officielles Node et Python incluent des utilitaires qui simplifient la gestion de ce flux audio continu.

Le streaming est pris en charge par l’API Text to Speech, l’API Voice Changer et l’API Audio Isolation. Cette section explique le fonctionnement du streaming pour les requêtes adressées à l’API Text to Speech.

En Python, une requête de streaming se présente ainsi :

from elevenlabs import stream
from elevenlabs.client import ElevenLabs
elevenlabs = ElevenLabs()
audio_stream = elevenlabs.text_to_speech.stream(
text="This is a test",
voice_id="JBFqnCBsd6RMkjVDRZzb",
model_id="eleven_multilingual_v2"
)
# option 1: play the streamed audio locally
stream(audio_stream)
# option 2: process the audio bytes manually
for chunk in audio_stream:
if isinstance(chunk, bytes):
print(chunk)

En Node / Typescript, une requête de streaming se présente ainsi :

import { ElevenLabsClient, stream } from "@elevenlabs/elevenlabs-js";
import { Readable } from "stream";
const elevenlabs = new ElevenLabsClient();
async function main() {
const audioStream = await elevenlabs.textToSpeech.stream("JBFqnCBsd6RMkjVDRZzb", {
text: "This is a test",
modelId: "eleven_v4",
});
// option 1: play the streamed audio locally
await stream(Readable.from(audioStream));
// option 2: process the audio manually
for await (const chunk of audioStream) {
console.log(chunk);
}
}
main();