> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt.

# Enchaîner plusieurs requêtes

> **Note**
>
> **Guide pratique** · Suppose que vous avez suivi le [démarrage rapide d’ElevenAPI](/docs/fr/eleven-api/quickstart).

Lorsque vous convertissez un volume important de texte en audio, vous pouvez constater des changements brusques de prosodie d’un segment à l’autre. Cela peut être particulièrement perceptible lors de la conversion de texte couvrant plusieurs paragraphes ou sections. Pour préserver la prosodie de la voix sur plusieurs segments, vous pouvez utiliser la fonctionnalité Request Stitching.

Cette fonctionnalité vous permet de fournir le contexte de ce qui a déjà été généré et de ce qui sera généré ultérieurement, afin de conserver une voix et une prosodie cohérentes dans l’ensemble du texte.

> **Info**
>
> Request Stitching n’est pas disponible pour le modèle `eleven_v3`.

Voici un exemple sans Request Stitching :

Et le même exemple avec Request Stitching :

## Utiliser Request Stitching

Request Stitching est plus simple à utiliser avec les SDK ElevenLabs.

> **Note**
>
> Ce guide suppose que vous avez [configuré votre clé API et votre SDK](/docs/fr/eleven-api/quickstart). Suivez d’abord le démarrage rapide si ce n’est pas encore fait.

#### Enchaîner plusieurs requêtes

Créez un fichier nommé `example.py` ou `example.mts`, selon le langage de votre choix, puis ajoutez le code suivant :

```python
import os
from io import BytesIO
from elevenlabs.client import ElevenLabs
from elevenlabs.play import play
from dotenv import load_dotenv

load_dotenv()

ELEVENLABS_API_KEY = os.getenv("ELEVENLABS_API_KEY")

elevenlabs = ElevenLabs(
    api_key=ELEVENLABS_API_KEY,
)

paragraphs = [
    "The advent of technology has transformed countless sectors, with education ",
    "standing out as one of the most significantly impacted fields.",
    "In recent years, educational technology, or EdTech, has revolutionized the way ",
    "teachers deliver instruction and students absorb information.",
    "From interactive whiteboards to individual tablets loaded with educational software, ",
    "technology has opened up new avenues for learning that were previously unimaginable.",
    "One of the primary benefits of technology in education is the accessibility it provides.",
]

request_ids = []
audio_buffers = []

for paragraph in paragraphs:
    # Usually we get back a stream from the convert function, but with_raw_response is
    # used to get the headers from the response
    with elevenlabs.text_to_speech.with_raw_response.convert(
        text=paragraph,
        voice_id="T7QGPtToiqH4S8VlIkMJ",
        model_id="eleven_v4",
        previous_request_ids=request_ids
    ) as response:
        request_ids.append(response._response.headers.get("request-id"))

        # response._response.headers also contains useful information like 'character-cost',
        # which shows the cost of the generation in characters.

        audio_data = b''.join(chunk for chunk in response.data)
        audio_buffers.append(BytesIO(audio_data))

combined_stream = BytesIO(b''.join(buffer.getvalue() for buffer in audio_buffers))

play(combined_stream)
```

```typescript
import "dotenv/config";
import { ElevenLabsClient, play } from "@elevenlabs/elevenlabs-js";
import { Readable } from "node:stream";

const elevenlabs = new ElevenLabsClient({
    apiKey: process.env.ELEVENLABS_API_KEY,
});

const paragraphs = [
    "The advent of technology has transformed countless sectors, with education ",
    "standing out as one of the most significantly impacted fields.",
    "In recent years, educational technology, or EdTech, has revolutionized the way ",
    "teachers deliver instruction and students absorb information.",
    "From interactive whiteboards to individual tablets loaded with educational software, ",
    "technology has opened up new avenues for learning that were previously unimaginable.",
    "One of the primary benefits of technology in education is the accessibility it provides.",
];

const requestIds: string[] = [];
const audioBuffers: Buffer[] = [];

for (const paragraph of paragraphs) {
    // Usually we get back a stream from the convert function, but withRawResponse() is
    // used to get the headers from the response
    const response = await elevenlabs.textToSpeech
        .convert("T7QGPtToiqH4S8VlIkMJ", {
            text: paragraph,
            modelId: "eleven_v4",
            previousRequestIds: requestIds,
        })
        .withRawResponse();

    // response.rawResponse.headers also contains useful information like 'character-cost',
    // which shows the cost of the generation in characters.

    requestIds.push(response.rawResponse.headers.get("request-id") ?? "");

    // Convert stream to buffer
    const chunks: Buffer[] = [];
    for await (const chunk of response.data) {
        chunks.push(Buffer.from(chunk));
    }
    audioBuffers.push(Buffer.concat(chunks));
}

// Create a single readable stream from all buffers
const combinedStream = Readable.from(Buffer.concat(audioBuffers));

play(combinedStream);
```

#### Exécuter le code

```python
python example.py
```

```typescript
npx tsx example.mts
```

Vous devriez entendre la lecture de l’audio assemblé.

## FAQ

#### Comment fonctionne Request Stitching avec la diffusion en continu ?

Pour utiliser les ID de requête d’une requête précédente afin de conditionner la génération, celle-ci doit avoir été entièrement traitée. En diffusion en continu, cela signifie que l’audio doit être lu intégralement depuis le corps de la réponse.

#### Quelle différence apporte Request Stitching ?

La différence dépend du modèle, de la voix et des paramètres vocaux utilisés.

#### Quelle ancienneté les ID de requête peuvent-ils avoir ?

Les ID de requête ne doivent pas dater de plus de deux heures.

#### Request Stitching est-il disponible avec tous les forfaits ?

Oui, sauf si vous êtes un utilisateur d’entreprise ayant des exigences de confidentialité renforcées.

## Étapes suivantes

#### [Diffusion TTS](/docs/fr/eleven-api/guides/how-to/text-to-speech/streaming)

Diffusez progressivement l’audio à mesure qu’il est généré pour une lecture à plus faible latence.

#### [Guide de l’API](/docs/fr/api-reference/text-to-speech/stream)

Guide complet des paramètres de Request Stitching.