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])
Ouvre Automator (Spotlight → Automator).
Nouveau document → Action rapide (Quick Action).
En haut de la fenêtre :
Dans la barre latérale gauche, cherche "Exécuter un script shell" → glisse-le dans la zone droite.
Configure l’action :
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).
Fichier → Enregistrer → nomme-la "Transcrire audio" (ou ce que tu veux).