Configurer la langue et la voix

Ce document explique comment configurer les réponses vocales synthétisées et la détection d'activité vocale dans l'API Gemini Live. Vous pouvez configurer des réponses dans différentes langues et avec différentes voix HD, et également configurer les paramètres de détection de l'activité vocale pour permettre aux utilisateurs d'interrompre le modèle.

Définir la langue et la voix

Les modèles audio en direct tels que gemini-3.8-live peuvent passer d'une langue à l'autre naturellement pendant une conversation. Vous pouvez également limiter les langues qu'il utilise en les spécifiant dans les instructions système.

La voix est configurée dans le champ voice_name pour tous les modèles.

L'exemple de code suivant vous montre comment configurer la langue et la voix.

from google.genai.types import LiveConnectConfig, SpeechConfig, VoiceConfig, PrebuiltVoiceConfig

config = LiveConnectConfig(
  response_modalities=["AUDIO"],
  speech_config=SpeechConfig(
    voice_config=VoiceConfig(
        prebuilt_voice_config=PrebuiltVoiceConfig(
            voice_name=voice_name,
        )
    ),
    language_code="en-US",
  ),
)

Ton et accent de la voix du guide

Vous pouvez guider le ton et l'accent de la voix à l'aide d'instructions système, et l'API Gemini Live répond avec la voix que vous avez indiquée. Par exemple, "Anglais avec une voix positive et entraînante avec un accent français."

Voix disponibles

L'API Gemini Live est compatible avec les 30 options vocales suivantes dans le champ voice_name :

Zephyr : Lumineux
Kore : Ferme
Orus : Ferme
Autonoe : Lumineux
Umbriel : Détendu
Erinome : Clair
Laomedeia : Joyeux
Schedar : Équilibré
Achird : Amical
Sadachbia : Vif
Puck : Entraînant
Fenrir : Enthousiaste
Aoede : Détendu
Enceladus : Calme
Algieba : Doux
Algenib : Graveleux
Achernar : Doux
Gacrux : Mature
Zubenelgenubi : Décontracté
Sadaltager : Informé
Charon : Informatif
Leda : Jeune
Callirrhoe : Décontracté
Iapetus : Clair
Despina : Doux
Rasalgethi : Informatif
Alnilam : Ferme
Pulcherrima : Direct
Vindemiatrix : Doux
Sulafat : Chaleureux

Langues acceptées

L'API Gemini Live est compatible avec les langues suivantes :

Langue Code BCP-47
Arabe (Égypte) ar-EG
Bengali (Bangladesh) bn-BD
Néerlandais (Pays-Bas) nl-NL
Anglais (Inde) Pack en-IN et hi-IN
Anglais (États-Unis) en-US
Français (France) fr-FR
Allemand (Allemagne) de-DE
Hindi (Inde) hi-IN
Indonésien (Indonésie) id-ID
Italien (Italie) it-IT
Japonais (Japon) ja-JP
Coréen (Corée) ko-KR
Marathi (Inde) mr-IN
Polonais (Pologne) pl-PL
Portugais (Brésil) pt-BR
Roumain (Roumanie) ro-RO
Russe (Russie) ru-RU
Espagnol (États-Unis) es-US
Tamoul (Inde) ta-IN
Télougou (Inde) te-IN
Thaï (Thaïlande) th-TH
Turc (Turquie) tr-TR
Ukrainien (Ukraine) uk-UA
Vietnamien (Viêt Nam) vi-VN

Utiliser une voix personnalisée

Au lieu d'une voix prédéfinie, vous pouvez fournir un court enregistrement d'une voix que l'API Gemini Live réplique dans les réponses vocales synthétisées. Les voix personnalisées sont configurées par session dans le champ replicated_voice_config de voice_config. Vous n'avez rien à importer ni à entraîner à l'avance.

Exigences concernant les échantillons de voix

L'échantillon vocal doit respecter les spécifications suivantes :

  • Format audio : audio PCM s16le avec un taux d'échantillonnage variable, par exemple audio/pcm;rate=24000

  • Durée : entre 10 et 20 secondes

Enregistrer une voix personnalisée

Lorsque vous enregistrez l'échantillon vocal, nous vous recommandons de suivre les conseils suivants pour obtenir la meilleure qualité vocale :

  1. Parlez naturellement : n'utilisez pas une "voix de radio" ni une prononciation exagérée, sauf si vous voulez que l'avatar ait la voix d'un présentateur. Lisez le script exactement comme si vous parliez à un ami.

  2. Limitez le bruit de fond : limitez le bruit de fond autant que possible en éteignant les ventilateurs et les climatiseurs, et en fermant les fenêtres ouvertes.

  3. Souriez légèrement : lorsque vous souriez pendant l'enregistrement, vous avez tendance à ajouter de la chaleur à l'enregistrement, qui est ensuite ajoutée à la voix répliquée.

Nous vous recommandons d'utiliser l'un des scripts suivants pour enregistrer des voix personnalisées :

  • Norme phonétique, idéale pour la qualité globale : "Lorsque la lumière du soleil frappe les gouttes de pluie dans l'air, elles agissent comme un prisme et forment un arc-en-ciel. L'arc-en-ciel est une division de la lumière blanche en de nombreuses couleurs magnifiques. Elles prennent la forme d'un long arc de cercle."

  • Conteur, idéal pour capturer les émotions et la plage dynamique : "Je n'en croyais pas mes yeux quand j'ai ouvert le vieux livre poussiéreux. Une petite clé dorée tomba sur le plancher en bois. "D'où vient cette information ?" J'ai murmuré, sentant une soudaine excitation. Tout allait changer."

Définir la voix personnalisée

Configurez la voix personnalisée dans la charge utile setup initiale que vous envoyez via la connexion WebSocket :

import base64
import json
import websockets

# Load custom voice audio (PCM s16le, e.g., 24kHz)
with open("/path/to/your/audio_sample.wav", "rb") as f:
    wav_b64 = base64.b64encode(f.read()).decode("utf-8")

# Setup generation config with custom voice
GENERATION_CONFIG = {
    "response_modalities": ["AUDIO"],
    "speech_config": {
        "voice_config": {
            "replicated_voice_config": {
                "voice_sample_audio": "VOICE_SAMPLE",
                "mime_type": "VOICE_MIME_TYPEaudio/pcm;rate=24000",
            }
        }
    },
}

# Session setup message
SETUP_MESSAGE = {
    "setup": {
        "model": "gemini-3.8-live",
        "generation_config": GENERATION_CONFIG,
        "system_instruction": {
            "parts": [{"text": "Your system instruction here"}]
        },
        "input_audio_transcription": {},
        "output_audio_transcription": {},
    }
}

Remplacez les éléments suivants :

  • VOICE_SAMPLE : chaîne audio PCM encodée en base64 (échantillon de 10 à 20 secondes).

  • VOICE_MIME_TYPE : type MIME pour l'audio PCM, par exemple "audio/pcm;rate=24000".

Vous pouvez associer une voix personnalisée à un avatar prédéfini ou personnalisé. Pour en savoir plus, consultez Configurer des avatars en direct.

Configurer la détection de l'activité vocale

La détection de l'activité vocale (VAD, Voice Activity Detection) permet au modèle de reconnaître quand une personne parle. C'est essentiel pour créer des conversations naturelles, car cela permet à un utilisateur d'interrompre le modèle à tout moment.

Lorsque la VAD détecte une interruption, la génération en cours est annulée et supprimée. Seules les informations déjà envoyées au client sont conservées dans l'historique de la session. Le serveur envoie ensuite un message BidiGenerateContentServerContent pour signaler l'interruption. Le serveur supprime ensuite tous les appels de fonction en attente et envoie un message BidiGenerateContentServerContent avec les ID des appels annulés.

Python

config = {
    "response_modalities": ["audio"],
    "realtime_input_config": {
        "automatic_activity_detection": {
            "disabled": False, # default
            "start_of_speech_sensitivity": "low",
            "end_of_speech_sensitivity": "low",
            "prefix_padding_ms": 20,
            "silence_duration_ms": 100,
        }
    }
}
      

Étapes suivantes