Reconnaissance vocale avec Whisper

Bonjour,

J’ai été inscrit sur ce forum sous le pseudo “peterpan31” mais suite à
des piratages de mes adresses j’ai fait le choix d’acheter mon propre
nom de domaine et j’écris désormais sous le pseudo “estrem”.

J’ai découvert le projet Whisper pour réaliser de la reconnaissance
vocale vers texte :

)Je suppose que le projet dessus correspond à du binaire (codage en c++).

On trouve sa version Python pour faire de la transcription “temps réel”
pâr exemple ici :

Le sujet est passionnant, à fortiori pour moi puisque étant déficient
visuel je fais quelques développements pour cette communauté.

Connaissiez-vous, avez-vous pratiqué , car de mon côté je rencontre des
erreurs.

Cordialement

Bonjour,

J’ai surtout utilisé whisper a la ligne de commande en installant ffmpeg et ensuite pip install openai-whisper - ca donne acces au cli whisper et au lib python

hello!

Oui, j’ai pratiqué! J’ai crée ceci: fast-openai-like-transcription-server/cli at main · nillebco/fast-openai-like-transcription-server · GitHub

Disclaimer: c’est optimisé pour un macbook Mx.

Si tu veux un exemple minimaliste de comment exposer un serveur minimaliste en python, tu pourrais prendre ceci en considération

1 « J'aime »

Bonjour à tous,

Merci à chacun pour vos contribution.

Le code que tu soumets pour ton Mac est hors de mes compétences.

Je sais faire en ligne de commande en passant le wav déjà créé, solution
directe et simple.

Par contre j’échoue à passer les “chunks” à la volée lus depuis l’objet
sounddevice.InData (solution avec les threads).

J’ai un doute : une solution en Python voix vers texte se fait-elle
quasiment “en temps réel” ?

Je creuse.

Pierre Estrem

Tout dépend de deux facteurs:

  • ton hardware
  • le modèle choisi

Le modèle (ansi que le langage) influence la qualité (ie. les mots reconnus).

Si tu as déjà testé la version en ligne de commandes tu as une idée de combien la solution pourrait être rapide (combien dure ton wav vs combien de temps il lui faut pour le convertir). Le overhead python est infinitesimale (ie. négligeable).

Attention parce que le traitement de chunks (ie. real time) comporte davantage de difficultés (long combien seront les chunks? si trop courts, le modèle aura du mal à reconnaître les phonèmes et donc les tokens).

Données expérimentales à la louche, afin de te donner un ordre d’idées (le sample dure 12 secondes).

Performances achieved: under 400ms transcription for the given sample.webm (using ffmpeg as transcoder and Apple Neural Engine optimized whisper.cpp) - compared to 2.2seconds elapsed on cpu-only whisper.cpp (medium); perfect transcription starting with the small model.

Medium est un modèle gros (par défaut tu utilises celui au dessous de small).
Pour mes tests (avec mon accent franchouillard italien en parlant anglais) le modèle small était suffisant à tout translitterate correctement.

Potentiellement ce projet te montre comment faire ce que tu veux

Bonjour à tous,

Merci à chacun pour vos contribution.

Le code que tu soumets pour ton Mac est hors de mes compétences.

Je sais faire en ligne de commande en passant le wav déjà créé, solution
directe et simple.

Par contre j’échoue à passer les “chunks” à la volée lus depuis l’objet
sounddevice.InData (solution avec les threads).

J’ai un doute : une solution en Python voix vers texte se fait-elle
quasiment “en temps réel” ?

Je creuse.

Pierre Estrem