OpenAI Whisper

Création du script

Nouveau fichier que l’on nomme : transcribe.py

from faster_whisper import WhisperModel
import sys
import subprocess
import os

if len(sys.argv) < 2:
    print("Usage: python transcribe.py audio.ogg [modèle]")
    print("Modèles possibles: tiny, base, small, medium, large-v3")
    sys.exit(1)

audio_file = sys.argv[1]
model_size = sys.argv[2] if len(sys.argv) > 2 else "medium"

# Chargement du modèle
model = WhisperModel(model_size, device="cpu", compute_type="int8")

print(f"Transcription de {audio_file} avec le modèle {model_size}...")

segments, info = model.transcribe(audio_file, language="fr", beam_size=5)

print(f"\\nLangue détectée : {info.language} (probabilité : {info.language_probability:.2f})")
print("\\nTranscription :\\n")

full_text = ""
for segment in segments:
    timestamp = f"[{segment.start:.2f}s → {segment.end:.2f}s] "
    text_line = timestamp + segment.text
    print(text_line)
    full_text += text_line + "\\n"

# Copie dans le presse-papiers (pratique pour coller directement)
subprocess.run(["pbcopy"], input=full_text.encode("utf-8"))

# Écrit un fichier .txt à côté de l'audio original
base_name = os.path.splitext(audio_file)[0]
output_txt = base_name + "_medium_transcription.txt"
with open(output_txt, "w", encoding="utf-8") as f:
    f.write(full_text)

# Notification macOS
subprocess.run([
    "osascript", "-e",
    f'display notification "Transcription terminée et copiée dans le presse-papiers !" with title "Transcription audio"'
])

# Optionnel : ouvre le fichier .txt automatiquement
# subprocess.run(["open", output_txt])

Création du raccourcis avec Automator

  1. Ouvre Automator (Spotlight → Automator).

  2. Nouveau document → Action rapide (Quick Action).

  3. En haut de la fenêtre :

  4. Dans la barre latérale gauche, cherche "Exécuter un script shell" → glisse-le dans la zone droite.

  5. Configure l’action :

  6. Colle ce code dans la zone du script :

    Zsh

    conda_path="/Users/plume/miniforge3/bin/conda"  # Change si ton chemin Miniforge est différent
    env_name="whisper"
    script_path="/Users/plume/Documents/outils/transcribe.py"  # Chemin exact de ton script
    model="small"  # Modèle par défaut (rapide pour WhatsApp)
    
    for file in "$@"
    do
        "$conda_path" run -n "$env_name" python "$script_path" "$file" "$model"
    done
    

    → Ça utilise conda run (parfait pour les scripts non-interactifs, pas besoin d’activer manuellement).

  7. Fichier → Enregistrer → nomme-la "Transcrire audio" (ou ce que tu veux).