Open Origin4 opened 7 years ago
Le mieux est de créer un nouveau dossier dans stt_engines
et de t'inspirer de ce qui a été fait dans les autres dossiers.
Ensuite l'ajouter à cette ligne.
Par contre j'ai un doute sur la faisabilité, je n'ai peut-être pas compris mais j'ai regardé Kaldi récement et ça m'avait l'air d'être un outil de recherche qui ne fait pas de la reconnaissance comme nous l'utilisons mais permet de tester des outils de reconnaissance, et il faut l'entraîner avec de grosses machines et 100 à 300 échantillons différents. Est-ce j'ai mal compris ? As-tu trouvé un fichier de phonèmes ?
oui exactement , nous utilisons diffèrent corpus déjà pré établie pour l'entrainer tout les details sont ici : https://github.com/openpaas-ng/openpaas-sp5-lm-preparation par contre Kaldi ASR(pour automatic speech recognition) permet de faire de la reconnaissance http://kaldi-asr.org/doc/about.html
merci beaucoup pour votre aide je me mets au travail et je vous tien au courant
Arf, je n'avais pas vu: où peut-on trouver les corpus pré établis ? n'hésites pas à demander si tu as des questions, c'est toujours intéressant de tester un nouveau STT
merci beaucoup :-) pour les corpus il sont dispo ici : https://github.com/openpaas-ng/openpaas-sp5-lm-preparation#download-corpora normalement sur cette page il ya tous les details pour construire un modele de langage et le faire tourner sous kaldi
@Origin4 Merci pour ta question, j'ai un moment essayer d'implanter Kaldi, mais ne trouvant de corpus francophone j'avais un peu mis de côté ce projet.
Super ça. Vous avez déjà essayé de faire tourner l'apprentissage sur un corpus ? ça prend combien de temps sur quel type de machine ?
pour l'apprentissage ce n'est pas moi qui m'en occupe mais c'est vrai que ça prend beaucoup de temps même parfois des jours (les corpus sont vraiment conséquents)
aussi là je bloque sur un souci : je me suis inspiré du code pour wit pour faire le mien mais la variable Audiofile est toujours vide, je n'arrive pas a récupérer le flux audio du coup je reçois de mon stt un json avec un champ" hypothèses " vide alors que le même code marche pour les autres STT
voici mon code
_LinSTT_transcribe () {
json=`curl -T $audiofile http://localhost:8888/client/dynamic/recognize
$verbose && jv_debug "DEBUG: $json"
echo $json | perl -lne 'print $1 if m{"hypotheses" : "([^"]*)"}' > $forder}
LinSTT_STT () {
LISTEN $audiofile || return $?
_LinSTT_transcribe &
jv_spinner $!
}
voici le Fichier json
{"status": 0, "hypotheses": [{"utterance": ""}], "id": "337fab0b-ee95-451d-a126-66314cf0036b"}
le fichier json avec un test d'un fichier wav qui dit "salut"
{"status": 0, "hypotheses": [{"utterance": "salut"}], "id": "a866695a-17e2-4fd6-9a12-39c298d9e3a8"}
JARVIS fait bien appel a la fonction LinSTT qui fait aussi appel a la fonction _LinSTT_transcribe juste que le fichier Audiofile est vide a chaque fois
est ce que vous voyez d'où vien le souci ou avez-vous sinon un autre moyen pour récupérer le flux audio??
@Origin4
Plusieurs idées.
rec test.wav
est-ce que tu t'entends bien avec play test.wav
? curl -T temp.wav http://localhost:8888/client/dynamic/recognize
?jarvis -nv
?play /dev/shm/jarvis-record.wav
?curl -T /dev/shm/jarvis-record.wav http://localhost:8888/client/dynamic/recognize
echo $audiofile
dans LinSTT_STT ()
?Sinon, vu que nous sommes dans l'open-source...est-il possible d'avoir accès aux résultats de l'apprentissage ? :p
Et j'ai vu que tu as essayé de mettre les quotes `, c'est très bien mais pour faire plusieurs lignes d'un coup il suffit d'en mettre 3 à la suite, édites ton message si je ne suis pas clair, je l'ai remis en forme.
Merci beaucoup
pour rec et play ça marche sans soucis et j'ai fait un curl avec le fichier teste de wit qui dit salut
curl -/home/ravah/jarvis/stt_engines/wit/test wav "http://local host : 8888/client/dynamic/recognize"
et j'ai de bons résultats
{"status": 0, "hypothèses": [{"utterance": "salut"}], "id": "à866695 à-17e s 2-4 fd6-9à12-39c298d9e3à8"}
par contre le fichier /dev/shm/jarvis-record.wav
est complètement vide ,donc le souci viendrait-il de là ?
sinon pour les résultats de l'apprentissage, comme je suis juste stagiaire dans ma boîte "LINAGORA" je vais demander à mon responsable s'il peut les mettre à votre disposition
@Origin4 Si le fichier est vide il faut chercher par là. Que donne l'étape 6
ça serait cool si on pouvait avoir accès aux résultats de l'apprentissage, pour une boite qui prone l'open source !
Alors j'ai avance un petit peu, j'ai juste reinstaller jarvis et reefectuer les modifications pour interger kaldi et ca marche un peu mieux (est ce que c'est normale ???) il arrive à reconnaître quelques mots des fichiers qu'il reçoit, mais est-ce que c'est normal d'avoir des fichiers "tronque" , (en effet souvent il manque des bouts des phrases ,debut et fin) parce que je pense que le modèle que nous utilisons n'arrive pas détecter les mots à cause de ce souci
et l'etape 6 renvoyai le bon chemin /dev/shm/jarvis-record.wav
sinon pour les Modèles normalement il n'y a pas de soucis, j'en ai parlé avec mon responsable et il les il mettra a disposition(Docker + Modèles) des que possible , donc il vas voir comment il vas vous les transmettre
mais est-ce que c'est normal d'avoir des fichiers "tronque" , (en effet souvent il manque des bouts des phrases ,debut et fin)
Non, tu peux jouer sur les paramètres suivants dans le menu audio Min noise duration to start Min noise perc to start Min silence duration to stop Min silence level to stop
Hello, @Oliv4945 Je suis thésard à Linagora et je m'occupe de la partie STT (effectivement nos modèles sont Open :) , et sachant qu'on est sur une perspective de l'OpenSpeech, ça sera avec un grand plaisir de vous les partager, envoi moi un mail à: aheba@linagora.com), je suis actuellement à 30% de WER sur de parole conversationnel avec des corpus OPEN tel que TCOF ou ASCYNT (tu les trouveras sur le site Ortholang), d'ici Décembre 2017, on aura, je l'espère, une version stable à 20% de WER !. @Origin4 m'a informé de ses problèmes avec notre module STT et Jarvis. J'ai jetté un coup d'oeil et: Le problème vient du programme REC dans votre code Jarvis lors de l'enregistrement du fichier Audio à partir du microphone (indépendament du module STT que ce soit Microsoft ou Kaldi) (les paramètres pour la détection d'activité vocalique sont très hasardeuses et difficile à tunner... :/) Solution: Mettre en place une fonction pertinante de détection d'activité vocalique. (j'ai travaillé sur un proto que j'ai à ma disposition, la zone de parole est détecté à partir d'une analyse fréquentiel et d'energie existant dans le signal, je pourrai éventuellement vous passer le code sous Python... "cette solution est très robuste pour la détection de l'activité vocalique") Ou une solution Open qui est au top de l'état de l'art, consiste à utiliser l'outil du laboratoire LIUM "LIUM Diaritization" : http://www-lium.univ-lemans.fr/diarization/doku.php/welcome qui permet de faire +ieurs taches dont le suivi du locuteur et la segmentation de parole .... mais surtout ce qui vous intéresse : la détection de zones de parole qui est nettement plus intéréssant que l'utilisation des paramètres de REC....
@aheba Super, merci pour ces infos.
Modèles Kaldi: ça sera avec grand plaisir. Pour l'instant je n'ai pas le temps mais je reviendrais vers toi après :-)
Concernant la détection d'activité c'est effectivement loin d'être optimal, mais il faut souligner le tour de force qu' @alexylem a réussi à faire avec rec :-), du coup je vais jeter un oeil à Lium, ça m'a l'air très intéressant surtout que ça fait aussi de l'identification, fonction souvent demandée. Par contre j'ai l'impression que le projet n'a pas bougé depuis 2013, est-ce que je me trompe ?
Dans tous les cas je suis aussi intéressé par ton script Python, peut-être plus rapide à mettre en place.
Merci Oliv'
Bonjour Déjà je voudrais remercier toute l'équipe pour avoir realise cet outil vraiment bien fait depuis un moment déjà, je parcoure votre code pour essayer de le connecter à kaldi, mais n'étant pas très fort en shell j'ai du mal , donc je voudrai savoir si c'est possible et comment on peut connecter Jarvis à un autre STT autre que ceux prévue à la base
Merci beaucoup