+24
−0
+158
−0
+90
−0
+417
−0
File changed.
Preview size limit exceeded, changes collapsed.
Loading
Les réunions s'enregistraient sans se transcrire. Elles se transcrivent
maintenant, si l'exploitant a branché un moteur — et le moteur est à lui.
Kastell ne transcrit rien lui-même et ne veut pas savoir comment. Il parle
« /v1/audio/transcriptions », le dialecte que servent déjà whisper.cpp,
faster-whisper et les enveloppes autour de Parakeet. Changer de modèle est
une variable, pas une recompilation : une cellule qui travaille en breton
et une autre en anglais n'ont pas le même besoin, et ce n'est pas à
l'éditeur d'arbitrer. Sans moteur, l'enregistrement est marqué « non
transcrite » et le produit le dit.
Une piste audio par participant, et non le composite. Le composite mélange
les voix : transcrit, il donne un mur de texte sans locuteurs. Or « qui a
dit quoi » est ce qu'on relit six mois plus tard pour comprendre une
décision. Le serveur média enregistre chaque personne à part, le nom vient
de la participation, et aucun modèle de diarisation n'a l'occasion de se
tromper sur qui a demandé d'isoler le réseau. Qui arrive en cours
d'enregistrement reçoit sa piste aussi — c'est souvent le renfort qu'on
avait appelé pour trancher.
Le verbatim n'entre PAS au journal, et c'est la décision qui structure tout
le reste. Le journal est scellé ; une transcription doit disparaître avec
l'enregistrement dont elle sort. Y écrire le texte le rendrait
indestructible, et supprimer la vidéo en gardant les paroles serait pire
que ne rien supprimer. Le journal retient donc qu'elle a existé, par quel
moteur, combien de passages. Une seule entrée de main courante l'annonce —
et rappelle qu'elle ne fait pas foi.
Ce que j'ai vérifié plutôt que supposé
Le contrat, contre un vrai serveur : image tirée, modèle installé, une
phrase française de synthèse transcrite mot pour mot, langue détectée
« fr », segments horodatés. Environ deux fois le temps réel sur CPU avec
le modèle « small ». La forme JSON est bien celle que l'adaptateur lit.
Le reste, contre un serveur factice écrit dans la suite — même parti que
la boîte SMTP : pour savoir ce qu'un adaptateur envoie, il faut le lire
là où un vrai serveur le lirait. Il atteste qu'on réclame « verbose_json »
et non le texte nu ; sans horodatage, plus de saut dans la vidéo et plus
de recousage entre les voix.
Vingt garanties neuves, éprouvées en cassant chacune : le tri
chronologique retiré rend « 12000,4000,20000 » ; la suppression désarmée
laisse trois segments ; le format court se voit ; et recopier le verbatim
en main courante — le geste bien intentionné, celui qu'on ferait « pour la
traçabilité » — fait tomber le contrôle de fuite. Ce dernier ne regardait
d'abord que les événements de transcription et aurait laissé passer
exactement ce cas ; il regarde désormais tout le journal.
Deux défauts trouvés en éprouvant. La relance ne reprenait que les échecs,
si bien qu'elle était muette sur une transcription réussie — et le contrôle
qui croyait l'éprouver recomptait les anciens segments. Et le contrôle
« le relais ne monte aucun volume » s'ancrait sur « volumes:\n base: » :
ajouter un volume avant faisait accuser le relais d'un tort qui n'était pas
le sien.
1204 garanties.
Ce que je n'ai pas éprouvé : un vrai appel à plusieurs voix de bout en
bout. Il faudrait deux participants qui parlent, ce que je ne sais pas
produire ici. La mécanique des pistes est vérifiée contre l'adaptateur
d'essai ; leur production par le vrai serveur média ne l'est pas.
Co-Authored-By:
Claude Opus 5 <noreply@anthropic.com>
File changed.
Preview size limit exceeded, changes collapsed.