ElevenLabs Speech-to-Text
Skill officiel ElevenLabs pour la transcription parole-texte.
Convertissez l'audio en texte avec une précision de pointe. Supporte 90+ langues, la diarisation des locuteurs et le streaming en temps réel.
Prérequis
- ffmpeg installé (
brew install ffmpegsur macOS) - Variable d'environnement ELEVENLABS_API_KEY définie
- Python 3.8+ (les dépendances s'installent automatiquement au premier lancement)
Utilisation
{baseDir}/scripts/transcribe.sh <audio_file> [options]
{baseDir}/scripts/transcribe.sh --url <stream_url> [options]
{baseDir}/scripts/transcribe.sh --mic [options]
Exemples
Transcription par lot
Transcrire un fichier audio local :
{baseDir}/scripts/transcribe.sh recording.mp3
Avec identification des locuteurs :
{baseDir}/scripts/transcribe.sh meeting.mp3 --diarize
Obtenir la réponse JSON complète avec horodatages :
{baseDir}/scripts/transcribe.sh interview.wav --diarize --json
Streaming en temps réel
Streamer depuis une URL (ex. radio en direct, podcast) :
{baseDir}/scripts/transcribe.sh --url https://npr-ice.streamguys1.com/live.mp3
Transcrire depuis le microphone :
{baseDir}/scripts/transcribe.sh --mic
Streamer un fichier local en temps réel (utile pour les tests) :
{baseDir}/scripts/transcribe.sh audio.mp3 --realtime
Mode silencieux pour les agents
Supprimer les messages d'état sur stderr :
{baseDir}/scripts/transcribe.sh --mic --quiet
Options
| Option | Description |
|---|---|
--diarize |
Identifier les différents locuteurs dans l'audio |
--lang CODE |
Indice de langue ISO (ex. en, pt, es, fr) |
--json |
Sortie JSON complète avec horodatages et métadonnées |
--events |
Étiqueter les événements audio (rires, musique, applaudissements) |
--realtime |
Streamer le fichier local au lieu d'un traitement par lot |
--partials |
Afficher les transcriptions intermédiaires en mode temps réel |
-q, --quiet |
Supprimer les messages d'état (recommandé pour les agents) |
Format de sortie
Mode texte (par défaut)
Transcription en texte brut :
The quick brown fox jumps over the lazy dog.
Mode JSON (--json)
{
"text": "The quick brown fox jumps over the lazy dog.",
"language_code": "eng",
"language_probability": 0.98,
"words": [
{"text": "The", "start": 0.0, "end": 0.15, "type": "word", "speaker_id": "speaker_0"}
]
}
Mode temps réel
Les transcriptions finales s'impriment au fur et à mesure. Avec --partials :
[partial] The quick
[partial] The quick brown fox
The quick brown fox jumps over the lazy dog.
Formats supportés
Audio : MP3, WAV, M4A, FLAC, OGG, WebM, AAC, AIFF, Opus Vidéo : MP4, AVI, MKV, MOV, WMV, FLV, WebM, MPEG, 3GPP
Limites : Jusqu'à 3 Go de taille fichier, 10 heures de durée
Gestion des erreurs
Le script se termine avec un statut non-zéro en cas d'erreur :
- Clé API manquante : Définir la variable d'environnement
ELEVENLABS_API_KEY - Fichier non trouvé : Vérifier que le chemin du fichier existe
- ffmpeg manquant : Installer via votre gestionnaire de paquets
- Erreurs API : Vérifier la validité de la clé API et les limites de taux
Quand utiliser chaque mode
| Scénario | Commande |
|---|---|
| Transcrire un enregistrement | ./transcribe.sh file.mp3 |
| Réunion avec plusieurs locuteurs | ./transcribe.sh meeting.mp3 --diarize |
| Stream radio en direct/podcast | ./transcribe.sh --url <url> |
| Entrée vocale de l'utilisateur | ./transcribe.sh --mic --quiet |
| Besoin d'horodatages au mot | ./transcribe.sh file.mp3 --json |