درس 1 — Comprendre l'audio

Le son en données, et quels modèles pour quoi

5 دقائق قراءة

هذا المحتوى غير مترجم بعد. تُعرض النسخة الأصلية.

Le son en données, et quels modèles pour quoi

Un son, c'est une suite de nombres

Un micro mesure la pression de l'air des milliers de fois par seconde. Chaque mesure est un échantillon (un nombre entier). Trois réglages décrivent un flux audio :

TermeDéfinitionValeur typique ici
Fréquence d'échantillonnagenombre de mesures par seconde, en hertz (Hz)24 000 Hz en sortie des modèles Gemini, 16 000 Hz en entrée de la Live API
Profondeurtaille de chaque mesure16 bits (2 octets), un entier entre -32 768 et 32 767
Canauxmono (1) ou stéréo (2)mono

Ces nombres bruts, posés les uns après les autres, s'appellent du PCM (Pulse Code Modulation). Un fichier WAV est simplement du PCM précédé d'un en-tête de 44 octets qui commence par les lettres RIFF et indique la fréquence, la profondeur et le nombre de canaux.

Faites le calcul pour une seconde de voix en sortie : 24 000 échantillons × 2 octets = 48 000 octets. Une minute pèse donc environ 2,9 Mo en WAV. C'est pour cela que l'on compresse (MP3, Opus) dès qu'on stocke ou qu'on transporte beaucoup d'audio.

flowchart LR
  M["Micro"] -->|"16 000 mesures/s"| P["PCM 16 bits mono"]
  P --> W["WAV = en-tête RIFF + PCM"]
  W --> API["API Gemini"]
  API -->|"32 tokens par seconde (doc)"| TOK["Tokens audio"]
  TOK --> MOD["Modèle"]

Pour un modèle, l'audio est découpé en tokens audio, comme le texte est découpé en tokens de texte. La documentation de l'API indique 32 tokens par seconde d'audio en entrée (une minute ≈ 1 920 tokens) et jusqu'à 9,5 heures d'audio par requête. La facturation suit ces tokens : un appel de 10 minutes coûte donc l'équivalent de quelque 19 000 tokens d'entrée, avant même votre consigne.

Combien d'octets fait une seconde d'audio PCM 16 bits mono à 24 000 Hz ?

Trois familles de modèles vocaux

FamilleEntrée → sortieMode d'appelQuand l'utiliser
STT (Speech-To-Text, transcription)audio → texterequête classique (generate_content)comptes rendus, sous-titres, recherche dans des appels
TTS (Text-To-Speech, synthèse vocale)texte → audiorequête classiquemessages vocaux, lecture d'écran, serveur vocal
Live (voix à voix, temps réel)flux audio ↔ flux audioWebSocket ouvert en continuagent vocal qui converse, avec interruptions

Un modèle généraliste comme gemini-3.5-flash comprend aussi l'audio : vous pouvez lui donner un fichier et une consigne (« résume cet appel »). La différence avec un modèle de transcription dédié est la leçon suivante.

Lister les modèles audio de votre clé

lister_modeles.py
from google import genai

client = genai.Client()  # lit GOOGLE_API_KEY dans l'environnement
for m in client.models.list():
    if any(k in m.name for k in ("tts", "transcribe", "live", "native-audio")):
        print(m.name, m.supported_actions)

Résultat obtenu

Sortie réelle (extrait) du 2026-10-15 avec notre clé d'API :

models/gemini-2.5-flash-preview-tts ['countTokens', 'generateContent']
models/gemini-2.5-pro-preview-tts ['countTokens', 'generateContent', 'batchGenerateContent']
models/gemini-3.5-transcribe ['generateContent', 'countTokens']
models/gemini-3.1-flash-tts-preview ['generateContent', 'countTokens', 'batchGenerateContent']
models/gemini-3.8-flash-tts ['generateContent', 'countTokens', 'batchGenerateContent']
models/gemini-3.8-flash-lite-tts ['generateContent', 'countTokens', 'batchGenerateContent']
models/gemini-3.5-transcribe-live ['bidiGenerateContent']
models/gemini-2.5-flash-native-audio-latest ['countTokens', 'bidiGenerateContent']
models/gemini-3.1-flash-live-preview ['bidiGenerateContent']
models/gemini-3.8-live ['bidiGenerateContent']
models/gemini-3.5-live-translate-preview ['bidiGenerateContent']

Nous retenons pour la suite : gemini-3.8-flash-tts (TTS), gemini-3.5-transcribe (STT), gemini-3.8-live (temps réel) et gemini-3.5-flash (résumé). Tous sont configurables par variable d'environnement dans .env.example.

Un modèle n'annonce que bidiGenerateContent dans supported_actions. Comment l'appelle-t-on ?

Exercice : estimer avant d'appeler

Un centre d'appels veut transcrire 400 appels par jour, d'une durée moyenne de 6 minutes. Estimez (1) le volume de tokens audio par jour, (2) la taille des fichiers si on les garde en WAV 16 kHz mono 16 bits.

Voir la solution
  1. 6 min = 360 s ; 360 × 32 = 11 520 tokens par appel ; × 400 = environ 4,6 millions de tokens audio par jour (ordre de grandeur, d'après la valeur de la documentation).
  2. À 16 kHz, 16 bits, mono : 32 000 octets par seconde ; 360 s ≈ 11,5 Mo par appel ; × 400 ≈ 4,6 Go par jour. D'où l'intérêt de compresser pour l'archivage et de fixer une durée de conservation (ce sont des données personnelles).

Multipliez ensuite par le tarif en vigueur de votre modèle, publié sur la page de tarification de l'API, pour obtenir un budget.

Je sais faire

  • Expliquer PCM, WAV, fréquence d'échantillonnage et profondeur
  • Calculer la taille d'un fichier audio et son nombre approximatif de tokens
  • Distinguer STT, TTS et Live, et savoir lequel s'appelle par WebSocket
  • Lister les modèles audio réellement disponibles pour ma clé
التالي