1 points par GN⁺ 2025-07-23 | 1 commentaires | Partager sur WhatsApp
  • Avec le modèle Whisper, lorsqu’on fournit un fichier wav complètement silencieux, un phénomène se produit où il hallucine et renvoie toujours le même texte en arabe, "ترجمة نانسي قنقر" (Translation by Nancy Qunqar)
  • Si l’on génère un audio silencieux avec ffmpeg puis qu’on exécute Whisper en spécifiant l’arabe et le modèle large-v3, il produit toujours exactement le même résultat
  • Ce problème semble indiquer que le modèle Whisper a été entraîné à interpréter l’audio silencieux comme un texte particulier
  • Sur les anciens modèles (small, etc.), il était possible d’atténuer partiellement le problème en ajustant des paramètres comme suppress_tokens, l’invite initiale (initial prompt) ou logprob_threshold, mais cela fonctionne peu avec v3, en particulier large-v3
  • L’utilisation de la VAD (Voice Activity Detection) ou le filtrage préalable des segments silencieux de l’audio est proposée comme contournement

Symptôme du problème

  • Un problème a été signalé dans Whisper large-v3 : sur un audio silencieux, il hallucine toujours la phrase arabe "ترجمة نانسي قنقر"
  • Création d’un fichier wav silencieux de 30 secondes avec ffmpeg, comme ci-dessous
    ffmpeg -f lavfi -i anullsrc=r=44100\:cl=stereo -t 30 silence.wav
  • Exemple d’exécution de la commande Whisper
    whisper ./silence.wav --language Arabic --model large-v3
  • Résultat :
    \[00:00.000 --> 00:29.980] ترجمة نانسي قنقر

Cause et analyse

  • Les modèles Whisper récents comme large-v3 ont tendance, au lieu d’utiliser l’ancienne approche de description audio, à générer une sortie hallucinée arbitraire face au silence
  • Les anciens modèles (small, etc.) produisent eux aussi des sorties diverses (aléatoires) sur le silence, mais plusieurs options comme suppress_tokens, l’invite initiale (initial prompt) ou logprob_threshold permettaient d’exercer un certain contrôle
  • Avec v3, ces méthodes fonctionnent mal, et un résultat hallucinatoire fixe apparaît

Contournements et solutions proposées

  • Appliquer la VAD (Voice Activity Detection) : ne faire passer dans Whisper que les segments où une vraie voix est présente, et ne pas lui fournir le silence
  • Ajuster des paramètres comme suppress_tokens, l’invite initiale (initial prompt) ou logprob_threshold : utile sur certains modèles, mais effet minime sur large-v3
  • Pour les audios totalement silencieux ou à signal faible, un post-traitement par une autre méthode que Whisper est nécessaire

Autres discussions

  • Une discussion supplémentaire a eu lieu sur l’existence éventuelle d’un meilleur modèle que large-v3 pour l’arabe, mais aucune alternative claire n’a été proposée

1 commentaires

 
GN⁺ 2025-07-23
Commentaire Hacker News
  • en transcrivant de l’audio chinois avec whisper-large-v3, j’ai souvent constaté que les passages silencieux étaient rendus par des phrases absurdes comme « merci de liker, partager et mettre en favoris », ce qui me fait soupçonner que le modèle a été entraîné sur des données récupérées aléatoirement depuis YouTube sans sélection rigoureuse des contenus utiles

    • dans les transcriptions en chinois, j’ai aussi souvent vu s’ajouter des formules du type « sous-titres à des fins de recherche/d’apprentissage. Merci de les supprimer après 48 heures. », qui sont des clauses de non-responsabilité que des bénévoles ajoutent aux sous-titres de films ou de séries (piratés)
    • même avec d’autres modèles, je constate régulièrement que les silences sont transformés en « Merci de votre écoute ! » ou « [MUSIC] », etc. C’est dommage que ce type d’erreur n’ait pas été éliminé lors de la QA et qu’on le retrouve dans divers modèles de transcription, alors que la présence de passages silencieux dans un audio est une situation extrêmement courante
    • quand j’ai testé whisper, j’ai eu l’impression qu’il n’était pas très performant sur des vidéos filmées pour YouTube ou au téléphone, probablement parce que l’essentiel des données d’entraînement est constitué de sous-titres ou de scripts. Les vidéos que j’ai essayées étaient en chinois (mandarin) et, avec whisper-large-v3, j’ai obtenu les incompréhensions typiques et des résultats dénués de sens, mais malgré cela il restait assez supérieur à d’autres logiciels. En revanche, il inventait parfois des noms d’intervenants ou les ajoutait en tête des répliques, alternait de façon intermittente entre simplifié et traditionnel, répétait la dernière phrase pendant les silences ou insérait parfois en anglais un texte ressemblant à des indications de mise en scène. Je n’ai pas vu de sous-titres ni de générique de fin, mais dans une vidéo où l’orateur reniflait parce qu’il était enrhumé, whisper a transcrit cela comme des pleurs (« * crying * »), et une toux a été traduite par « * door closing * ». La ligne suivante a même été transcrite de manière assez agressive. En supprimant la partie avec les reniflements, la transcription aberrante a disparu, mais cette fois il est repassé en traditionnel
    • ça donne la même impression que « si on met un jean dans une calculatrice, est-ce qu’on obtiendra une bonne réponse ? »
    • quand YouTube a commencé à créer sa fonction de génération automatique de sous-titres, il marquait systématiquement les bruits ou la musique — surtout les sons industriels, par exemple — comme « [foreign] ». Pendant longtemps, les sons incompris ont été traités comme du « foreign »
  • les LLM présentent pareillement un cas classique d’« overfitting » sur des données ambiguës, un peu comme lorsqu’on obtient en sortie la traduction brute d’un message d’absence du bureau ; voir aussi cet article https://www.theguardian.com/theguardian/2008/nov/01/5

    • je me demande si c’est vraiment de l’overfitting, ou plutôt un problème de qualité ou de catégorisation des données
  • pour faire gagner du temps à ceux qui cherchent : l’arabe « رجمة نانسي قنقر » signifie « traduction de Nancy Qanqar » ou « traduit par Nancy Qanqar » ; « رجمة » veut dire traduction et « نانسي قنقر » est un nom

    • en tchèque, whisper transcrit souvent les silences par « Titulky vytvořil JohnyX » (sous-titres réalisés par JohnyX), pour une raison similaire
    • on signale que l’orthographe est incorrecte : ce n’est pas « رجمة » mais « ترجمة », avec un ت au début, qui est la bonne forme pour traduction
    • la cause de ces transcriptions est que les données d’entraînement proviennent en grande partie de sous-titres non officiels de films, où l’on trouve souvent à la fin des mentions du type « traduit par XXX » ; à ce moment-là, les sous-titres sont affichés à l’écran alors que la bande-son est silencieuse
  • Whisper hallucine tellement qu’il est inutilisable ; cela a été documenté à de nombreuses reprises. Supprimer les silences de l’audio réduit un peu le problème, mais il y a aussi des questions de correction grammaticale automatique, par exemple dans la traduction de parole bilingue. Les modèles audio les plus récents se sont améliorés, mais le problème n’est pas complètement résolu https://news.ycombinator.com/item?id=43427376

    • personnellement, je ne dirais pas qu’il est « inutilisable » ; l’essentiel est plutôt de bien comprendre les limites de Whisper et de trouver des contournements. J’ai construit un business au-dessus de Whisper, et l’introduction très tôt d’un modèle de détection d’activité vocale (VAD) a été déterminante pour réduire les hallucinations ; voir https://speechischeap.com
    • le problème se pose quand on n’utilise que le grand modèle ; il faut toujours le combiner avec un petit modèle satellite ou avec de la logique. Les hallucinations se détectent facilement avec des modèles ML/DL classiques : dans un passage silencieux, il ne devrait pas y avoir de texte, et il est facile d’écrire le code qui le vérifie
    • la correction grammaticale automatique est aussi fréquente dans les sous-titres ordinaires ; voir la vidéo « Pourquoi les sous-titres diffèrent-ils du doublage ? » https://youtu.be/pU9sHwNKc2c
  • même dans la version anglaise de Whisper, quand on lui fait traiter du silence, on voit souvent apparaître « [ sub by sk cn2 ] », « Merci d’avoir regardé ! N’oubliez pas de vous abonner et de liker ! Salut ! » ou encore « Cette vidéo est terminée. Merci de votre visionnage. Si cela vous a été utile, merci de vous abonner à la chaîne. »

    • la raison est que le modèle a été entraîné sur des médias piratés ou des vidéos YouTube. C’est une méthode efficace, mais elle comporte des risques de contrôle qualité insuffisant ou de problèmes de droits d’auteur
  • en russe, on voit aussi souvent apparaître à la fin l’hallucination « Субтитры сделал DimaTorzok » (sous-titres réalisés par DimaTorzok). Je me suis demandé s’il y avait vraiment beaucoup de sous-titres contenant cette mention et j’ai cherché sur YouTube, mais ça n’a pas l’air si fréquent

  • lorsque les 30 premières secondes d’un appel enregistré ne contiennent qu’une sonnerie ou du DTMF — ce qui arrive presque toujours lorsqu’on appelle une entreprise — Whisper choisit souvent à tort le nynorsk ou le gallois comme langue. Je n’ai pas vérifié quel texte est alors transcrit, mais j’imagine qu’il est tout aussi farfelu. Ce n’est pas un problème pratique pour moi, mais cela peut être assez gênant pour un centre d’appels bilingue, par exemple

  • à propos de la question « Qui est Nicolai Winther ? » : https://medium.com/@lehandreassen/who-is-nicolai-winther-985409568201

    • quelqu’un y a laissé cette phrase : « À l’avenir, chacun aura ses 15 minutes de célébrité au sein de sa micro-niche techno-linguistique, à l’ère de la déferlante IA »
  • certains soutiennent qu’il faudrait renommer le titre en « OpenAI, preuve d’un entraînement sur des films piratés »

    • évidemment : avec assez d’argent, même l’entraînement sur du contenu illégal devient légal
    • je me demande si cela peut vraiment être considéré comme une preuve ; le fait d’utiliser des contenus sous droits déjà autorisés au départ, issus de communautés de sous-titrage en ligne ou de DVD, me semble déjà être une réalité connue dans l’industrie. On sait déjà que l’entraînement des modèles d’IA utilise divers matériaux protégés par le droit d’auteur
    • Hacker News est très strict sur les modifications subjectives des titres ; même si quelque chose semble factuellement incontestable, renommer un article comme ça le ferait signaler immédiatement
  • certains plaisantent en disant que « Nancy Qunqar a peut-être vraiment tout transcrit à la main », avec des encouragements du style « Courage Nancy ! Continue comme ça ! »

    • je me demande si ce message n’est pas du spam ; ce nom n’apparaît que sur Instagram et dans ce fil, alors je me demande si ce n’est pas une nouvelle méthode de spam pour gagner des abonnés Instagram