Un petit « tempêtage » de tête ?

Étant donné le nombre de questions à ce sujet dans les commentaires, je me disais qu’il pourrait être intéressant de profiter de la cohorte d’experts que j’ai la chance de compter dans mes lecteurs pour faire un ptit ‘tempetage de tête’ (ou brainstorming si vous y tenez) à propos des solutions de reconnaissance/synthèse vocales existantes et applicables dans un projet informatique
(entre autres, yana).

Ça devrait tout du moins me permettre de centraliser un peu mes recherches et constats concernant cette techno encore peu accessible aux gueux que nous sommes malgré les stupéfiants (mais réservés) progrès de google, apple et microsoft en la matière.

Voilà mon « état de l’art » sur le sujet (oui, je me la joue académique cette semaine)

Besoin

J’ai besoin d’une librairie de reconnaissance et de synthèse vocale intégrable dans une solution domotique (yana)
Cette librairie doit être :

1 – Portable sur 3 minimum : debian (raspbian), windows, macOs
2 – Illimitée en nombre de requêtes, permettre l’écoute/la parole continue
3 – Si possible ne pas nécessiter le web
4 – Être gratuite ou low cost avec un cout ponctuel et non cyclique
5 – Être performante en terme de compréhension de la phrase énoncée, même sur un micro non spécialisé
6 – Ne pas être limitée en termes, en mots, en nombres d’expressions, ne pas être dépendant d’un fichier de phrases « statiques »
7 – Prendre en charge la langue française

Reconnaissance vocale

Voyons ce qui existe aujourd’hui :

  • Windows speech recognition API : Remplis tous les points sauf le n°1 (disponible sous windows vista et supérieure uniquement), sans ça se serait la solution parfaite
  • Google speech API : Remplis tous les points sauf le 2 (il faut une clé, c’est limité a 50 requêtes par jours) et le 3 (api passant par le web)
  • Sphinx/PocketSphinx : Ne remplis pas le n°6 : utilise un système de modèle acoustique, laborieux, lourd, statique. Il en existe un en français mais limité a 10/20 mots non pertinents.
  • Julius : Non testé
  • Simon : Non testé
  • SIRI api : ne remplis pas les point n°4 et n°3, j’ignore si il existe une limite de requetes quotidienne.
  • Arduino Easyvr : ne remplis pas les point 6 et 1 : llimité en nombres de mots et installable sur arduino uniquement.
  • Android speech : Respecte toutes les conditions sauf la n°1 : dispo uniquement sous android
  • Voce (voce.sourceforge.net) : utilise pocketshpinx /sphinx, donc même problème question francophonie et dynamisme des phrases
  • API Wit : https://wit.ai/, fonctionne très bien, bonne pertinence, même pour le français, mais api htp hyper lente (environ 7secondes de retour pour une phrase courte)

Pour répondre direct à la question qui revient régulièrement dans les commentaires :

Non, jasper.io (et aussi LISA) n’est pas une solution de reconnaissance vocale mais un simple CMS qui utilise PocketSphinx et donc qui est inapplicable dans notre système domotique a moins de parler couramment anglais (avec la bonne intonation sinon c’est mort) à votre maison.

Le plus gros HIC étant que même en combinant les librairies, on n’arrive pas à quelque chose de concluant dans le monde linux.

Synthèse vocale

De ce côté là c’est déjà plus simple bien que pas encore parfait:

  • Google speech : en bricolant un peu on arrive a obtenir la jolie voix de google en synthèse vocale, mais on est jamais certains que google verrouille pas ce service sous peu.
  • Espeak : Respecte toutes les conditions mais à une voix de canard éraillé très vites agaçante
  • Windows text to speec API : Respecte toutes les conditions sauf la n°1 : dispo uniquement sous windows
  • Voxygen : Voix magnifiques ultra réalistes, mais visiblement pas d’api/libs à disposition des simples mortels, même en payant.
  • Android speech : Respecte toutes les conditions sauf la n°1 : dispo uniquement sous androïde

Pour la synthèse je suis actuellement partis sur le combo suivant pour yana4All :

Si l’OS est windows, on prend l’api windows (locale, performante, dynamqieu etc…) sinon…
On utilise l’api google speech dans le cas ou l’on a bien internet, sinon…
On utilise espeak qui est moche mais qui a le mérite de fonctionner gratuitement partout et en restant locale.

Cette parti est déjà implémentée à yana4All.

Méthodes alternatives

– Trouver une machine pouvant faire tourner Windows a bas coût (à trouver):
Microsoft Sharks Cove à l’air de faire tourner du windows 8.1, mais elle coute dans les 300$
hummingboard, bananapi,ne semblent pas pouvoir faire tourner windows
beaglebones dispose visiblement d’un « Windows Embedded BSP » mais j’ignore si ça    embarque ce qu’il faut pour de la reco
– La MinnowBoard MAX semble aussi pouvoir faire tourner Windows mais 178€, 81€ pour l’entré de gamme qui a l’air violemment bridée

– Installer android sur le pi ou trouver une machine low cost capable de faire tourner au minimum android 4.2 (reco locale) et déporter yana sur ce système pour bénéficier du nouveau sdk local d’android pour la reconnaissance (Si android tourne bien sur le pi SI on peux y placer la version qui embarque le sdk locale de reco/synthèse et SI on peux bien gérer les gpio et autres prérequis de yana) :
– UGOOS UM2 à l’air adaptée mais 75€ quand même ça pique un peu…

– Trouver un webservice gratuit fiable et rapide (la belle utopie)

– Utiliser une interface gestuelle plutôt que vocale (kinects, leapmotion, thalmic myo etc…)

– Trouver un moyen de faire fonctionner windows speech ou dragon naturally speaking sur linux via wine ou wineHQ

Ajout de jerome : Enregistrer les phrases a reconnaître et faire une comparaison entre deux fichiers mp3 (la phrase a reconnaître et la phrase énoncée) (cf : http://en.wikipedia.org/wiki/Acoustic_fingerprint pour la comparaison par empreintes acoustiques)

– Ajout de YannXplorer: Acheter un carte Udoo (84€) qui permet d’installer android 4.3 avec la reco vocale locale, bonne solution mais encore trop cher

– Ajout de raphkun: Acheter un carte minnowboard-max(99$) qui permet d’installer windows et sa reco vocale, même argument que pour la udoo.

– Ajout de « ah merde j’ai oublié le pseudo et je retrouve pas le commentaire »:On peux gruger voxygen en chopant le stream audio depuis l’url :  http://www.voxygen.fr/sites/all/modules/voxygen_voices/assets/proxy/index.php?method=redirect&text=test&voice=Electra&ts=14030902642 Ca fonctionne mais uniquement jusqu’au jour ou voxygen verrouillera le service.

Si vous avez des idées, questions, suggestions, insultes… pour faire avancer le schmilblick, c’est à vous de « tempêter du bulbe » dans les commentaires !  :)

 

Article rédigé par Idleman

81 réflexions au sujet de « Un petit « tempêtage » de tête ? »

  1. JEROME

    J’ai fait à peu près le même constat :(

    Je pars dans une autre direction et je cherche un système basé sur la comparaison de fichier MP3.
    Pour chaque action, je veux enregistrer une phrase. Ensuite le soft doit me sortir le nom du fichier le plus proche de ce qu’il a entendu.

    Y’a pas 50 phrases à enregistrer et ça peut être marrant « SOIREE DISCO » stoppe la lumière et allume la boule disco. Va faire reconnaitre ce genre de phrase à un système de reconnaissance générique avec le bruit ambiant.
    Y’a pas forcément besoin d’un mot clé genre « SIRI ».

    Bref je n’ai pas de soluce à t’apporter mais si tu connais un soft multi plateforme qui fait ça, je suis preneur :)

    Répondre
    1. Idleman Auteur de l’article

      Pas idiot, mais peu dynamique pour le coup, ça force l’utilisateur a se palucher chaque commande a dicter au moins une fois… je me demande si c’est fiable comme technique. Tu as une POC quelque part ? :)

      Répondre
      1. JEROME

        Pas de POC mais qd j’aurai le tps je testerai https://github.com/parshap/node-fpcalc mais c’est basé sur une API et orienté musique.
        Il faut chercher autour de « audio fingerprint »

        PS : La reconnaissance vocale ne fonctionne pas chez moi avec l’accent toulousaing :D

        Répondre
      2. Dfypido

        Je suis a la retraite ! Tombé sur ce blog, j’ai tout lu d’un coup ! Pas dormi ! Le lendemain j’ai commandé ce bidule !
        Merci a vous, c’est passionnant et j’ai trouvé un casse-tête pour les dix prochaines annees.
        Merci encore ( j’adore les’ dérangés de la cervelle’ comme vous, passionnés qui partagent !)

        Je ne sais pas si c’est ici qu’il faut ecrire, mais tant pis!

        Répondre
  2. Dodutils

    Quel que soit le moteur de reconnaissance vocal, ça reste pourri, trop d’erreurs, faut parler dans un environnement calme, bien séparer les mots et ne pas utiliser de mots qui pourraient être confondus avec d’autres ou des mots qui peuvent en faire deux si on les sépare car cet aussi une source potentielle d’erreur.

    Enfin bref ça fait 20 piges qu’on nous promet la reco vocale et c’est toujours pas au point. Seuls les outils dédiés genre Dragon Didact s’en sortent un peu mieux mais encore faut-il passer par une phase d’apprentissage et là aussi être dans un environnement calme etc…

    Donc désolé je n’ai pas de recommandation :-(

    Répondre
    1. Idleman Auteur de l’article

      Je trouve la reco de windows et de google relativement pertinente, même en mode dictation :), je n’ai pas testé siri par contre. Et je suis d’accord pour dire que l’environnement doit être relativement calme cela dit ils y a des solutions techniques à ça (micro array, micro a zone isolées …) et puis tu ne fais pas tous les jours la fête chez toi, et quand tu la fait tu peux encore utiliser les bon vieux interrupteurs :D

      Répondre
  3. oliv

    salut, bonne idée ce petit tempêtage :D

    pour voxygen je ne sais pas si j’ai le droit de le faire mais ceci fonctionne admirablement et sans latence.

    j’appel simplement une url glanée sur la toile qui me retourne un mp3 à lire comme je veux.

    j’ai choisi d’utiliser php et le lecteur mpg321
    j’appel l’url suivante avec la voix et le texte en paramètre – http://pi/tts.php?voice=Eva&text=bonjour

    tts.php

    bien sure, avoir mpg321 d’installé et que www-data soit dans le group audio
    sudo adduser www-data audio

    ps: comment faire la balise code ici ?

    ah mais mince….. si un jour tu t’ennuy =) ajoute la fonction édition :p


    if(isset($_GET['text']) && isset($_GET['voice'])){
    exec(‘mpg321 -g 100 “http://www.voxygen.fr/sites/all/modules/voxygen_voices/assets/proxy/index.php?method=redirect&text=’.urlencode($_GET['text']).’&voice=’.urlencode($_GET['voice']).’&ts=14030902642″‘);
    }

    Répondre
    1. Idleman Auteur de l’article

      Merci pour ce bout de code, faut que je le test :), je pense que voxygen vas verrouiller ça un de ces 4 mais en attendant c’est une solution intéressante ^^
      pour le code il suffit d’utiliser les balises html code classiques

      Répondre
          1. oliv

            et bien, à la fin de l’url, ts=14030902642 doit correspondre à un compte utilisateur, qui est arrivé à échéance.

            cette solution tombe donc à l’eau.. :/

          2. oliv

            ah mince, en re tentant, je vois que ça re fonctionne… je ne comprends plus rien :D

            désolé

          3. oliv

            à moins que le compte est été renouvelé par son possesseur…..

    2. Astryder

      Ton code fonctionne encore?
      Il n’y a aucune subtilité?
      Tu crées un fichier.php, (vesta/1.php), tu colles ton bout de code dedans et puis tu mets ceci dans la barre de recherche: http://192.168.1.33/vesta/1.php?voice=Eva&text=bonjour

      Mais elle reste muette…
      J’ai bien installé mpg321 et entrer la commande sudo adduser www-data audio

      Ca serait vraiment génial si quelqu’un avait une idée.
      Leurs voix sont tellement magnifiques. oO

      Répondre
    1. Idleman Auteur de l’article

      Oui : ils utilisent pocketsphinx ^^

      Répondre
      1. Cédric

        The actual Linux Client use pocketsphinx to detect a keyword (the name of the bot). It’s a trigger to launch the speech recognition by voice. LISA will listen and stream each chunk to Wit Speech API

        Donc oui et non, pocketsphinx sert à la détection d’une phrase à interpréter. Après API Wit (actuellement Web, prévu pour du local à terme)
        Le dév derrière le projet a fait un boulot qui va dans ton sens : du portable multi-OS, du light, de l’héberger chez soit si possible. Il prévoit même la reconnaissance de voix à terme. Mais bon c’est encore jeune.

        Répondre
        1. Idleman Auteur de l’article

          Je ne connaissais pas wi, ça a l’air sympa, faut que je test merci :)

          Répondre
  4. oliv

    ah mais mince….. si un jour tu t’ennuy =) ajoute la fonction édition :p

    –balise php–
    if(isset($_GET[‘text’]) && isset($_GET[‘voice’])){
    exec(‘mpg321 -g 100 « http://www.voxygen.fr/sites/all/modules/voxygen_voices/assets/proxy/index.php?method=redirect&text=’.urlencode($_GET[‘text’]).’&voice=’.urlencode($_GET[‘voice’]).’&ts=14030902642″‘);
    }
    –fin balise php–

    Répondre
    1. Idleman Auteur de l’article

      Effectivement ça fonctionne :), merci pour l’échange ^^

      Répondre
  5. YannXplorer

    Salut,

    Peut-être bien que le fait d’utiliser une carte UDOO plutot qu’une raspberry Pi pourrait aider à implémenter le vocale simplement.
    La carte est un peu plus grosse que la RBPi mais est « 4 fois » plus performante et permet d’embarqué une distribution android 4.3.
    http://www.udoo.org/
    See you!

    Répondre
    1. Idleman Auteur de l’article

      Bonne solution, mais encore un peu coûteuse (minimum 84€ pour avoir un moyen de communiquer via le net, et sans compter les frais de ports c’est hard ^^)

      Répondre
  6. nerkdesign

    Merci pour cet état de l’art simplifié, je me suis fait les meme conclusion. En attendnat que le model Francais soit complet ( Je profite de ton site pour que les gens participe : http://www.voxforge.org/fr/downloads)
    Et du coup je me suis rabattu sur googlev2 en attendant …

    Répondre
    1. Idleman Auteur de l’article

      Tu n’est pas limité en requetes par jour avec google v2?

      Répondre
      1. nerkdesign

        Si, limité a 50 requêtes mais c’est mieux que rien. J’ai du modifier mon script ( qui requettait en permanence) pour qu’il s’active qu’en cas de détection de paroles (pour le moment,script pas très fiable, je regarde du côté de sox / rec mais j’ai pas encore trouvé le bon réglage… A bon entendeur :) )

        Répondre
        1. Idleman Auteur de l’article

          Dommage ^^, ils doit quand même y avoir moyen de gruger en se faisant passer pour android ou chrome, mais je n’ai pas trouvé de poc qui fonctionne actuellement.

          Répondre
          1. Jokester

            Je pense qu’en faisant une application chrome / extension chrome, on doit pouvoir faire ça.
            Si j’ai un poc avant la fin de l’année (oui je suis très occupé en ce moment ^^’) j’en parlerai ici.

  7. Ariolas

    Il y a une erreur, concernant Windows API :

    le système dépend de fichier de grammaire a renseigner. Il ne peux pas comprendre des phrases qu’il n’attend pas explicitement ;)

    Le cahier des charges est très clair et complet. Mais justement, il me semble qu’au jour d’aujourd’hui, le choix de W$ reste le meilleur.

    Pour infos, je fait tourner SARAH avec le client vocal sur un pc d’occas acheté 60e sur le bon coin. le seul point qui me gene est la conso pour un pc allumé 24/24.

    Répondre
    1. Idleman Auteur de l’article

      En réalité Windows API fonctionne très bien sans ces fameux fichiers de grammaire. D’ailleurs l’actuel Yana Windows se sert de l’api windows sans les utiliser, en effet la librairie permet de passer par une construction dynamique OU par ce système de fichier un peu pourri.

      Yana server envois du json au client, et celui ci l’interprète directement pour l’intégrer aux commandes vocales.

      Pour ce qui est d’acheter un pc de fortune, c’est une solution mais j’aimerais trouver quelque chose de plus fiable et reproductible que trouver la bonne occase sur le bon coin ^^, je suis sûr qu’on est pas loin de la solution avec des cartes comme le pi, seul le processeur semble interdire l’utilisation de windows sur cette petite bête :)

      Répondre
        1. Idleman Auteur de l’article

          Merci pour l’astuce, j’ai ajouté sur l’article, tiens moi au jus pour tes tests :)

          Répondre
      1. Ariolas

        Autant pour moi, ils me semblait vraiment que Windows demandait des fichiers pre construits.

        Je suis d’accord avec toi concernant les cartes, surtout quand je vois la config de mon actuelle machine :

        monocore 2.93Ghz (Intel pentium 4)
        1,5 Go de RAM

        Et ça tourne pas mal !!

        Répondre
  8. xataz

    Je ne suis pas un expert en dev ni en speech, mais voila ce que je peux donner comme idée (non confirmé ni tester).

    Pour windows sur un bananapi, cela semble impossible, processeur ARM oblique
    Android sous RPI, est si je ne me trompe pas bloqué à la vers 2.3, donc l’API date un peu et est plutot moche
    Pour « Windows speech recognition API », Mono sous linux ne le prend pas en charge ? Car il me semble qu’il existe une librairies .NET pour ceci.
    Pour « Android Speech », des petits malin ont trouvé comment faire tourner les applis android sous chrome, peut être une piste à creusé.

    Personnellement Espeak est pas mal, et gratuit en plus, mais c’est vrai que c’est moche, mais en même temps pour nous dire « Oui mon seigneur », un canard me suffit.

    Autrement faudrait que je retrouve un petit script que j’avais fait en shell/python, totalement moche, et semi fonctionnel. Celui ci enregistrai des séquences de 5 sec, pour les envoyés a google trad (méthode pour utilisé gratuitement l’API), cela me retourné un json avec la phrase compris et la « sureté » (de 0 à 1).
    Bon le code est moche, mais vraiment très moche, mais ça marchait, et en plus directement sur le PI avec le micro intégrer dans une vieille webcam.

    Après si le but était d’avoir la partie « serveur » sur le PI, il faut prévoir du matos pour le son, et du matos compatible.

    Voila pour ma « ridicule » participation.

    Répondre
    1. Idleman Auteur de l’article

      Je ne crois pas que mono fonctionne avec wsapi, a mon souvenir c’est une des fonctionnalités qui n’ont pas encore été portées par mono, pour le banapi j’efface donc cette possibilité.
      Pour android sous rpi la 2.3 ne comprends pas la reco locale je crois donc on peut aussi oublier.

      Coté google ils ont vachement verouillé les api de reco, maintenant il faut une clé pour tout et c’est limité a quelques centaines de reco par mois. Trafiquer via un client chrome est une solution mais peu fiable sur le long terme il suffit que google change un peu son système toutes les semaines et le support deviendra insupportable justement ^^

      Coté matos sur le rpi uen simple enceinte suffit, pour le micro il faut un micro usb si possible fait pour la reco vocale (micro array ou autre)

      Répondre
  9. Arai

    Sinon il y a des solutions avec VoiceXML. Par contre il faut configurer tout ce que dit la machine et toutes les phrases que l’humain peut prononcer.
    J’avais testé une solution il y a 4 ans mais je ne sais pas trop ce que c’était devenu. On pouvait le télécharger en local mais la machine devait être puissante sinon elle ne comprenait pas grand chose. Et le must, on pouvait l’appeler par Skype <3

    Répondre
    1. Idleman Auteur de l’article

      Je ne vois pas de soft à tester de ce coté là, tu aurais un lien vers quelques chose de fonctionnel/testable ? :)

      Répondre
      1. Arai

        J’avais utilisé le logiciel de Voxeo

        Répondre
    1. Idleman Auteur de l’article

      Ca a l’air pas mal mais ça ne semble pas fonctionner pour du francais :)

      Répondre
  10. pm5706

    J’ai commandé le banana Pi, dès que je le reçois j’essaye d’installer windows. J’ai un gros doute concernant ça comptabilité sachant que même les créateurs ne parlent pas de windows et surtout à cause des processeurs…. Peut être Windows RT ou CE ?

    Répondre
    1. Idleman Auteur de l’article

      Visiblement le processeur empêche l’installation du windows sur la carte, les cartes low cost windows compliant ne semblent pas courrir les rues, actuellement je ne connais que la minnowboard-max mais elle est quand même à 99$ oO.

      Répondre
  11. DucLeto

    Sujet intéressant. Mais il ne faut pas négliger les questions concernant le matériel.
    Notamment comment faire pour avoir une reconnaissance dans toutes les pièces.
    En bref, quel micro utiliser, et comment brancher plusieurs micro en même temps, un par pièce…?

    Répondre
    1. Idleman Auteur de l’article

      Là dessus j’ai déjà quelques pistes plus concrètes, et dans le pires des cas on place un rpi par pièce ou un module ardui par pièce branchée à une enceinte et a un micro array, le nouveau client yana pouvant supporter ce type d’architectures decentralisée

      Répondre
  12. Florent

    Pour GoogleV2 et la limitation à50 requêtes, il « suffit » de récupérer une clé utilisée par son navigateur Chrome. C’est faisable assez facilement avec Fiddler2 en mode HTTPS. Mais je ne pense pas que Google apprécie ;)

    Concernant Sphinx, il existe bien 1 modèle acoustique Français (2 en réalité)
    http://sourceforge.net/projects/cmusphinx/files/Acoustic%20and%20Language%20Models/French%20F0%20Broadcast%20News%20Acoustic%20Model/
    http://sourceforge.net/projects/cmusphinx/files/Acoustic%20and%20Language%20Models/French%20F2%20Telephone%20Acoustic%20Model/
    Le modèle acoustique ne bride pas le vocabulaire, celui-ci est déterminé par le dictionnaire et le modèle de langage qui l’accompagnent. Ceux dispos sur le site comportent 62000 mots
    http://sourceforge.net/projects/cmusphinx/files/Acoustic%20and%20Language%20Models/French%20Language%20Model/
    Le dictionnaire (et modèle de langage) peut être modifié indépendamment du modèle acoustique. Rien n’empêche donc de se constituer sa propre liste de mots/commandes. Par contre il est clair que c’est laborieux et pas automatisé.

    Dans les alternatives (mais en mode connecté), et en Français, il y a aussi http://developer.att.com/apis/speech et surtout le leader : http://dragonmobile.nuancemobiledeveloper.com/public/index.php?task=memberServices

    Répondre
  13. Soywod

    Bonsoir à tous,
    J’apporte mon ptit grain de sel :p
    J’ai été (et suis toujours) à fond sur cette même problématique, c’est vrai que c’est assez limité
    J’étais parti sur PocketSphinx, et j’arrivai à l’utiliser de façon à peu près convenable, avec un dico en français mais bon le taux de reconnaissance doit être aux alentours de 70/80%. J’arrive à lui dire « DUCON affiche heure » « DUCON affiche date » et quelques commandes basiques, mais j’ai l’impression que PocketSphynx se « force » à trouver une bonne réponse, du coup quand je parle avec un pote dans la même salle que lui, toute les 2 min il parle tout seul…
    Je suis en train de rédiger un mini tuto là-dessus, je vous le partagerai une fois terminé, ptet que ça aidera certains à trouver la solution miracle :D

    Répondre
    1. boury christophe

      Bonne analyse, c’est surement ce qui arrive. Quand on utilise un moteur de reco en mode ASR (ou mode command & control), le moteur renvoi des hypothèses et en effet il les rapproche de sa grammaire. Donc plus ta grammaire est light plus tu as des chances d’avoir des faux positifs. Cela s’explique par le jeu des statistiques (voir notions de N-Gram).
      Souvent on peut récupérer un pourcentage de fiabilité qui porte un nom différent suivant le moteur (confidence, hypothesis, ….). Faire du ‘command & control’ nécessite une haute valeur d’hypothèse (essais supérieur a 70% pour commencer, ça te donneras une bonne idée de la chose), ou du moins une valeur plus haute qu’en mode recognition (souvent entre 30 et 40 %) pour contrebalancer les statistiques du modèle de language.

      une autre solution et d’alourdir le système de statistique, genre au lieu de « DUCON allumes la TV », « DUCON allumes la tv maintenant ». Ou avoir plusieurs commandes « DUCON » permet d’ouvrir la reconnaissance pour x secondes pour les autres commandes (« allumes la tv » eteind la lumiere ») mais cela force souvent une pause dans la diction « DUCON » [silence] « allumes la tv ».

      Je bouffe de la reco vocale pour le taf depuis plus de 10 ans. Contrairement a ce qui a été dit cela fonctionne bien, mais c’est un monde de nuance et il vaut mieux éviter de sortir des clous. <3

      Répondre
  14. X_Delta

    J’ai peux être une idée
    utiliser la librairie Google et stocker sur le disque dur des fichier son au format wav puis lorsque l’on a un certain nombre de commande pré enregistrer en les compare avec une librairie de traitement de son Xo
    OU oO
    crée un nouveau modele acoustique pour sphinx en utilisant les commande reconnu avec Google :(
    On aura donc un programme qui évolue :D
    après il reste les bibliothèque java script (on envoie le son sur le serv et la bibliothèque l’analyse)

    Répondre
  15. Ingetech-france

    Salut Idleman,

    je viens de découvrir ton site web et je viens te proposer quelques API qui pourraient éventuellement t’aider :
    – MBROLA : http://tcts.fpms.ac.be/synthesis/mbrola/mbrtts.html
    – ESPEAK : http://espeak.sourceforge.net/ et http://en.wikipedia.org/wiki/ESpeak (je reste persuadé que quelqu’un a ajouté un fichier de langue pour le français mais je n’ai pas pu le trouver. Enfin, il te reste l’anglais, le russe et le mandarin lol). Il existe aussi pour Android (http://reecedunn.co.uk/espeak-for-android)
    – Gnuspeech qui se dit être crossplateform. http://www.gnu.org/software/gnuspeech/ et http://savannah.gnu.org/projects/gnuspeech
    – FSSS : http://en.wikipedia.org/wiki/Festival_Speech_Synthesis_System
    – FreeTTS : en Java mais que tu peux encapsuler pour communiquer avec ton projet web. http://en.wikipedia.org/wiki/FreeTTS et http://freetts.sourceforge.net/

    Sinon au pire, tu peux consulter les solutions dans la liste en bas de cette page wikipédia :
    http://en.wikipedia.org/wiki/MBROLA

    Répondre
  16. matox

    Salut,
    Je suis un peu ému car c’est mon premier com.

    Je viens de lire que firefox os allait être porté sur pi. Si ils font les chose bien il y aura de quoi faire de la reconnaissance vocal…
    Si c’est le cas (jamais dans les mains de fxos), il sra déjà intégré et on pourrait l’utiliser.

    Répondre
  17. Astryder

    Et pour ce que ça vaut: qu’est ce que vous pensez de Pico (pas besoin d’internet et voix plus que correct) j’ai retranscrit un Tuto clair et sans faute dans la taverne?

    Répondre
  18. Unknow

    Alors pour la synthese vocale j’utilise picott, c’est la voix d android, qui correspond a tout tes criteres, qualité superbe avec possibilitées de changer quelques options comme la vitesse de diction, tu trouveras le lien et un tuto pour l’installer par ici > http://www.raspberrypi.org/forums/viewtopic.php?t=68693&p=509289.

    Pour la reconnaissance vocale, j’utilise julius et pocketsphinx. Le soucis c’est que j’ai laissé le projet de coté depuis 1/2 mois donc me souvient plus trop de tout.

    Pour mon projet je vais utiliser un de ces 2 systeme qui va tourner 24/24 juste pour detecter 1 mot, le nom de mon projet, a ce moment il va enregistrer la phrase et l envoyer a google translate, il pourra egalement gerer quelques phrases mais au vu des resultats y a pas mieux que google translate.

    Pour pocketSphinx, comme je te l’avais deja dit, le francais n’existe pas en version light, donc me faudrait refaire la base de donnée.
    Pour Julius qui marche beacoup mieux chez moi, le francais n’existe pas non plus, mais par contre les bases sont beaucoup plus facile a faire, il y a meme une manip pour programmer son ordi pour generer lu meme les bases, mais perso le tuto m a fait peur ……
    En fait en cas de base de données legeres ou incompletes il n’y a que julius qui pourra marcher, pocket demande trop de travail.

    Si tu as des problemes je pourrais te faire passer mes liens de tutos, mais le plus dur etant pocketsphinx, si tu gere celui la, tu n’auras aucun probleme pour les autres.

    En idle julius est plus gourmand que pocket aussi.

    Sinon j’ai trouvé ca aussi http://www.mikroe.com/click/speakup/

    Répondre
  19. Unknow

    Dsl, j’ai oublié un lien qui va surement te motiver > http://www.aonsquared.co.uk/robot_arm_tutorial_1 . Pour info c’est la ou je me suis arrété ^^. Mais c’est bien expliqué et je crois vraiment que cela va m’aider a avancer. Me manque juste le temps.

    Répondre
  20. thenexen

    Sinon pour :
     » Installer android sur le pi et déporter yana sur ce système pour bénéficier du nouveau sdk local d’android pour la reconnaissance (Si android tourne bien sur le pi SI on peux y placer la version qui embarque le sdk locale de reco/synthèse et SI on peux bien gérer les gpio et autres prérequis de yana) »…. tu as pensé Pcduino ???
    http://www.pcduino.com/ :siffle:

    Répondre
  21. Thibaut Labouret

    Hey,

    Moi je suis assez bluffé par les performances de Cortana sur Windows Phone 8.1 (en preview américaine) qui se veut meilleure que Siri.
    Cortana devrait arriver sur la prochaine version de Windows pour bureau (Windows 10). Pour l’instant la Technical Preview de windows 10 n’a pas encore intégré la fonctionnalité mais dans qq mois on devrait pouvoir tester ça !
    http://www.nextinpact.com/news/90192-windows-10-cortana-arrivera-dans-preversion-ulterieure.htm

    Répondre
    1. Idleman Auteur de l’article

      Oaip ça a l’air pas mal je vais voir ça :), merci pour le lien !

      Répondre
  22. kituc

    Bonjour,
    Il y a également le projet de JP ENcausse : http://blog.encausse.net/s-a-r-a-h/
    qui utilise les API de Windows.
    La reconnaissance fonctionne assez bien surtout depuis un Kinect, avec la V3.
    La version 4 est en cours de finalisation, à suivre…

    Répondre
  23. Thomas

    J’ai déjà essayé plusieurs types de moteur de reconnaissance vocal. Jusqu’à maintenant, je n’ai rencontré que des anomalies. Du coup, je sens qu’il a un peu atteinte à ma liberté d’expression hihii. Mais il ne faudra pas oublier que ça reste des « machines », donc il ne faut pas espérer une application qui soit parfaite. Néanmoins une question me trotte dans la tête, les grandes marques évoluant dans le domaine de la téléphonie sont-ils au courant de ces petites défaillances et ont-ils l’intention d’apporter de bonnes solutions ?

    Répondre
  24. Unknow

    Bon, mon precedent post a été viré des commentaires, donc je reteste.
    Pour la sysnthese vocale j’utilise pico tts, c’est la voix de android, je ne met pas de lien car j’ai peur d etre bloqué par ton anti spam, mais j’ai un lien avec le mode d’emploi pour l’installer sur raspberry, la voix est parfaite, c’est celle de ton telephone, avec possiblitées de reglage (vitesse, …)

    Pour la reconnaissance vocale, je teste en meme temps Pocket et julius. Pour les deux necessité de refaire une base de donnée, celle proposé pour pocket ne marche pas car trop lourde en francais (marche en anglais). Par contre refaire une base pour julius est plus facile, en fait avec une base legere et incomplete seul julius peut fonctionner.

    Coté hardware suis tombé sur ca > ht tp://w ww.mikroe.com/click/speakup/.

    Pour info mon projet n’aura qu’un seul mot a reconnaitre, a ce moment il declenche l’enbregistrement, et envois le tout a google translate (dsl mis pour la reconnaissance y a pas mieux), il pourra egalement reconnaitre le strict minimum en local mais le plus gros se fera en ligne.

    Répondre
  25. Alexandre

    Bonjour!

    J’utilise depuis quelques temps ce service web pour le TTS:

    http://www.voicerss.org/

    C’est simple,gratuit et paramètrable à souhait(possibilité de générer en mp3 ou ogg, vitesse…) la voix est un peu robotisée mais reste agréable…

    Répondre
  26. xataz

    Autrement j’ai une autre solution, qui pourrais être pas mal, mais faudrait être plusieurs sur le projet. Ce serais loué un VM windows, donc ajouté un système de donation pour yana, sur lequel tu crée une API web qui pourra être utilisé directement depuis le raspberry.
    Après faut voir pour le ‘transport’ de la voix.
    Si tu veux dans ce cas je peux créé une vm windows pour faire des tests sur mon proxmox.

    Répondre
  27. overedge

    Porter le sinthese vocale d’android ailleur c du java et bcp de sources sont sur le net par contre on dépend de java

    Répondre
  28. BenWa

    Salut Idleman!
    Pour la synthèse vocale, j’utilise pour le moment Svox Pico qui donne plutot un bon résultat! Comme tu n’en parles pas dans ton billet je me permet de l’ajouter à tes solutions de synthèses vocales ;)
    Je te laisse un lien qui explique comment installer tout ca sur un raspberry : http://emanon.jimdo.com/tutorials/

    Répondre
  29. syrus77

    salut idle,

    je voit que tu recherches une petit plateforme pas cher pour faire tourner un windows.

    est ce que tu as regarder du coté de la plateforme Olinuxino,
    c’est une petit mobo avec processeur cortex-A7 A20 dual-core / 1GB ram,
    il me semble que certaines tablette low-cost sous windows RT utilisent ce meme processeur,
    peut etre y aurait-il un moyen d’installer directement ou via une VM ?

    Répondre
  30. ronan

    Bonjour idle,
    une petite question comment tu fais pour que yana sache qu’elle a un ordre a exécuter.
    tu as mis un mot clé comme dans S.A.R.A.H ? si oui tu pourrais m’expliquer comment tu as fait stp.
    l’installe de yana sur pi est vraiment une excellente idée.
    Merci Ronan

    Répondre
  31. YannXplorer

    Salut,

    Je reviens sur ce sujet car j’ai trouvé une solution qui peut vraiment être intéressante :
    Le dungle HDMI UGOOS UM2 qui me parait assez performant (pas encore benchmarqué car en cours d’approvisionnement…) et permet de se co en BT 4 (BLE) et Wifi. En standard, il permet de faire tourné Android 4.2, j’ai demandé au commerciale sur le site pour me faire un devis avec Android 4.4 et c’est possible pour 54 + 24€ (prix + FP) livré depuis Shenhzen (Chine).

    Sinon on peut trouver ça sur alibaba ou amazone mais plus cher (ceci dit toujours inférieur à 84€).

    lien :
    http://ugoos.net/ugoos-um2
    http://www.amazon.com/Ugoos-UM2-RK3188-Cortex-A9-Android/dp/B00F2BC6UE

    Je viens de voir l’annonce Amazone est très intéressante car « free shipping »… A voir les conditions lol.
    Mais on est en 4.2. Et je crois que UGOOS donne les outils pour migrer les versions :
    http://ugoos.net/downloads

    A tester toujours, je pense vraiment qu’on peut faire des choses sympas avec, en plus RockChip (fabriquant du SoC) commence à être connue pour proposer des solutions low cost et qui tienne la route.

    A+

    Répondre
  32. jfcjfc

    Fin de paragraphe de « reconnaissance vocale »
     » …Non, jasper.io (et aussi LISA) n’est pas une solution de reconnaissance vocale mais un simple CMS qui utilise PocketSphinx et donc qui est inapplicable dans notre système domotique a moins de parler couramment anglais (avec la bonne intonation sinon c’est mort) à votre maison….. »

    FAUX : LISA ne marhe pas avec pocketsphink, mais ‘wit-ai’ et est interfacé avec la domotique et box.

    Répondre
  33. Valentin

    Du coté de la pomme, on a une commande intégrer dans Mac OS « say » pour le TTS, on peut choisir différentes voix qu’on peut télécharger dans les préférences système, les voix sont plutôt bien je trouve (en français évidement). Pour le STT, y’a une class en Objective-C (uniquement sur OS X et nécessite une connection internet) qui s’appelle NSSpeechRecognizer, qui permet de reconnaitre un certain nombre de phrase (définit par l’utilisateur). Je suis en train de regarder ce dernier. Sinon y’a une autre class qui s’appelle NSSpeechSynthesizer qui doit faire la même chose que « say » mais directement dans le code source de l’appli (pas encore essayer)..

    Répondre
  34. xataz

    Nouvelle solution qui va bientôt (plus ou moins) arrivé.
    Le raspberry PI 2.
    Windows 10 étant en cours de portage par Crosoft dessus, ce qui permettra (peut être) de faire tourné la version actuelle de yana.
    A suivre donc.

    Répondre
  35. gilles

    le raspberry B+ vas tourner sur Windows 10 !!!!! peut être le début de la fin des problème avec la reco vocal (oui c’est bon de rêver ….) :)

    Répondre
  36. Zaphod

    Hello Idle,

    En fait, pourquoi ne pas considérer la technologie reconnaissance/synthèse aux choix de l’utilisateur par un système de plugins sur ton client ?
    Un peu comme Yana Serveur, la communauté pourra développer derrière des plugins ou programmes tiers qui utilisent la techno qu’ils souhaitent, compatible avec leur OS et dans le langage qu’ils souhaitent :)

    Piste de réflexion:
    – Passer par des Command Line Arguments
    Le client transmet la liste des commandes au plugin de reconnaissance: plugin-reco.exe /define « C://fichierContenantLesCommandes.yana »
    Le plugin de reconnaissance transmet un ordre interprété au client: yana-client.exe /hear « Allume la machine à café »
    Le client transmet sa réponse au plugin TTS: plugin-tts.exe /speak « la machine à café est allumée »

    Je me suis lancé dans le dev d’une appli perso pour Windows Phone 8.1 avec Cortana, qui fait le lien avec Yana-serveur, la reconnaissance est précise et bluffante ! Et comme je le disais vu que Cortana arrive sur Windows 10 bientôt pour la France en technical preview, ça risque d’envoyer du pathé <3

    On a pu trop de nouvelles de toi,
    Tu devais emménager dans ta propre maison ça doit être ça qui te bouffe ton temps IRL ^^ T_T

    À très vite

    Répondre
  37. razdoris

    salut.

    pour le TTS a tu regardé du coté de balabolka?

    Répondre
    1. Idleman Auteur de l’article

      Ca utilise MS speech (ce que j’utilise déja dans mon code) mais qui malheureusement n’est dispo que sur windows :)

      Répondre
  38. Fred

    Pour le TTS, comme dit sur d’autres post:
    pico2wave de Svox est parfait, et en français.

    Répondre
  39. Alex

    Salut je suis justement en train de développer un genre de jarvis super léger qui utilise Google Speech pour la reconnaissance et la synthèse.
    Le projet est la si vous voulez y jeter un coup d’oeil:
    https://github.com/alexylem/jarvis
    Je suis en train d’évaluer Sphinx et eSpeak pour la reconnaissance et synthèse (en Français).
    En tout cas pour le moment ca suffit très bien pour dire allumer la lumière etc…

    Répondre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Xo ^_^ :siffle: :p :-( :evil: oO :) T_T <3 :D more »