> ## Documentation Index
> Fetch the complete documentation index at: https://docs.jiekou.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Gemini 2.5 Flash TTS Synthèse vocale

Convertit du texte en parole via l’interface generateContent de Vertex AI. Le format du corps de requête est entièrement cohérent avec l’API officielle Vertex AI. Prend en charge deux modes : synchrone (une requête, une réponse) et streaming (une requête, réponse en flux). La sortie est au format LINEAR16 PCM (24 kHz, mono, 16-bit signed little-endian), sans en-tête WAV.

## En-têtes de requête

<ParamField header="Content-Type" type="string" required={true}>
  Valeur d’énumération : `application/json`
</ParamField>

<ParamField header="Authorization" type="string" required={true}>
  Format d’authentification Bearer : Bearer \{\{API Key}}.
</ParamField>

## Corps de requête

<ParamField body="contents" type="object" required={true}>
  <Expandable title="properties" defaultOpen={true}>
    <ParamField body="role" type="string" required={true} default="user">
      Rôle, fixé à user

      Valeur possible : `user`
    </ParamField>

    <ParamField body="parts" type="object" required={true}>
      <Expandable title="properties" defaultOpen={true}>
        <ParamField body="text" type="string" required={true}>
          Contenu textuel à synthétiser en parole. L’API Vertex AI combine l’invite et le texte dans un seul champ, au format '{prompt}: {text}', par exemple 'Say the following in a curious way: OK, so... tell me about this AI thing.'. Taille totale maximale : 8000 octets ; l’audio dépassant 655 secondes sera tronqué. Prend en charge les balises de marquage en ligne : \[sigh], \[laughing], \[uhm], \[sarcasm], \[robotic], \[shouting], \[whispering], \[extremely fast], \[short pause], \[medium pause], \[long pause]

          Limite de longueur : 0 - 8000
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="generation_config" type="object" required={true}>
  <Expandable title="properties" defaultOpen={true}>
    <ParamField body="temperature" type="number" default={2}>
      Paramètre de température, qui contrôle l’aléatoire et la créativité de la génération vocale. Une valeur plus élevée produit plus de créativité et de diversité ; une valeur plus basse est plus prévisible et focalisée. Plage valide : (0.0, 2.0], valeur recommandée : 2.0

      Plage de valeurs : \[0, 2]
    </ParamField>

    <ParamField body="speech_config" type="object" required={true}>
      <Expandable title="properties" defaultOpen={true}>
        <ParamField body="voice_config" type="object">
          Configuration vocale pour une seule personne. À choisir exclusivement avec multi\_speaker\_voice\_config

          <Expandable title="properties" defaultOpen={true}>
            <ParamField body="prebuilt_voice_config" type="object">
              <Expandable title="properties" defaultOpen={true}>
                <ParamField body="voice_name" type="string">
                  Nom de la voix prédéfinie (insensible à la casse). 30 voix disponibles au choix (voix masculines et féminines)

                  Valeurs possibles : `Achernar`, `Achird`, `Algenib`, `Algieba`, `Alnilam`, `Aoede`, `Autonoe`, `Callirrhoe`, `Charon`, `Despina`, `Enceladus`, `Erinome`, `Fenrir`, `Gacrux`, `Iapetus`, `Kore`, `Laomedeia`, `Leda`, `Orus`, `Pulcherrima`, `Puck`, `Rasalgethi`, `Sadachbia`, `Sadaltager`, `Schedar`, `Sulafat`, `Umbriel`, `Vindemiatrix`, `Zephyr`, `Zubenelgenubi`
                </ParamField>
              </Expandable>
            </ParamField>
          </Expandable>
        </ParamField>

        <ParamField body="language_code" type="string" required={true}>
          Code de langue (format BCP-47, insensible à la casse). Langues GA : ar-EG, bn-BD, nl-NL, en-IN, en-US, fr-FR, de-DE, hi-IN, id-ID, it-IT, ja-JP, ko-KR, mr-IN, pl-PL, pt-BR, ro-RO, ru-RU, es-ES, ta-IN, te-IN, th-TH, tr-TR, uk-UA, vi-VN. Les langues Preview incluent cmn-CN (mandarin chinois), entre autres, pour un total de 63 langues

          Valeurs possibles : `af-ZA`, `am-ET`, `ar-001`, `ar-EG`, `az-AZ`, `be-BY`, `bg-BG`, `bn-BD`, `ca-ES`, `ceb-PH`, `cmn-CN`, `cmn-TW`, `cs-CZ`, `da-DK`, `de-DE`, `el-GR`, `en-AU`, `en-GB`, `en-IN`, `en-US`, `es-419`, `es-ES`, `es-MX`, `et-EE`, `eu-ES`, `fa-IR`, `fi-FI`, `fil-PH`, `fr-CA`, `fr-FR`, `gl-ES`, `gu-IN`, `he-IL`, `hi-IN`, `hr-HR`, `ht-HT`, `hu-HU`, `hy-AM`, `id-ID`, `is-IS`, `it-IT`, `ja-JP`, `jv-JV`, `ka-GE`, `kn-IN`, `ko-KR`, `kok-IN`, `la-VA`, `lb-LU`, `lo-LA`, `lt-LT`, `lv-LV`, `mai-IN`, `mg-MG`, `mk-MK`, `ml-IN`, `mn-MN`, `mr-IN`, `ms-MY`, `my-MM`, `nb-NO`, `ne-NP`, `nl-NL`, `nn-NO`, `or-IN`, `pa-IN`, `pl-PL`, `ps-AF`, `pt-BR`, `pt-PT`, `ro-RO`, `ru-RU`, `sd-IN`, `si-LK`, `sk-SK`, `sl-SI`, `sq-AL`, `sr-RS`, `sv-SE`, `sw-KE`, `ta-IN`, `te-IN`, `th-TH`, `tr-TR`, `uk-UA`, `ur-PK`, `vi-VN`
        </ParamField>

        <ParamField body="multi_speaker_voice_config" type="object">
          Configuration vocale multi-locuteurs. À choisir exclusivement avec voice\_config. Remarque : gemini-2.5-flash-lite-preview-tts ne prend pas en charge la synthèse multi-locuteurs

          <Expandable title="properties" defaultOpen={true}>
            <ParamField body="speaker_voice_configs" type="object[]">
              Liste des configurations vocales des locuteurs

              <Expandable title="properties" defaultOpen={true}>
                <ParamField body="speaker" type="string" required={true}>
                  Alias du locuteur, qui doit être composé uniquement de caractères alphanumériques et ne contenir aucun espace. Il doit correspondre à l’identifiant du locuteur dans contents.parts.text
                </ParamField>

                <ParamField body="voice_config" type="object" required={true}>
                  <Expandable title="properties" defaultOpen={true}>
                    <ParamField body="prebuilt_voice_config" type="object">
                      <Expandable title="properties" defaultOpen={true}>
                        <ParamField body="voice_name" type="string">
                          Nom de la voix prédéfinie (insensible à la casse). 30 voix disponibles au choix (voix masculines et féminines)

                          Valeurs possibles : `Achernar`, `Achird`, `Algenib`, `Algieba`, `Alnilam`, `Aoede`, `Autonoe`, `Callirrhoe`, `Charon`, `Despina`, `Enceladus`, `Erinome`, `Fenrir`, `Gacrux`, `Iapetus`, `Kore`, `Laomedeia`, `Leda`, `Orus`, `Pulcherrima`, `Puck`, `Rasalgethi`, `Sadachbia`, `Sadaltager`, `Schedar`, `Sulafat`, `Umbriel`, `Vindemiatrix`, `Zephyr`, `Zubenelgenubi`
                        </ParamField>
                      </Expandable>
                    </ParamField>
                  </Expandable>
                </ParamField>
              </Expandable>
            </ParamField>
          </Expandable>
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

## Informations de réponse

<ResponseField name="audioContent" type="string" required={false}>
  Contenu audio encodé en Base64. Format : LINEAR16 PCM (24 kHz, mono, 16-bit signed little-endian), sans en-tête WAV. Le client peut utiliser ffmpeg pour la conversion : ffmpeg -f s16le -ar 24k -ac 1 -i input.raw output.wav
</ResponseField>

<ResponseField name="usageMetadata" type="object" required={false}>
  <Expandable title="properties" defaultOpen={true}>
    <ResponseField name="totalTokenCount" type="integer" required={false}>
      Nombre total de tokens (promptTokenCount + candidatesTokenCount)
    </ResponseField>

    <ResponseField name="promptTokenCount" type="integer" required={false}>
      Nombre de tokens consommés par le texte d’entrée
    </ResponseField>

    <ResponseField name="candidatesTokenCount" type="integer" required={false}>
      Nombre de tokens consommés par l’audio de sortie (environ 25 tokens par seconde d’audio)
    </ResponseField>
  </Expandable>
</ResponseField>
