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
s16leavec un taux d'échantillonnage variable, par exempleaudio/pcm;rate=24000Duré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 :
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.
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.
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.
Scripts recommandés pour la voix personnalisé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, } } }