Streaming

Erfahren Sie, wie Sie mit Chunked Transfer Encoding Echtzeit-Audio über die ElevenLabs API streamen

Die ElevenLabs API unterstützt für ausgewählte Endpunkte Echtzeit-Audio-Streaming und gibt rohe Audio-Bytes (z. B. MP3-Daten) über HTTP direkt mit Chunked Transfer Encoding zurück. So können Clients Audio während der Generierung schrittweise verarbeiten oder wiedergeben.

Unsere offiziellen Bibliotheken für Node und Python enthalten Hilfsfunktionen, die den Umgang mit diesem kontinuierlichen Audiostream vereinfachen.

Streaming wird für die Text to Speech API, die Stimmenverzerrer-API und die Audio-Isolation-API unterstützt. Dieser Abschnitt erläutert, wie Streaming bei Anfragen an die Text to Speech API funktioniert.

In Python sieht eine Streaming-Anfrage so aus:

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)

In Node / Typescript sieht eine Streaming-Anfrage so aus:

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_v3",
});
// 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();