transcribe

Transcrire des fichiers audio en texte avec diarisation facultative et indices de locuteurs connus. À utiliser lorsqu'un utilisateur demande de transcrire un discours à partir d'audio/vidéo, d'extraire du texte à partir d'enregistrements ou d'étiqueter des locuteurs dans des interviews ou des réunions.

npx skills add https://github.com/openai/skills --skill transcribe

Audio Transcribe

Transcrire l'audio en utilisant OpenAI, avec diarisation de locuteur optionnelle sur demande. Préférer le CLI fourni pour des exécutions déterministes et reproductibles.

Workflow

  1. Collecter les entrées : chemin(s) du fichier audio, format de réponse souhaité (text/json/diarized_json), indice de langue optionnel, et références de locuteurs connues le cas échéant.
  2. Vérifier que OPENAI_API_KEY est défini. S'il manque, demander à l'utilisateur de le définir localement (ne pas lui demander de coller la clé).
  3. Exécuter le CLI transcribe_diarize.py fourni avec des valeurs par défaut sensées (transcription textuelle rapide).
  4. Valider la sortie : qualité de la transcription, étiquettes de locuteur, et limites de segment ; itérer avec une seule modification ciblée si nécessaire.
  5. Enregistrer les sorties sous output/transcribe/ lors de travail dans ce dépôt.

Règles de décision

  • Utiliser par défaut gpt-4o-mini-transcribe avec --response-format text pour une transcription rapide.
  • Si l'utilisateur souhaite des étiquettes de locuteur ou une diarisation, utiliser --model gpt-4o-transcribe-diarize --response-format diarized_json.
  • Si l'audio dure plus de ~30 secondes, conserver --chunking-strategy auto.
  • L'incitation (prompting) n'est pas supportée pour gpt-4o-transcribe-diarize.

Conventions de sortie

  • Utiliser output/transcribe/<job-id>/ pour les exécutions d'évaluation.
  • Utiliser --out-dir pour plusieurs fichiers afin d'éviter les écrasements.

Dépendances (installer si manquantes)

Préférer uv pour la gestion des dépendances.

uv pip install openai

Si uv n'est pas disponible :

python3 -m pip install openai

Environnement

  • OPENAI_API_KEY doit être défini pour les appels API en direct.
  • Si la clé manque, instruire l'utilisateur à en créer une dans l'interface OpenAI platform et l'exporter dans son shell.
  • Ne jamais demander à l'utilisateur de coller la clé complète dans le chat.

Chemin des compétences (à définir une fois)

export CODEX_HOME="${CODEX_HOME:-$HOME/.codex}"
export TRANSCRIBE_CLI="$CODEX_HOME/skills/transcribe/scripts/transcribe_diarize.py"

Les compétences à portée d'utilisateur s'installent sous $CODEX_HOME/skills (par défaut : ~/.codex/skills).

Démarrage rapide CLI

Fichier unique (texte rapide par défaut) :

python3 "$TRANSCRIBE_CLI" \
  path/to/audio.wav \
  --out transcript.txt

Diarisation avec locuteurs connus (jusqu'à 4) :

python3 "$TRANSCRIBE_CLI" \
  meeting.m4a \
  --model gpt-4o-transcribe-diarize \
  --known-speaker "Alice=refs/alice.wav" \
  --known-speaker "Bob=refs/bob.wav" \
  --response-format diarized_json \
  --out-dir output/transcribe/meeting

Sortie texte brut (explicite) :

python3 "$TRANSCRIBE_CLI" \
  interview.mp3 \
  --response-format text \
  --out interview.txt

Carte de référence

  • references/api.md : formats supportés, limites, formats de réponse, et notes sur les locuteurs connus.