sprezzature-audio
Audio : sous-titres
Sous-titres, diarisation et identification de locuteurs en intelligence artificielle (IA) locale pour vidéo / audio. WebVTT / format de sous-titres SubRip (SRT) depuis un whisper.cpp local, qui-parle-quand via NeMo, qui-est-qui par embeddings ou passe sur la transcription. L'audio ne quitte pas la machine.
En cours de développement : le moteur de sous-titres se stabilise encore et les mesures de qualité sont en cours : les sous-titres sont des brouillons à relire.
Produit
- Sous-titres World Wide Web Consortium (W3C) WebVTT / SRT / texte depuis un build whisper.cpp local
- « Qui parle quand » via diarisation NVIDIA NeMo Sortformer
- « Qui est qui » via embeddings TitaNet ou une passe minée de la transcription
- VTT (format de sous-titres WebVTT) étiqueté par locuteur avec repères nommés ; EN/FR par défaut
- La même modalité lue à l’envers : une narration depuis du texte, qui arrive en WAV et en WebVTT sur une seule horloge, pour qu’une page suive la lecture phrase à phrase
- Des sous-titres traduits, par un modèle local
Audite
- Vitesse de lecture, largeur de ligne, durée et chevauchement des sous-titres, contre les seuils que publie Netflix : 17 caractères par seconde, 42 par ligne, 5/6 s au plus court, 7 s au plus long, deux lignes au maximum
- Des drapeaux et non des lois : une émission pour enfants et une conférence dense ne justifient pas les mêmes chiffres
- Biais par vocabulaire de projet sur la piste sous-titres
Dites l'une de ces phrases
La skill se déclenche sur une formulation de ce type, sans commande à mémoriser.
sous-titres
transcris cette vidéo / cet audio
WebVTT
SRT
diarisation
qui parle quand
identifie les locuteurs
traduis les sous-titres
ces sous-titres sont-ils lisibles
lis ce texte à voix haute
Bibliothèque de références
Les connaissances sur lesquelles la skill s'appuie : à lire directement dans le repo.
Questions fréquentes
Comment installer sprezzature-audio ?
Lancez pip install sprezzature-audio (Python 3.10 à 3.13) : sous-titres, diarisation, identification des locuteurs, traduction, narration et surfaces HTTP et MCP arrivent ensemble, sans option à choisir. L'installation comprend torch, mais import sprezzature_audio ne charge aucun modèle tant qu'aucune fonction qui en a besoin n'est appelée.
De quoi sprezzature-audio a-t-il besoin en plus de pip ?
sprezzature-audio demande ffmpeg et espeak-ng (pour la voix Kokoro) sur le système, ainsi que des poids de modèles, téléchargés au premier usage ou à l'avance avec sprezzature-audio-install (Whisper), sprezzature-audio-install-diarize --no-install (NeMo Sortformer et TitaNet) et sprezzature-audio-install-voice (les voix). La traduction et la passe facultative qui devine les noms veulent en plus un serveur Ollama qui sert qwen3-vl:8b. L'audit des sous-titres, la fusion des locuteurs et les mesures WER et DER se passent de tout cela.
sprezzature-audio envoie-t-il mon audio vers un service cloud ?
Non : sprezzature-audio transcrit avec whisper.cpp, repère et nomme les locuteurs avec des modèles NeMo et synthétise les voix sur votre machine, sans clé d'API. La traduction et la devinette des noms appellent le serveur Ollama désigné par --url, sur localhost par défaut, et les seuls téléchargements sont les poids des modèles.
Quelles voix et quelles langues sprezzature-audio prend-il en charge ?
sprezzature-audio narre avec trois moteurs fournis par speaker-helper : Kokoro (54 voix intégrées, en anglais, espagnol, français, hindi, italien, japonais, portugais et mandarin), Chatterbox, et OpenVoice, qui clone une voix à partir d'un court échantillon. Sans --voice, la langue est détectée dans le texte et une voix qui la parle est choisie ; une page narrée par sprezzature-publish reçoit le moteur du routeur de speaker-helper, Chatterbox hors ligne. Les sous-titres suivent les langues de Whisper, détectées si --lang est vide.
Peut-on utiliser sprezzature-audio sans Claude Code ?
Oui : sprezzature-audio est aussi une bibliothèque Python, quinze commandes derrière la porte d'entrée sprezzature-audio, une API HTTP avec image Docker et un serveur MCP, sprezzature-audio-mcp, qui sert l'API et /mcp sur un même port. L'API et les outils MCP couvrent la moitié rapide et sans modèle (conversion de sous-titres, fusion des locuteurs, WER, DER) ; transcription et narration passent par les commandes. La skill elle-même vient de pip install sprezzature puis sprezzature-skills --install.
En quoi sprezzature-audio diffère-t-il de l'API Whisper, de pyannote ou d'ElevenLabs ?
sprezzature-audio tourne en local et dans les deux sens, de la parole au texte minuté et du texte à la parole minutée, chaque fois avec un WebVTT à côté, puis audite la piste de sous-titres : vitesse de lecture, largeur, durée, chevauchement. Les services hébergés comme ElevenLabs ou l'API audio d'OpenAI facturent à l'usage et reçoivent votre audio ; pyannote n'a pas de plafond de locuteurs, alors que le checkpoint Sortformer employé ici est conçu pour quatre au plus.
Peut-on lancer sprezzature-audio en CI ?
Oui : sprezzature-audio-audit talk.vtt vérifie une piste de sous-titres contre les valeurs par défaut du Netflix Timed Text Style Guide (17 caractères par seconde, 42 par ligne, deux lignes), ne demande que la bibliothèque standard de Python, écrit du JSON avec --format json et sort en 1 au moindre constat. Transcription, diarisation et narration tournent aussi sans écran, mais elles téléchargent de gros poids de modèles : une CI audite donc les pistes plutôt qu'elle ne les produit.
sprezzature-audio est-il gratuit ?
Oui : sprezzature-audio est open source sous licence BSD 3-Clause, sans compte, sans clé d'API ni offre payante, et son code est sur GitHub. Les modèles qu'il fait tourner sont des poids ouverts téléchargés sur votre machine, chacun sous sa propre licence.