-
Compteur de contenus
2449 -
Inscription
-
Dernière visite
-
Jours gagnés
3
Tout ce qui a été posté par Sp@r0
-
En fait le soucis c'est qu'il fournisse un modèle acoustique basique pour l'anglais (je l'ai tester c'est super rapide qq secondes) mais il ne fournisse que le modèle de compétition pour le français ....
-
Le syno utilise le "Open Soud System"(OSS) pour gérer le son, lors de l'accès au /dev/dsp on récupère un flux brute (RAW) d'un format particulier mais il ne contient aucun entête que pourrait utiliser ffmpeg pour savoir de quel RAW il s'agit il faut donc lui préciser pour que cela fonctionne. De même on peut procédé à l'envers pour obtenir un fichier contenant du RAW pouvant être lu directement avec cat fichier.raw > /dev/dsp l'intérêt c'est que cela ne prend quasiment aucune ressource pour lire un fichier son de ce type
-
Oui ça je m'en doute bien ..... Mais le problème ne vient pas du dict et du lm (que l'on peux simplifier et j'ai fait déjà le test même avec 6 mots dans le dico et le LM cela prends encore 5 min ) le soucis vient du hmm je pense que c'est celui ci qu'il faudrait recréer pour qu'il soit moins performants et qu'il bouffe moins de ressources
-
Alors j'ai une bonne est une mauvaise nouvelle, je commence par la bonne : LA BONNE NOUVELLE : Je suis également parvenu à cross compiler pocketsphynx + compiler le module en python + écrire un programme de test (en python) + décoder avec succès sur mon DS110J le texte suivant "bonjour toi" (enregistré avec le mic de ma webcam à 2m) LA MAUVAISE NOUVELLE : le décodage est comme qui dirait lent .. pour ne pas dire très très très très très lent ........ 22 min pour un fichier de 4 secondes :( :( Bon faut dire aussi que j'utilise le modèle de language capable de décoder 62K mots (200 Mo), j'ai fait le teste avec 6 mots ça tombe à 4-5 min (enfin cela n'as pas compris la phrase mais c'est normal car l'utilitaire web pour créer des extraits de dictionnaires ne marche que pour l'anglais pour le français faut le faire à la main (ou plutôt avec un script pour filtrer le dictionnaires)... Mais faut étudier la doc du truc à priori on peut utiliser une autre méthode plus rapide (mais moins précises quand on à gros dictionnaire) PS :la frai fausse API google à également décodé le même wav mais en 2 secondes ....
-
Tiens nous au courant de ton avancement !!! Bon sinon voilà ce que j'ai fait c'est un peu bourrin mais cela fonctionne bien: J'utilise le mic (assez pourrit) de ma webcam USB, le DSM l'a détecté automatiquement et je peux y accédé en /dev/dsp4 Pour trouver le votre le plus simple c'est ffmpeg avec la commande (en essayer tout les /dev/dsp...) ffmpeg -f oss -i /dev/dsp4 test.wav Sinon voici une première version de mon programme qui effectue les taches suivantes : - Ecoute en basse résolution - calcul la moyenne arithmétique du son - Si je détecte deux fois de suite une son fort et très cours (genre taper 2 fois de suite rapidement dans ces mains) je lance un enregistrement de 5s que j'envoie à Google Cela ne fonctionne pas trop mal mais je ne vais pas aller plus loin en attendant de voir ce que peu donner pocketsphinx, l'aspect positif de ce code c'est qu'il est relativement économe en ressource (2% de CPU sur mon DS110j) #!/opt/bin/python2.5 #-*- coding: utf8 -*- # # Gestion de domotique VOCAL (API Google) # Auteur : Sp@r0 # Version 0.1 du 08122011 # #============================= # Chargement des dépendances #============================= import ossaudiodev import struct import time import array import os import wave import subprocess #============================= # Initilisation des variables #============================= audio_node="/dev/dsp4" # Source Audio number_of_channels= 1 # Enregistrement en mono sample_rate_clap=10000 # Détection du clap à 1kHZ sample_rate_record=16000 # Enregistrement pour STT à 16kHZ sample_len=500 # Longueur du sample record_len=int(5 *sample_rate_record*2) # Longueur de l'enregistrement 4s clap_level_start = -1000 # Niveau dedétection d'un clap clap_level_stop = 500 # Hystérésis pour fin de clap clap_dur_min = 1 # Duré min d'un clap (en cycle) clap_dur_max = 4 # Duré max d'un clap (en cycle) clap_tmp = 0 # Tempo du clap clap_encours = 0 # Clap en cours de test interclap_dur_min = 10 # Duré min d'un clap (en cycle) interclap_dur_max = 40 # Duré max d'un clap (en cycle) interclap_tmp = 0 # Tempo du clap interclap_encours = 0 # Clap en cours de test sound_file = 'record.wav' #=============================================== # Gestion de l'enregistrement #=============================================== #def Api_STT(): #return #=============================================== # Ouverture du port Audio pour enregistrement #=============================================== audio_in= ossaudiodev.open(audio_node, "r") audio_in.setparameters(ossaudiodev.AFMT_S16_LE, number_of_channels,sample_rate_clap) # Configuration pour détection du clap #============================= # Boucle principal #============================= print "========================================================" print " DEMARRAGE DE LA RECONNAISSANCE VOCAL" print "========================================================" print "La longeur du sample est de : " + str(sample_len) while 1: frames_in = audio_in.read(sample_len) # Lecture d'un sample try: average = sum(struct.unpack(str((sample_len/2))+'h',frames_in))/(sample_len/2) # Pas tout compris except: average=0 #print average # # Gestion de la détection du clap clap # if (average < clap_level_start): # Début de clap clap_encours = 1 if (average >= clap_level_stop): # Fin de clap if clap_encours == 1: print str(clap_tmp) + " " + str(clap_dur_min) + " " + str(clap_dur_max) + " " clap_encours = 0 if (clap_tmp >= clap_dur_min) and (clap_tmp <= clap_dur_max): print "CLAP de " + str(clap_tmp) if (interclap_encours == 0): interclap_encours = 1 elif (interclap_tmp >= interclap_dur_min): print "CLAP CLAP de " + str(interclap_tmp) audio_in.setparameters(ossaudiodev.AFMT_S16_LE, number_of_channels,sample_rate_record) # Configuration pour STT print "Enregistrement en cours" #time.sleep(1.0) frames_out = audio_in.read(record_len) file_sound = wave.open(sound_file, 'w') file_sound.setparams((1, 2, sample_rate_record, 0, 'NONE', 'no compression')) file_sound.writeframesraw(frames_out) file_sound.close p = subprocess.Popen(args=["/opt/bin/ffmpeg -i /volume1/DevZ/iMic/record.wav -y /volume1/DevZ/iMic/record.flac"], stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True) stt_output = p.stdout.readlines() p.wait() p = subprocess.Popen(args=["/opt/bin/wget -q -U \"Mozilla/5.0\" --post-file /volume1/DevZ/iMic/record.flac --header=\"Content-Type: audio/x-flac; rate=16000\" -O - \"http://www.google.com/speech-api/v1/recognize?lang=fr&client=chromium\""], stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True) stt_output = p.stdout.readlines() p.wait() print stt_output interclap_encours = 0 else: interclap_encours = 0 if clap_encours == 1: # Incrémentation clap clap_tmp = clap_tmp + 1 #print "Moyenne :" + str(average) + " Clap tmp :" + str(clap_tmp) else: clap_tmp = 0 if (interclap_encours == 1) and (interclap_tmp < interclap_dur_max): # Incrémentation interclap interclap_tmp = interclap_tmp + 1 #print "Moyenne :" + str(average) + " interClap tmp :" + str(interclap_tmp) else: interclap_tmp = 0 interclap_encours = 0
-
Php Execute Script
Sp@r0 a répondu à un(e) sujet de Remylpat dans Service Web - MySQL - Paramètres PHP
Si par d -
Php Execute Script
Sp@r0 a répondu à un(e) sujet de Remylpat dans Service Web - MySQL - Paramètres PHP
Pour ce genre de chose je cr -
Dis donc tu m int
-
Nul part .... Elle n'est pas officielle c'est issu du d
-
Didons vous êtes tous bien pressé je trouve !!!! Ce n'est pas si simple comme affaire ...... et comme j'ai décidé d'essayer de coder moins comme un patachon ça me prends du temps ..... Ce qui me donne le plus de fils à retordre c'est le système de "clapeur" mais je devrais présenter quelque chose début de semaine prochaine. @Diaoul : Effectivement j'ai ce soucis de daemon qui ne s'arrête pas c'est vrai que c'est pas top le killall.... Il faudrait que j'étudie plus en détails le fonctionnement avec audiostation
-
La magie de Linux : killall synoairplayd
-
Nas Ds211J Et Dlna : C'est Lent!
Sp@r0 a répondu à un(e) sujet de m&s dans Installation, Démarrage et Configuration
Si tu peux aussi mettre une fibre optique .... Tu devrais d -
Nas Ds211J Et Dlna : C'est Lent!
Sp@r0 a répondu à un(e) sujet de m&s dans Installation, Démarrage et Configuration
Freeplug = CPL = lent Il faut que tu tire un c -
Ds211J Livebox Et Tvix Hd Aide
Sp@r0 a répondu à un(e) sujet de Pierelli dans Installation, Démarrage et Configuration
Tout est une question de qualité du réseau wifi ..... cela dépend de la distance entre la box et l'équipement wifi, de la nature des mur, des perturbations électromagnétiques, de la présence d'autre réseau wifi .... -
Pour la webcam qui ne marche pas .... pas grand chose à proposer ......A part redémarrer le NAS remettre les modules et reessayer En ce qui concerne le class/input/input0 cela n'a rien à voir avec l'image, c'est la présence d'une interface utilisateur => il doit probablement y avoir un bouton sur la webcam.
-
Bonsoir à tous ... ou bonne nuit cela dépend ..... Bon juste pour dire que je me suis un peu amusé avec la fonction inverse du "text to speech" .... La reconnaissance vocal avec un NAS !!!!!! un ptit bilan de la soirée : - Utiliser le micro intégré à ma Webcam => nickel rien à faire le NAS l'avais déjà parfaitement reconnu - Enregistrer un fichier son (avec ffmpeg et/ou en python) - Programmation d'un "clapeur" (pour l'instant basique en gros ça détecte un son très fort) pour déclencher un enregistrement - Utilisation de l'api Google pour décoder le fichier son (en flac), ben oui vous pensiez quand même pas qu'un ARM 800Mhz pouvez faire une reconnaissance vocal dans un délai raisonnable ..... - Récupération du retour (on va dire que cela fonctionne pas trop mal mais j'ai pas trop eu le temps de le tester, la reconnaissance des mots type "bonjour", "allume", "jour", "nuit" ce passe bien. Par contre impossible de lui faire comprendre "éteindre" ... Bon d'un autre coté j'ai pas encore tout compris de la gestion du son sous Python) Je suis pas loin d'avoir une première version à peu près fonctionnel mais je bosse demain .... donc WAIT AND SEE !!!!
-
D apr
-
Non jamais, mais le partage itunes version synology ne marche pas avec les périphériques sur iOS (iPhone, iPad, Appel TV (cela me fait me rendre compte que j'ai les 3))
-
Alors je crois qu'il est important de préciser quelques points : Cela fait longtemps que je ne le marque plus mais comme toujours, tous ce que je présente comme bidouillage ce fait aux risques et périls de l'utilisateur ..... Je ne prêtant pas présenter de solutions industrielles facile à maintenir... La stabilité de mes solutions peut laisser à désirer Je fais cela uniquement pour le fun, ce qui m'amuse c'est de faire un maximum de choses par moi même @Diaoul : Le DLNA et Airplay sont très différentes, Airplay ne permet pas de partager de fichier c'est uniquement un protocole de transfert de vidéo par réseau. Par ailleurs quantité d'enceintes, d'amplis et de homes cinémas sont compatibles avec cette norme. La seul norme concurrente que je connais c'est le WIDI d'intel mais cela nécessite une carte wifi spécifiques. @PatrickH : Effectivement c'est une implémentation en natif poids de l'exécutable 4 Mo (à cause des bibliothèque de voix). @milpat : Pas de soucis de coupure de mes phrases
-
C'est curieux j'ai toujours eu le premier warning au sujet de la version des DATA espeak mais je ne m'en suis pas inqui
-
J ai le m
-
Tout ce que je liste ici ai pour un DS110j donc processeur ARM mv6281 (mais c'est
-
Effectivement, d'ou le choix de l'intel 320 series surtout que j'ai le même dans mon portable du boulot et que j'en suis très satisfait !!!! Par contre la vente flash est fini ... il ont du écouler leur stock plus vite que prévue !!!!
-
L'intel est garanti 5 ans et les vitesse que tu donnent pour l'OCZ sont pour des données hautement compressible sur les données non compressible c'est beaucoup moins impressionnant. : 260Mo/s en lecture et 183 en écriture pour l'OCZ Intel fait 206Mo/s en lecture et 190 en écriture) Deplus l'OCZ agility est équipé du fameux SandForce SF2281 qui fait temps parler de lui à cause de soucis de stabilité Franchement si je n'avais pas eu de contrainte liés à mon mac je conseillerais le Crucial M4