Lección 5 — Audio et vidéo

Audio : transcrire et extraire des actions

4 min de lectura

Este contenido aún no está traducido. Se muestra la versión original.

Audio : transcrire et extraire des actions

Ce que Gemini sait faire avec du son

  • Transcrire : écrire mot à mot ce qui est dit (on parle aussi de speech-to-text).
  • Résumer, traduire, répondre à des questions sur l'enregistrement.
  • Décrire des sons non vocaux (une sonnerie, de la musique).

Formats acceptés : WAV, MP3, AIFF, AAC, OGG, FLAC, M4A, Opus, WebM, entre autres. Un prompt peut contenir jusqu'à 9 h 30 d'audio ; chaque seconde coûte environ 32 tokens.

flowchart LR
  M["memo.wav (11 s)"] --> P["part_from() : inline, audio/wav"]
  P --> G["Gemini"]
  C["Consigne : transcrire + lister les actions"] --> G
  G --> T["Transcription"]
  G --> A["- action (échéance)"]
  A --> H["Vous : vérifier avant de créer les tâches"]

Le code

files/multimodal.py (extrait)
def transcrire(client, audio_path):
    r = generer(client, [part_from(client, audio_path),
                         "Transcris cet audio mot à mot en français, puis liste les actions à faire "
                         "sous la forme « - action (échéance) »."])
    return {"texte": r.text, "tokens": tokens(r)}
terminal
python multimodal.py audio memo.wav

Une seule requête fait deux choses : transcrire et structurer. C'est l'intérêt d'un modèle multimodal par rapport à un logiciel de dictée classique suivi d'un second traitement.

BesoinConsigne conseillée
Compte rendu exact« Transcris mot à mot, sans reformuler. »
Réunion à plusieurs« Indique qui parle (Intervenant 1, 2…) et l'horodatage MM:SS. »
Lecture rapide« Résume en 3 points, puis liste les décisions. »
Langue étrangère« Transcris dans la langue d'origine, puis traduis en français. »

Un enregistrement de 10 minutes représente environ combien de tokens d'entrée ?

Quelles bonnes pratiques s'appliquent à la transcription d'une réunion d'équipe ?

Exercice : sortir les actions en JSON

Plutôt qu'une liste en texte, obtenez un JSON [{"action": ..., "echeance": ..., "responsable": ...}] exploitable par un tableur. Utilisez un schéma Pydantic comme dans le module 4 (aperçu : generer(client, contents, schema=MaClasse)).

Voir la solution
from pydantic import BaseModel

class Action(BaseModel):
    action: str
    echeance: str | None
    responsable: str | None

class Memo(BaseModel):
    transcription: str
    actions: list[Action]

r = generer(client, [part_from(client, "memo.wav"),
                     "Transcris puis extrais les actions. Laisse null ce qui n'est pas dit."],
            schema=Memo)
memo = Memo.model_validate_json(r.text)
for a in memo.actions:
    print(a.action, "|", a.echeance, "|", a.responsable)

« Laisse null ce qui n'est pas dit » évite que le modèle invente un responsable.

Résultat obtenu

python multimodal.py audio memo.wav, exécution réelle du 2026-10-15 (voix de synthèse, texte fictif) :

sortie
Transcription :
« Bonjour, c'est Camille du service achats. Petit rappel pour la réunion de jeudi, il faut
valider le devis de 420 € pour les chaises et envoyer le bon de commande avant vendredi midi. Merci ! »

Actions à faire :
- Valider le devis de 420 € pour les chaises (jeudi / pour la réunion de jeudi)
- Envoyer le bon de commande (avant vendredi midi)

"tokens": {"entree": 295, "sortie": 117}

La transcription est fidèle ; « quatre cent vingt euros » est devenu « 420 € », comme annoncé.

  • Je sais envoyer un fichier audio et obtenir une transcription
  • Je sais demander, dans la même requête, une liste d'actions structurée
  • Je sais estimer le coût d'un enregistrement à partir de sa durée
  • Je connais les précautions liées aux enregistrements de voix
Siguiente