Streaming bidirectionnel à l'aide de l'API Gemini Live



Gemini Live API permet des interactions vocales et textuelles bidirectionnelles à faible latence avec Gemini. À l'aide de Live API, vous pouvez offrir aux utilisateurs finaux une expérience de conversation vocale naturelle et humaine, avec la possibilité d'interrompre les réponses du modèle à l'aide de commandes textuelles ou vocales. Le modèle peut traiter des entrées textuelles et audio (vidéo à venir), et peut fournir des sorties textuelles et audio.

Vous pouvez créer des prototypes avec des requêtes et Live API dans Vertex AI Studio.

Live API est une API avec état qui crée une connexion WebSocket pour établir une session entre le client et le serveur Gemini. Pour en savoir plus, consultez la documentation de référence de Live API.

Avant de commencer

Si ce n'est pas déjà fait, consultez le guide de démarrage, qui explique comment configurer votre projet Firebase, connecter votre application à Firebase, ajouter le SDK, initialiser le service Vertex AI et créer une instance LiveModel.

Notez que pour utiliser Live API:

  • Assurez-vous d'utiliser au moins les versions suivantes de la bibliothèque Firebase:
    iOS et versions ultérieures: non encore pris en charge | Android: version 16.3.0 et ultérieures (BoM: version 33.12.0 et ultérieures) | Web: non encore pris en charge | Flutter: version 1.5.0 et ultérieures (BoM: version 3.9.0 et ultérieures)

  • Créez une instance LiveModel (et non une instance GenerativeModel).

Modèles compatibles avec cette fonctionnalité

Live API n'est compatible qu'avec gemini-2.0-flash-live-preview-04-09 (et non gemini-2.0-flash).

Utiliser les fonctionnalités standards de Live API

Cette section explique comment utiliser les fonctionnalités standards de Live API, en particulier pour diffuser différents types d'entrées et de sorties:

Envoyer et recevoir des SMS

Vous pouvez envoyer des entrées de texte en streaming et recevoir des sorties de texte en streaming. Veillez à créer une instance liveModel et à définir la modalité de réponse sur Text.

Découvrez comment choisir un modèle et éventuellement un emplacement adapté à votre cas d'utilisation et à votre application.

Envoyer et recevoir des contenus audio

Vous pouvez envoyer une entrée audio en streaming et recevoir une sortie audio en streaming. Veillez à créer une instance LiveModel et à définir la modalité de réponse sur Audio.

Découvrez comment configurer et personnaliser la voix de réponse (plus loin sur cette page).

Découvrez comment choisir un modèle et éventuellement un emplacement adapté à votre cas d'utilisation et à votre application.



Créer des expériences plus attrayantes et interactives

Cette section explique comment créer et gérer des fonctionnalités plus attrayantes ou interactives de la Live API.

Modifier la voix de la réponse

Live API utilise Chirp 3 pour prendre en charge les réponses vocales synthétisées. Lorsque vous utilisez Vertex AI in Firebase, vous pouvez envoyer des contenus audio dans cinq voix haute définition et 31 langues.

Si vous ne spécifiez pas de voix, la valeur par défaut est Puck. Vous pouvez également configurer le modèle pour qu'il réponde dans l'une des voix suivantes:

Aoede (femme)
Charon (homme)
Fenrir (homme)
Kore (femme)
Puck (homme)

Pour entendre des exemples de ces voix et obtenir la liste complète des langues disponibles, consultez Chirp 3: voix HD.

Pour spécifier une voix, définissez le nom de la voix dans l'objet speechConfig dans le cadre de la configuration du modèle:

Pour obtenir les meilleurs résultats lorsque vous invitez le modèle à répondre dans une autre langue que l'anglais et que vous l'y obligez, incluez les éléments suivants dans vos instructions système:

RESPOND IN LANGUAGE. YOU MUST RESPOND UNMISTAKABLY IN LANGUAGE.

Maintenir le contexte entre les sessions et les requêtes

Vous pouvez utiliser une structure de chat pour conserver le contexte entre les sessions et les requêtes. Notez que cette fonctionnalité ne fonctionne que pour la saisie et la sortie de texte.

Cette approche est la plus adaptée aux contextes courts. Vous pouvez envoyer des interactions par étape pour représenter la séquence exacte des événements. Pour les contextes plus longs, nous vous recommandons de fournir un seul résumé de message afin de libérer la fenêtre de contexte pour les interactions ultérieures.

Gérer les interruptions

Vertex AI in Firebase n'est pas encore compatible avec la gestion des interruptions. Veuillez réessayer ultérieurement.

Utiliser l'appel de fonction (outils)

Vous pouvez définir des outils, comme les fonctions disponibles, à utiliser avec l'API Live, comme vous le feriez avec les méthodes de génération de contenu standards. Cette section décrit certaines nuances lorsque vous utilisez l'API Live avec l'appel de fonction. Pour obtenir une description complète et des exemples d'appel de fonction, consultez le guide d'appel de fonction.

À partir d'une seule invite, le modèle peut générer plusieurs appels de fonction et le code nécessaire pour enchaîner leurs sorties. Ce code s'exécute dans un environnement bac à sable, générant des messages BidiGenerateContentToolCall ultérieurs. L'exécution est mise en pause jusqu'à ce que les résultats de chaque appel de fonction soient disponibles, ce qui garantit un traitement séquentiel.

De plus, l'utilisation de l'API Live avec l'appel de fonction est particulièrement efficace, car le modèle peut demander à l'utilisateur des informations de suivi ou de clarification. Par exemple, si le modèle ne dispose pas d'informations suffisantes pour fournir une valeur de paramètre à une fonction qu'il souhaite appeler, il peut demander à l'utilisateur de fournir des informations supplémentaires ou plus claires.

Le client doit répondre avec BidiGenerateContentToolResponse.



Limites et exigences

Tenez compte des limites et des exigences suivantes concernant Live API.

Transcription

Vertex AI in Firebase n'est pas encore compatible avec les transcriptions. Veuillez réessayer ultérieurement.

Langages

Formats audio

Live API est compatible avec les formats audio suivants:

  • Format audio d'entrée:audio PCM brut 16 bits à 16 kHz, little-endian
  • Format audio de sortie:audio PCM brut 16 bits à 24 kHz, little-endian

Limites de débit

Les limites de débit suivantes s'appliquent:

  • 10 sessions simultanées par projet Firebase
  • 4 millions de jetons par minute

Durée des sessions

La durée par défaut d'une session est de 30 minutes. Lorsque la durée de la session dépasse la limite, la connexion est interrompue.

Le modèle est également limité par la taille du contexte. L'envoi de grands blocs d'entrée peut entraîner la fin prématurée de la session.

Détection de l'activité vocale (VAD)

Le modèle effectue automatiquement la détection de l'activité vocale (VAD) sur un flux d'entrée audio continu. La suppression de latence audio est activée par défaut.

Comptage des jetons

Vous ne pouvez pas utiliser l'API CountTokens avec Live API.