Yana client for linux

2»

Commentaires

  • bonjour, j'ai un problème au lancement du script

    pi@raspberrypi ~/yana-linux $ sudo ./yanavoice.py
    ----------------------
    Verify Files
    ---------------------
    ./yana.cfg founded
    ./scripts/sst.sh founded
    ./scripts/getvol.sh founded
    ./scripts/tts.sh founded
    /usr/bin/sox founded
    /usr/bin/flac founded
    /usr/bin/play founded
    /usr/bin/mpg123 founded
    /usr/bin/arecord founded
    ----------------------
    Reading Configuration File
    ---------------------
    Traceback (most recent call last):
      File "./yanavoice.py", line 138, in <module>
        ip = settings.get("yana","ip") #IP Address of the Raspberry Pi
      File "/usr/lib/python2.7/ConfigParser.py", line 607, in get
        raise NoSectionError(section)
    ConfigParser.NoSectionError: No section: 'yana'
  • résolu ;)
    pour laisser actif le script peut on utiliser sceen ?
  • edited mars 2015
    il doit être plus long de poser cette question que de tester ^^
    de plus si tu connais screen, tu dois déjà savoir que OUI
  • Hello !

    Travail vraiment remarquable !

    Je rencontre un soucis : Quoi que je dise, j'obtiens un :

    ----------------------
    Recording Silence
    ---------------------
    Volume:3.47705

    ----------------------
    Waiting for Audio Elevation
    ---------------------
    Volume Differential:12.52246

    ----------------------
    Searching for commands
    ---------------------
    ./scripts/sst.sh: 13: ./scripts/sst.sh: curl: not found
    I heard :


    ----------------------
    No Command Detected
    ---------------------

    Merci de m'aider ! :-)
  • Il te manques curl tout simplement:

    sudo apt-get install curl
  • Je suis trop bête ^^
    Je te remercie !

    Très bon projet, tout marche très bien après cette manip' :-P

    Juste un peu la reconnaissance vocale qui est un peu difficile
    Et cette voix ... j'espère qu'il y aura bientôt un moyen de la changer :-P
  • Il existe des script pour récupérer les voix d'acapela par exemple sur les nabaztag.

    Après ça demande de re coder une partie et d'ajouter des options dans le fichier de configuration. Sur le principe c'est jouable openjabanab le fait donc yana-linux le peu aussi. Reste que c'est du taf et qu'on a déjà la un truc qui marche plutôt bien.
  • edited avril 2015
    Pour ceux qui veulent essayer avec acapela
    Voici un script à l'arrahce et un fichier php à héberger quelquepart:

    cat yana-linux/scripts/tts.sh
    #!/bin/bash
    #TTS convert speech to text with Google API
    #Original from StevenHickson
    #Modified by Sarrailh Remi

    string=$@
    lang="fr"
    if [ "$1" == "-l" ] ; then
        lang="$2"
        string=`echo "$string" | sed -r 's/^.{6}//'`
    fi

    #empty the original file
    echo "" > "/dev/shm/speak.mp3"

    #this will get the last remnants
        wget -q -U Mozilla -O "/dev/shm/adresse" "http://addresseinterneouvoushebergerlefichierphp/tts.php?q=$string"
        adresse=`cat "/dev/shm/adresse"`
        wget -q -U Mozilla -O "/dev/shm/speak.mp3" "$adresse"
    #now we finally say the whole thing
    cat "/dev/shm/speak.mp3" | mpg123 - 1>>/dev/shm/voice.log 2>>/dev/shm/voice.log



    Et le fichier tts.php:


    <?php
        $url = 'http://www.acapela-group.com/demo-tts/DemoHTML5Form_V2.php';

        $text = 'Bonjour, ceci est un simple test acapella!';
        $sonid = 'sonid14';
        $voice = 'Claire';

        if ($_GET['s']) $sonid = $_GET['s'];
        if ($_GET['v']) $voice = $_GET['v'];
        if ($_GET['q']) $text = $_GET['q'];

        $data =
        array(
            'MyLanguages' => $sonid,
            'MySelectedVoice' => $voice,
            'MyTextForTTS' => $text,
            'SendToVaaS' =>'',
        );

        // use key 'http' even if you send the request to https://...
        $options = array(
            'http' => array(
                'header' => "Content-type: application/x-www-form-urlencoded\r\n",
                'method' => 'POST',
                'content' => http_build_query($data),
            ),
        );

        $context = stream_context_create($options);
        $result = file_get_contents($url, false, $context);
        $hookp = "var myPhpVar = '";
        $fuck = substr(strstr($result,$hookp),strlen($hookp));
        $rv = substr($fuck,0,strpos($fuck,"'"));

        echo ''.$rv.'';
    ?>


    Voili voilà on peut changer la langue et la voix en modifiant l'appel de la page php.

    C'est vraiment à l'arrache, faudrait voir pour pouvoir mettre la langue, la voix et le choix entre acapela et google TTS dans le fichier de conf.

  • On peu faire de même avec les voix de voxygen d'ailleurs ;)
  • Salut, bon alors je suis assez content,
    j'ai reussi a utiliser le client yana-linux avec le kinect sur le Pi

    mais j'aimerai savoir s'il est possible d'augmenter le volume du micro avec des parametres pour le arecord ?
    car y'a quand meme quelques difficultés pour peu que l'environnement soit un peu bruyant ?
  • Bonjour,

    Etant à la recherche d'un spitch to text polyvalent à installer sur un Raspberry Pi 2 je suis assez vite tombé sur Yana qui me semble être l'une des solutions les plus abouties du moment. Mais je me pose une question (et vous allez comprendre pourquoi je poste ici. Est-il possible d'installer l'interface de d'écoute sur le même raspberry que celui qui accueil le serveur Yana ?
  • Dirvangil,

    oui c'est tout a fait possible, c'est ce que j'ai chez moi, un raspberry avec yana et yana-linux d'installer dessus
  • Un petit tuto pour rajouter une commande ? svp j'essaye depuis pas mal de temps mais en vin :'(
    Merci.
  • @Cissou : J'ai trouvé le moyen d'augmenter le volume du kinect, mais avec ffmpeg. La commande que j'utilise est la suivante :

    arecord -D hw:1,0 -f S32_LE -r 16000 -c 4 -t wav -d $duration | ffmpeg -loglevel quiet -i pipe:0 -af "volume=20dB" -ac 2 -ar 16000 -acodec pcm_s16le /dev/shm/noise.wav

    à placer dans scripts/getvol.sh. Il faut jouer avec volume=xxdB. C'est pas encore parfait mais c'est mieux
  • moi mon probleme et au niveau de l'ip 
    ----------------------
    Verify Files
    ---------------------
    ./yana.cfg founded
    ./scripts/sst.sh founded
    ./scripts/getvol.sh founded
    ./scripts/tts.sh founded
    /usr/bin/sox founded
    /usr/bin/flac founded
    /usr/bin/play founded
    /usr/bin/mpg123 founded
    /usr/bin/arecord founded

    ----------------------
    Reading Configuration File
    ---------------------
    Configuration readed successfully

    ----------------------
    ---------------------
    ERROR: Invalid IP in yana.cfg

    et pourtan c bien la bonne ip
  • hello,

    je sais pas trop a quoi correspond cette trace, mais quant je lis http[...]http sur la même ligne je me dit qu'il y a un souci (je parle pas des ++ qui sont là pour banaliser j'imagine, mais de toute façon en 192.168 c'est uniquement interne a ton réseau local, tout le monde a sa box en 192.168.0.1 par exemple, donc banaliser ça ici ça sert pas a grand chose ;)
  • fry je suis bien d'accord avec toi il y a un souci normalement il devrait testes d’abord l'IP puis dans un second temps le serveur ,
    en gros a mon avis je devrais avoire un truc comme sa :

    Connecting to http://192.168.++.++/
    si OK alors 

    si non 
    ERROR: Invalid IP in yana.cfg

    mais la ... code est en python et le python et moi sa fait 1000
  • bon problème reglé mais bon un de réglé un autre se pointe ce coup si c mon micro

    ----------------------
    Recording Silence
    ---------------------
    arecord: main:722: erreur à l'ouverture audio: Aucun fichier ou dossier de ce type
    **** Liste des Périphériques Matériels CAPTURE ****
    carte 0: PCH [HDA Intel PCH], périphérique 0: ALC887-VD Analog [ALC887-VD Analog]
      Sous-périphériques: 1/1
      Sous-périphérique #0: subdevice #0
    carte 0: PCH [HDA Intel PCH], périphérique 2: ALC887-VD Alt Analog [ALC887-VD Alt Analog]
      Sous-périphériques: 1/1
      Sous-périphérique #0: subdevice #0
    ERROR: No Microphone detected / Bad Microphone Configuration
  • oups j'avais oublié de brancher le micro mais le problème et toujours la
    Recording Silence
    ---------------------
    arecord: main:722: erreur à l'ouverture audio: Aucun fichier ou dossier de ce type
    **** Liste des Périphériques Matériels CAPTURE ****
    carte 0: PCH [HDA Intel PCH], périphérique 0: ALC887-VD Analog [ALC887-VD Analog]
      Sous-périphériques: 1/1
      Sous-périphérique #0: subdevice #0
    carte 0: PCH [HDA Intel PCH], périphérique 2: ALC887-VD Alt Analog [ALC887-VD Alt Analog]
      Sous-périphériques: 1/1
      Sous-périphérique #0: subdevice #0
    carte 2: Headset [Logitech Wireless Headset], périphérique 0: USB Audio [USB Audio]
      Sous-périphériques: 1/1
      Sous-périphérique #0: subdevice #0
    ERROR: No Microphone detected / Bad Microphone Configuration

  • hello bravo pour tout ce taff..

    j'ai un problème je suis parti de la rom prévue pour domoticz, cette rom a été alleger. j'ai ce message :

    ---------------------
    Settings Mic/Speakers
    ---------------------
    ./install.sh: 9: ./install.sh: alsamixer: not found
    ---------------------
    Test Mic
    ---------------------
    Press Enter when you are ready to test the mic
    ./install.sh: 16: read: arg count
    ./install.sh: 18: ./install.sh: arecord: not found
    ./install.sh: 19: ./install.sh: aplay: not found

    il me manque toutes la partie audio et si je tape:

    sudo apt-get install arecord

    j'ai : 

    ~/yana-linux $ sudo apt-get install arecord
    Reading package lists... Done
    Building dependency tree
    Reading state information... Done
    E: Unable to locate package arecord

    une idée de comment je peux installer la partie son sur cette rom?




  • Slt les gars, tout d'abord merci Maditnerd, pour ce taff qui marche très bien avec pi2 et kinect.

    seulement je rencontre la même difficulté que @Cissou il faut drait que je hurle ou que je me colle la kinect sur le visage pour qu'elle m'entende.

    J'ai utilisé la commande de @mmbourgc

    a savoir :

    arecord -D hw:1,0 -f S32_LE -r 16000 -c 4 -t wav -d $duration | ffmpeg
    -loglevel quiet -i pipe:0 -af "volume=20dB" -ac 2 -ar 16000 -acodec
    pcm_s16le /dev/shm/noise.wav

    et j'obtiens dans mes logs console :
    /home/pi/yana-linux/scripts/getvol.sh: 10: /home/pi/yana-linux/scripts/getvol.sh: ffmpeg: not found
    Capture WAVE 'stdin' : Signed 32 bit Little Endian, Fréquence 16000 Hz, 4 Canaux
    arecord: begin_wave:2284: erreur en écriture

    mon fichier getvol.sh : 
    #!/bin/sh
    #Get volume level of a audio file
    #Inspired by StevenHickson voice command code
    #Made by Sarrailh Remi

    hardware="plughw:1,0"
    sample_rate=16000
    duration=$1

    arecord
    -D hw:1,0 -f S32_LE -r 16000 -c 4 -t wav -d $duration | ffmpeg
    -loglevel quiet -i pipe:0 -af "volume=20dB" -ac 2 -ar 16000 -acodec
    pcm_s16le /dev/shm/noise.wav
    // j'ai laissé la ligne qui suit autrement la console defile à block et impossible de lire l'erreur 
    arecord -q -D $hardware -f cd -t wav -d $duration -r $sample_rate /dev/shm/noise.wav
    vol=$(sox /dev/shm/noise.wav -n stats -s 16 2>&1  | grep "Max level"|awk {'print $3'})
    echo $vol

    Je vois bien que mon pb viens de ffmpeg déconne mais j'ai suivi un tuto standard, quelq'un aurait-il le même pb ?
    Sinon quelqu'un sait le résoudre ?

    Merci d'avance

  • edited décembre 2015
    bonjour, le script client linux (yana-linux) ne marche plus.
    d'une part le nouveau google translate intègre un captcha , on peut remplacer l'ancien lien (http://translate.google.com/translate_tts?ie=utf8&tl=${lang}&q=$tmp) par celui ci (http://translate.google.com/translate_tts?tl=${lang}&q=$tmp&ie=UTF-8&total=1&idx=0&client=t) et la détection de la voie de marche plus également, au début je pensais à la clé API qui était morte , je l'ai remplacée par une autre mais cela ne marche toujours pas.

    le micro marche car lors du script d'install qui demande de parler au micro, j'entends bien le test lors de la lecture.

    Merci
  • toujours pas de nouvelle ?
    merci
  • edited mars 2016

    Voilà quelques jours que je me suis remis sur les avancées de mon serveur domotique gratuit Y.A.N.A.

    Pour rappel celui ci se présente sous la forme d’une plateforme PHP
    modulaire, qui proposent plusieurs interfaces de communication (page
    web, interface reconnaissance vocale Windows, interface reconnaissance
    vocale android…) http://www.coquegsm.com/category-accessoires-coque-samsung-galaxy-s6-26.html

  • Merci pour votre travail

    deux petit soucis:

    On lance bien le scripte avec:
    sudo ./yanavoice.py

    Ainsi j'obtiens une serie de controle, puis il se ferme avec:

    "YANA, Allume le salon
    YANA, Eteinds le salon

    Traceback (most recent call last):
      File "./yanavoice.py", line 186, in <module>
        print command["command"]
    UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 17: ordinal not in range(128)."

    Merci



  • bon, ce doit etre un peu tard maintenant, mais en premiere page, il y a la solution, il faut ajouter un codec ;)
    par contre, chez moi,cela ne fonctionne pas, le micro fonctionne, ca detec te bien le changement, mais apres...aucun ordre n'est detecté :/.
    un probleme avec google ou bien? 
Sign In or Register to comment.