Questo documento descrive come configurare le risposte di sintesi vocale e il rilevamento di attività vocale nell'API Gemini Live. Puoi configurare le risposte in una varietà di voci e lingue in HD e anche configurare le impostazioni di rilevamento dell'attività vocale per consentire agli utenti di interrompere il modello.
Impostare la lingua e la voce
I modelli audio live come gemini-3.8-live possono passare da una lingua all'altra
in modo naturale durante la conversazione. Puoi anche limitare le lingue che parla
specificandole nelle istruzioni di sistema.
La voce è configurata nel campo voice_name per tutti i modelli.
Il seguente esempio di codice mostra come configurare la lingua e la voce.
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", ), )
Tono e accento della voce guida
Puoi guidare il tono e l'accento della voce utilizzando le istruzioni di sistema e l'API Gemini Live risponde con la voce che hai indicato. Ad esempio, "Inglese con una voce positiva e allegra con accento francese".
Voci supportate
L'API Gemini Live supporta le seguenti 30 opzioni vocali nel campo
voice_name:
|
Zephyr -- Brillante Kore -- Fermo Orus -- Fermo Autonoe -- Brillante Umbriel -- Tranquillo Erinome -- Chiaro Laomedeia -- Vivace Schedar -- Uniforme Achird -- Amichevole Sadachbia -- Vivace |
Puck -- Vivace Fenrir -- Entusiasta Aoede -- Spensierata Enceladus -- Sussurrata Algieba -- Morbida Algenib -- Ruvida Achernar -- Delicata Gacrux -- Matura Zubenelgenubi -- Informale Sadaltager -- Competente |
Caronte -- Informativo Leda -- Giovanile Calliroe -- Tranquillo Giapeto -- Chiaro Despina -- Delicato Rasalgethi -- Informativo Alnilam -- Fermo Pulcherrima -- Diretto Vindemiatrix -- Delicato Sulafat -- Caldo |
Lingue supportate
L'API Gemini Live supporta le seguenti lingue:
| Lingua | Codice BCP-47 |
|---|---|
| Arabo (egiziano) | ar-EG |
| Bengalese (Bangladesh) | bn-BD |
| Olandese (Paesi Bassi) | nl-NL |
| Inglese (India) | Pacchetto en-IN e hi-IN |
| Inglese (USA) | en-US |
| Francese (Francia) | fr-FR |
| Tedesco (Germania) | de-DE |
| Hindi (India) | hi-IN |
| Indonesiano (Indonesia) | id-ID |
| Italiano (Italia) | it-IT |
| Giapponese (Giappone) | ja-JP |
| Coreano (Corea) | ko-KR |
| Marathi (India) | mr-IN |
| Polacco (Polonia) | pl-PL |
| Portoghese (Brasile) | pt-BR |
| Rumeno (Romania) | ro-RO |
| Russo (Russia) | ru-RU |
| Spagnolo (USA) | es-US |
| Tamil (India) | ta-IN |
| Telugu (India) | te-IN |
| Thailandese (Thailandia) | th-TH |
| Turco (Turchia) | tr-TR |
| Ucraino (Ucraina) | uk_UA |
| Vietnamita (Vietnam) | vi-VN |
Utilizzare una voce personalizzata
Anziché una voce predefinita, puoi fornire una breve registrazione di una voce che
l'API Gemini Live replica nelle risposte di sintesi vocale. Le voci
personalizzate vengono configurate per sessione nel campo replicated_voice_config di
voice_config. Non devi caricare o addestrare nulla in anticipo.
Requisiti per il campione vocale
Il campione vocale deve soddisfare le seguenti specifiche:
Formato audio: audio PCM
s16lecon frequenza di campionamento variabile, ad esempioaudio/pcm;rate=24000Durata: da 10 a 20 secondi.
Registrazione di una voce personalizzata
Quando registri il campione vocale, ti consigliamo di seguire questi suggerimenti per ottenere la migliore qualità della voce:
Parla in modo naturale: non usare una "voce radiofonica " o pronunciare le parole in modo esagerato, a meno che tu non voglia che l'avatar suoni come un emittente. Leggi il copione esattamente come se parlassi con un amico.
Limita il rumore di fondo: limita il rumore di fondo il più possibile: spegni i ventilatori, spegni i condizionatori e chiudi le finestre aperte.
Sorridi leggermente: sorridere durante la registrazione tende ad aggiungere calore alla registrazione, che viene poi aggiunto alla voce replicata.
Script consigliati per la voce personalizzata
Ti consigliamo di utilizzare uno dei seguenti script per registrare voci personalizzate:
Standard fonetico, ideale per la qualità complessiva: "Quando la luce del sole colpisce le goccioline d'acqua sospese nell'aria, le goccioline si comportano come prismi e formano l'arcobaleno. L'arcobaleno è una scomposizione della luce bianca in tanti colori meravigliosi. Questi prendono la forma di un lungo arco arrotondato".
Storyteller, ideale per catturare emozioni e gamma dinamica: "Non riuscivo a credere ai miei occhi quando ho aperto il vecchio libro impolverato. Una piccola chiave dorata è caduta sul pavimento di legno. "Da dove è uscito questo?" Mi sono detta sottovoce, provando un'improvvisa emozione. Tutto stava per cambiare."
Impostare la voce personalizzata
Configura la voce personalizzata nel payload setup iniziale che invii tramite la connessione 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": {}, } }
Sostituisci quanto segue:
VOICE_SAMPLE: una stringa audio PCM codificata in base64 (campione di 10-20 secondi).
VOICE_MIME_TYPE: tipo MIME per l'audio PCM, ad esempio
"audio/pcm;rate=24000".
Puoi abbinare una voce personalizzata a un avatar predefinito o personalizzato. Per saperne di più, consulta Configurare gli avatar live.
Configurare il rilevamento di attività vocale
Il rilevamento di attività vocale (VAD) consente al modello di riconoscere quando una persona sta parlando. Questo è essenziale per creare conversazioni naturali, perché consente a un utente di interrompere il modello in qualsiasi momento.
Quando VAD rileva un'interruzione, la generazione in corso viene annullata e
ignorata. Nella cronologia della sessione vengono conservate solo le informazioni già inviate al cliente. Il server invia quindi un messaggio BidiGenerateContentServerContent
per segnalare l'interruzione. Il server quindi elimina tutte le chiamate di funzioni in attesa e invia un messaggio BidiGenerateContentServerContent con gli ID delle chiamate annullate.
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, } } }