Configurare la lingua e la voce

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 s16le con frequenza di campionamento variabile, ad esempio audio/pcm;rate=24000

  • Durata: 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:

  1. 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.

  2. Limita il rumore di fondo: limita il rumore di fondo il più possibile: spegni i ventilatori, spegni i condizionatori e chiudi le finestre aperte.

  3. Sorridi leggermente: sorridere durante la registrazione tende ad aggiungere calore alla registrazione, che viene poi aggiunto alla voce replicata.

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,
        }
    }
}
      

Passaggi successivi