STT léger de reconnaisance vocale
Posted: Tue Jun 24, 2025 2:05 pm
Excellente question. Si je devais créer un système STT léger, rapide et utilisable en grand public pour Oravox, sans dépendre d’un modèle de 50 Mo à charger, voici la stratégie optimale que je recommanderais :

Stratégie Hybride Ultra-Légère pour Oravox
Objectif :
Reconnaître des phrases courtes ou mots-clés (comme "sauver", "fuir", "continuer") avec :
latence faible
pas de téléchargement lourd
fonctionnement immédiat même sur smartphone
COMBINAISON OPTIMALE :
1. Reconnaissance ultra-légère locale
Utiliser Picovoice Porcupine ou Speechly en WebAssembly :
reconnaît quelques mots-clés en <1 Mo
fonctionne sans modèle vocal externe
compatible Firefox
Exemples d'utilisation :
js
Copier
Modifier
// déclenche "sauver", "fuir", "oui", "non"
porcupine.start();
https://picovoice.ai/platform/web/
2. Fallback cloud (si nécessaire)
Quand tu veux plus de liberté vocale (phrases libres) :
Utiliser Whisper API, AssemblyAI, ou ton propre serveur avec Vosk Python
Ce n'est appelé que si besoin (ex : mode "reconnaissance libre")
Avantage : tu ne payes que si c’est utilisé, et tu ne charges rien côté client.
3. Structure JSON pré-déclarée
Chaque scène Oravox contient les choix attendus à l’avance :
json
Copier
Modifier
{
"segment": "Choix1",
"expected": ["sauver", "fuir"],
"offlineRecognition": true
}
Et ton moteur sait quoi écouter sans tout comprendre.
4. Côté technique : architecture recommandée
plaintext
Copier
Modifier
[index.html]
├─ vosk.js (optionnel, lourd)
├─ porcupine.wasm (léger, mots-clés)
├─ app.js (écoute micro, logique JSON)
├─ optional STT cloud fallback (Whisper)
BONUS : “Speech Simulation”
Pour aller plus vite :
Tu fais une détection du volume + temps de parole
Quand l’utilisateur parle, tu affiches : "Interprété comme : « fuir » ?" (avec UI de validation)
Aucun STT réel utilisé
Synthèse : Ce que je ferais pour alléger à fond :
Action Outil / Technique Gain
Remplacer Vosk Picovoice ou Speechly -90 % poids
Modèle à mots-clés Max 1 Mo à charger Instantané
Option cloud STT Fallback API (Whisper/AssemblyAI) Flexible
JSON “à reconnaissance limitée” Oravox côté structure Pas besoin de tout comprendre
IndexedDB + cache Pour modèle s’il est lourd Ne charge qu’une fois
Souhaites-tu que je t’envoie un prototype minimal basé sur Picovoice + structure Oravox JSON + fallback ?
Ou bien une démo prête à intégrer dans ton Docker ?
Reconnaître des phrases courtes ou mots-clés (comme "sauver", "fuir", "continuer") avec :
latence faible
pas de téléchargement lourd
fonctionnement immédiat même sur smartphone
Utiliser Picovoice Porcupine ou Speechly en WebAssembly :
reconnaît quelques mots-clés en <1 Mo
fonctionne sans modèle vocal externe
compatible Firefox
js
Copier
Modifier
// déclenche "sauver", "fuir", "oui", "non"
porcupine.start();
Quand tu veux plus de liberté vocale (phrases libres) :
Utiliser Whisper API, AssemblyAI, ou ton propre serveur avec Vosk Python
Ce n'est appelé que si besoin (ex : mode "reconnaissance libre")
Chaque scène Oravox contient les choix attendus à l’avance :
json
Copier
Modifier
{
"segment": "Choix1",
"expected": ["sauver", "fuir"],
"offlineRecognition": true
}
Et ton moteur sait quoi écouter sans tout comprendre.
plaintext
Copier
Modifier
[index.html]
├─ vosk.js (optionnel, lourd)
├─ porcupine.wasm (léger, mots-clés)
├─ app.js (écoute micro, logique JSON)
├─ optional STT cloud fallback (Whisper)
Pour aller plus vite :
Tu fais une détection du volume + temps de parole
Quand l’utilisateur parle, tu affiches : "Interprété comme : « fuir » ?" (avec UI de validation)
Aucun STT réel utilisé
Action Outil / Technique Gain
Souhaites-tu que je t’envoie un prototype minimal basé sur Picovoice + structure Oravox JSON + fallback ?
Ou bien une démo prête à intégrer dans ton Docker ?