הגדרת השפה והקול

במאמר הזה מוסבר איך להגדיר תשובות של דיבור מסונתז וזיהוי פעילות קולית ב-Gemini Live API. אתם יכולים להגדיר תגובות במגוון שפות וקולות באיכות HD, וגם להגדיר את ההגדרות של זיהוי פעילות קולית כדי לאפשר למשתמשים לקטוע את המודל.

הגדרת השפה והקול

מודלים של אודיו בזמן אמת כמו gemini-3.8-live יכולים לעבור בין שפות באופן טבעי במהלך שיחה. אפשר גם להגביל את השפות שבהן הוא מדבר על ידי ציון השפה בהוראות המערכת.

הקול מוגדר בשדה voice_name בכל המודלים.

בדוגמת הקוד הבאה אפשר לראות איך מגדירים את השפה והקול.

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",
  ),
)

הגדרת הטון והמבטא של הקול במדריך

אתם יכולים להנחות את הטון והמבטא של הקול באמצעות הוראות מערכת, ו-Gemini Live API יגיב בקול שהוריתם לו. לדוגמה, "אנגלית בקול חיובי ועליז עם מבטא צרפתי".

קולות נתמכים

‫Gemini Live API תומך ב-30 אפשרויות קוליות בשדה voice_name:

Zephyr -- Bright
Kore -- Firm
Orus -- Firm
Autonoe -- Bright
Umbriel -- Easy-going
Erinome -- Clear
Laomedeia -- Upbeat
Schedar -- Even
Achird -- Friendly
Sadachbia -- Lively
– קלילה
פנריר – מתלהבת
אאודה – נעימה
אנסלדוס – נשיפתית
אלג'יבה – חלקה
אלגניב – מחוספסת
אכרנר – רכה
גאקרוקס – בוגרת
זובנלגנובי – לא רשמית
סדלטאגר – בעלת ידע
כארון – אינפורמטיבי
לדה – צעיר
קלירואה – נינוח
יאפטוס – ברור
דספינה – חלק
ראס אלגתי – אינפורמטיבי
אלנילם – תקיף
פולכרימה – ישיר
וינדמיאטריקס – עדין
סולאפט – חם

השפות הנתמכות

‫Gemini Live API תומך בשפות הבאות:

שפה קוד BCP-47
ערבית (מצרית) ar-EG
בנגלית (בנגלדש) bn-BD
הולנדית (הולנד) nl-NL
אנגלית (הודו) חבילה של en-IN ו-hi-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-US
טמילית (הודו) ta-IN
טלוגו (הודו) te-IN
תאית (תאילנד) th-TH
טורקית (טורקיה) tr-TR
אוקראינית (אוקראינה) uk-UA
וייטנאמית (וייטנאם) vi-VN

שימוש בקול מותאם אישית

במקום קול מוכן מראש, אתם יכולים לספק הקלטה קצרה של קול ש-Gemini Live API ישכפל בתשובות של דיבור מסונתז. קולות בהתאמה אישית מוגדרים לכל סשן בשדה replicated_voice_config של voice_config. אין צורך להעלות או לאמן מראש.

הדרישות לגבי דגימת קול

דגימת הקול צריכה לעמוד במפרט הבא:

  • פורמט אודיו: אודיו PCM‏ s16le עם תדירות דגימה משתנה, לדוגמה: audio/pcm;rate=24000

  • משך: 10 עד 20 שניות.

הקלטת קול מותאם אישית

כדי להקליט דגימת קול באיכות הכי גבוהה, מומלץ לפעול לפי הטיפים הבאים:

  1. דברו באופן טבעי: אל תשתמשו ב"קול של שדרן רדיו" או בהגייה מוגזמת, אלא אם אתם רוצים שהדמות תישמע כמו שדרן. תקרא את התסריט בדיוק כמו שהיית מדבר עם חבר.

  2. צמצום רעשי הרקע: כדאי לצמצם את רעשי הרקע ככל האפשר: לכבות מאווררים ומזגנים ולסגור חלונות פתוחים.

  3. חיוך קל: כשמחייכים בזמן ההקלטה, הקול מקבל גוון חם יותר, והגוון הזה מתווסף לקול המשוכפל.

מומלץ להשתמש באחד מהסקריפטים הבאים כדי להקליט קולות בהתאמה אישית:

  • תקן פונטי, הכי טוב לאיכות הכוללת: "When the sunlight strikes raindrops in the air, they act like a prism and form a rainbow. הקשת היא חלוקה של אור לבן להרבה צבעים יפים. הן בצורת קשת ארוכה ועגולה".

  • מספר סיפורים, הכי טוב ללכידת רגשות וטווח דינמי: "לא האמנתי למראה עיניי כשפתחתי את הספר הישן והמאובק. מפתח קטן מזהב נפל על רצפת העץ. 'מאיפה זה הגיע?' לחשתי לעצמי, והרגשתי התרגשות פתאומית. הכול עמד להשתנות".

הגדרת הקול המותאם אישית

מגדירים את הקול המותאם אישית במטען הייעודי הראשוני של setup ששולחים דרך חיבור ה-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": {},
    }
}

מחליפים את מה שכתוב בשדות הבאים:

  • ‫VOICE_SAMPLE: מחרוזת אודיו בפורמט PCM בקידוד base64 (דגימה של 10-20 שניות).

  • ‫VOICE_MIME_TYPE: סוג MIME של אודיו PCM, לדוגמה "audio/pcm;rate=24000".

אתם יכולים לשלב קול מותאם אישית עם אווטאר מוכן מראש או עם אווטאר מותאם אישית. מידע נוסף זמין במאמר הגדרת דמויות דיגיטליות בשידור חי.

הגדרת זיהוי דיבור

זיהוי דיבור (VAD) מאפשר למודל לזהות מתי אדם מדבר. היכולת הזו חיונית ליצירת שיחות טבעיות, כי היא מאפשרת למשתמש לקטוע את המודל בכל שלב.

כש-VAD מזהה הפרעה, היצירה שמתבצעת כרגע מבוטלת ונמחקת. רק המידע שכבר נשלח ללקוח נשמר בהיסטוריית השיחות. השרת שולח BidiGenerateContentServerContent הודעה כדי לדווח על ההפרעה. השרת מוחק את כל הקריאות הממתינות לפונקציות ושולח הודעת BidiGenerateContentServerContent עם מזהי הקריאות שבוטלו.

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

המאמרים הבאים