Gemini 3.1 Flash Live est le modèle audio-à-audio à faible latence de Google pour le dialogue en temps réel et les applications à priorité vocale, et sa page modèle le crédite d'une détection des nuances acoustiques, d'une précision numérique et d'une conscience multimodale.
- Entrée
- texte image audio vidéo $0.75/M
- Sortie
- texte audio $4.5/M
- Entrée audio
- $3/M
- Sortie audio
- $12/M
Le prix en contexte
Position du prix parmi 6 modèles comparables
La barre montre où se situe le prix de ce modèle parmi tous les modèles du même type sur Synthorai. Le moins cher et le plus cher sont nommés à chaque extrémité. Ce sont des tarifs de base ; les remises lot, région et écriture en cache figurent sur la page des tarifs.
Spécifications et limites
Tokens
| Fenêtre de contexte (spécification du fournisseur) | 131 072 |
|---|---|
| Sortie max (spéc. fournisseur) | 65 536 |
Raisonnement
| Paramètre du fournisseur | thinkingLevel |
|---|---|
| Valeurs acceptées | minimal · low · medium · high |
| Valeur par défaut | minimal appliquée si la requête ne précise rien |
| Désactivable | Non |
| Comportement du raisonnement | Réglé sur minimal par défaut pour optimiser la latence ; les modèles Gemini 3 Live ont remplacé le thinkingBudget de 2.5 Live par un niveau. |
| Paramètre | reasoning_effort |
| Valeurs | minimal · low · medium · high la surface de paramètres de la passerelle - le mappage fournisseur ci-dessus s'applique |
Audio
| Langues | Plus de 90 langues pour la conversation multimodale en temps réel |
|---|---|
| Limites audio |
|
| Transcription en streaming | Oui |
Temps réel
| Voix | N'importe quelle voix du jeu de voix text-to-speech de Gemini ; les modèles à sortie audio native changent de langue naturellement au cours d'une conversation. |
|---|---|
| Session |
|
Modèle
| Modalités | texte + image + audio + vidéo → texte + audio |
|---|
Modèle audio-à-audio à faible latence pour les agents vocaux, documenté pour la détection des nuances acoustiques, la précision numérique et la conscience multimodale. Il utilise thinkingLevel (minimal / low / medium / high) au lieu de thinkingBudget, avec minimal par défaut pour la latence la plus faible.
Utilisez gemini-3.1-flash-live en 30 secondes
Compatible OpenAI Realtime : connectez-vous en WebSocket, audio entrant et sortant. WS /v1/realtime
import asyncio, base64, json, websockets
URL = "wss://synthorai.io/v1/realtime?model=gemini-3.1-flash-live"
# Send ONLY the Authorization header - the beta protocol is retired.
HEADERS = {"Authorization": "Bearer sk-syn-..."}
async def main():
async with websockets.connect(URL, additional_headers=HEADERS) as ws:
# 1) configure the speech-to-speech session
await ws.send(json.dumps({
"type": "session.update",
"session": {
"type": "realtime",
"output_modalities": ["audio"],
"audio": {"output": {"voice": "alloy"}},
},
}))
# 2) send input audio (base64 PCM16), then request a spoken reply
await ws.send(json.dumps({"type": "input_audio_buffer.append", "audio": pcm16_b64}))
await ws.send(json.dumps({"type": "input_audio_buffer.commit"}))
await ws.send(json.dumps({"type": "response.create"}))
# 3) stream the model's audio (and text) back
async for raw in ws:
ev = json.loads(raw)
if ev["type"] == "response.audio.delta":
play(base64.b64decode(ev["delta"])) # audio out
elif ev["type"] == "response.done":
break
asyncio.run(main())import WebSocket from "ws";
const ws = new WebSocket("wss://synthorai.io/v1/realtime?model=gemini-3.1-flash-live", {
// Send ONLY the Authorization header — the beta protocol is retired.
headers: { Authorization: "Bearer sk-syn-..." },
});
ws.on("open", () => {
// configure the speech-to-speech session
ws.send(JSON.stringify({ type: "session.update", session: {
type: "realtime", output_modalities: ["audio"], audio: { output: { voice: "alloy" } },
} }));
// send input audio (base64 PCM16), then request a spoken reply
ws.send(JSON.stringify({ type: "input_audio_buffer.append", audio: pcm16Base64 }));
ws.send(JSON.stringify({ type: "input_audio_buffer.commit" }));
ws.send(JSON.stringify({ type: "response.create" }));
});
ws.on("message", (raw) => {
const ev = JSON.parse(raw.toString());
if (ev.type === "response.audio.delta") playAudio(Buffer.from(ev.delta, "base64")); // audio out
else if (ev.type === "response.done") ws.close();
});# Realtime is a WebSocket protocol - use a WS client such as websocat.
# Each line below is one OpenAI Realtime event (JSON) sent to the session.
websocat -H 'Authorization: Bearer sk-syn-...' \
'wss://synthorai.io/v1/realtime?model=gemini-3.1-flash-live' <<'EOF'
{"type":"session.update","session":{"type":"realtime","output_modalities":["audio"],"audio":{"output":{"voice":"alloy"}}}}
{"type":"input_audio_buffer.append","audio":"<base64-pcm16>"}
{"type":"input_audio_buffer.commit"}
{"type":"response.create"}
EOF
# Responses stream back as response.audio.delta (base64 audio out) … response.donepackage main
import (
"net/http"
"github.com/gorilla/websocket"
)
func main() {
h := http.Header{}
h.Set("Authorization", "Bearer sk-syn-...")
// Send ONLY the Authorization header — the beta protocol is retired.
c, _, err := websocket.DefaultDialer.Dial("wss://synthorai.io/v1/realtime?model=gemini-3.1-flash-live", h)
if err != nil {
panic(err)
}
defer c.Close()
// configure the speech-to-speech session, send audio, request a spoken reply
c.WriteJSON(map[string]any{"type": "session.update", "session": map[string]any{
"type": "realtime", "output_modalities": []string{"audio"},
"audio": map[string]any{"output": map[string]any{"voice": "alloy"}}}})
c.WriteJSON(map[string]any{"type": "input_audio_buffer.append", "audio": pcm16B64})
c.WriteJSON(map[string]any{"type": "input_audio_buffer.commit"})
c.WriteJSON(map[string]any{"type": "response.create"})
for {
var ev struct {
Type string `json:"type"`
Delta string `json:"delta"`
}
if err := c.ReadJSON(&ev); err != nil {
return
}
if ev.Type == "response.audio.delta" {
playAudio(ev.Delta) // base64 audio out
} else if ev.Type == "response.done" {
return
}
}
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.WebSocket;
import java.util.concurrent.CompletionStage;
// JDK built-in WebSocket — no extra dependency needed.
WebSocket ws = HttpClient.newHttpClient().newWebSocketBuilder()
.header("Authorization", "Bearer sk-syn-...")
// Send ONLY the Authorization header — the beta protocol is retired.
.buildAsync(URI.create("wss://synthorai.io/v1/realtime?model=gemini-3.1-flash-live"), new WebSocket.Listener() {
public CompletionStage<?> onText(WebSocket w, CharSequence data, boolean last) {
// handle response.audio.delta (base64 audio out) / response.done here
w.request(1);
return null;
}
}).join();
// configure the session, send input audio, then request a spoken reply
ws.sendText("{\"type\":\"session.update\",\"session\":{\"type\":\"realtime\",\"output_modalities\":[\"audio\"],\"audio\":{\"output\":{\"voice\":\"alloy\"}}}}", true);
ws.sendText("{\"type\":\"input_audio_buffer.append\",\"audio\":\"<base64-pcm16>\"}", true);
ws.sendText("{\"type\":\"input_audio_buffer.commit\"}", true);
ws.sendText("{\"type\":\"response.create\"}", true);À propos de gemini-3.1-flash-live
- Il accepte du texte, des images, de l'audio et de la vidéo et renvoie du texte et de l'audio sur le WebSocket avec état de la Live API, avec une limite de 131 072 tokens en entrée et de 65 536 tokens en sortie, soit huit fois le plafond de sortie du modèle à audio natif 2.5 qu'il remplace.
- L'appel de fonctions, l'ancrage par recherche et la réflexion sont pris en charge, tandis que la mise en cache, les sorties structurées, l'exécution de code et la Batch API ne le sont pas ; la profondeur de réflexion se règle avec thinkingLevel à minimal, low, medium ou high, avec minimal par défaut pour la latence la plus basse, au lieu du thinkingBudget numérique qu'utilisait la génération 2.5.
- Les notes de migration sont la partie utile, car cette mise à niveau retire autant qu'elle ajoute.
- L'appel de fonctions asynchrone n'est pas encore pris en charge, donc les appels sont séquentiels et le modèle ne commencera pas à répondre avant l'arrivée de la réponse de l'outil ; l'audio proactif et le dialogue affectif ont disparu et leur configuration doit être retirée.
- Un même événement serveur peut désormais transporter plusieurs parties de contenu à la fois, par exemple un fragment audio et une transcription ensemble, de sorte que les clients qui ne lisent que la première partie perdront silencieusement du contenu.
- La couverture des tours inclut désormais par défaut l'activité audio détectée et toutes les images vidéo, ce qui peut augmenter les coûts pour les applications diffusant de la vidéo en continu, et le contenu client ne peut qu'amorcer l'historique initial.
- Synthorai le sert via l'endpoint WebSocket /v1/realtime compatible OpenAI.
FAQ
Peut-on essayer l'API gemini-3.1-flash-live gratuitement ?
gemini-3.1-flash-live est actuellement en bêta sur invitation : l'accès se fait sur candidature plutôt que par inscription ouverte. Faites la demande depuis la console Synthorai ; une fois approuvée, la tarification standard au paiement à l'usage s'applique, sans abonnement.
Quels sont les points forts de gemini-3.1-flash-live ?
Modèle audio-à-audio pour le dialogue en temps réel et les applications à priorité vocale ; huit fois le plafond de sortie du modèle à audio natif 2.5 ; pas d'appel de fonctions asynchrone, donc les appels d'outils sont séquentiels. Voir la section À propos pour le tableau complet, tiré des notes de version officielles du fournisseur.
Combien coûte gemini-3.1-flash-live ?
Sur Synthorai, gemini-3.1-flash-live coûte $0.75 par million de tokens en entrée et $4.5 par million de tokens en sortie, soit le prix catalogue du fournisseur, sans majoration de plateforme.
Comment appeler l'API gemini-3.1-flash-live ?
gemini-3.1-flash-live est un modèle speech-to-speech : connectez-vous en WebSocket à wss://synthorai.io/v1/realtime?model=gemini-3.1-flash-live avec le SDK OpenAI Realtime (ou un WebSocket brut) pour envoyer et recevoir de l'audio. Ce n'est pas un envoi de fichier POST /v1/audio/transcriptions. Authentifiez-vous avec votre clé sk-syn et n'envoyez que l'en-tête Authorization (le protocole beta est retiré).
Comment obtenir l'accès à gemini-3.1-flash-live ?
gemini-3.1-flash-live est en bêta sur invitation : demandez l'accès depuis la console Synthorai. Une fois la demande approuvée, il fonctionne comme tous les autres modèles : pointez votre SDK OpenAI vers base_url="https://synthorai.io/v1" et définissez model="gemini-3.1-flash-live".
Modèles associés
Comparer
Chaque valeur de cette page est transcrite de la documentation du fournisseur, liée ci-dessus, et porte la date de sa vérification. Les prix sont comparés à l'échelle du catalogue ; les valeurs de spécification que les fournisseurs définissent différemment sont présentées avec la différence indiquée plutôt que mises en graphique. Rien ici n'est mesuré par nous, et rien n'est noté.