2016-03-29 1 views
0

Je travaille sur un patch en TouchDesigner et je veux qu'il utilise SpeechRecognition et construit une installation à partir de mots/phrases enregistrés dans un tableau. Pour ce faire, je veux être en mesure de sauvegarder ce qu'il imprime dans un fichier texte, hélas je suis un mauvais programmeur, et jusqu'à présent, je ne peux pas obtenir le script pour fonctionner pleinement.Comment stocker la sortie de reconnaissance vocale dans un fichier texte

Pour clarifier, la partie de reconnaissance vocale fonctionne, et il s'agit d'un script original allégé, ne laissant que l'API Google. Ce dont j'ai besoin est seulement d'écrire les résultats (tels qu'ils sont envoyés à la console) dans un fichier texte pour une utilisation ultérieure.

C'est la partie qui envoie les mots/phrases reconnus. J'ai besoin que les mots soient ajoutés à chaque fois (pendant que le script s'exécute en continu).

Un grand merci pour toute aide.

import speech_recognition as sr 
r = sr.Recognizer() 
m = sr.Microphone() 


try: 


    with m as source: r.adjust_for_ambient_noise(source) 

     while True: 

    with m as source: audio = r.listen(source) 
    print("") 

    try: 

     value = r.recognize_google(audio) 

     if str is bytes: 
      print(u"{}".format(value).encode("utf-8")) 

     else: 
      print("{}".format(value)) 

    except sr.UnknownValueError: 
     print("") 
    except sr.RequestError as e: 
     print("{0}".format(e)) 
    except KeyboardInterrupt: 
    pass 
+2

Désolé, je ne connais pas 'speech_recognition', mais si vous voulez de l'aide pour cela, vous devez corriger la mise en forme de votre code. L'indentation correcte est _vital_ en Python. Et vous devriez probablement nettoyer certaines de ces lignes vides aussi. –

+0

Pour clarifier, la partie de reconnaissance vocale fonctionne. La majeure partie de la mauvaise indentation est causée par des difficultés à mettre le code ici. J'ai seulement besoin d'imprimer les résultats au fichier texte - les parties qui impriment ces informations à la console sont mises en évidence dans la boîte de code ci-dessus. De toute façon, je vais travailler pour réparer et nettoyer. – xmrazak

Répondre

3

à la sortie dans un fichier que vous feriez quelque chose comme

import speech_recognition as sr 
r = sr.Recognizer() 
m = sr.Microphone() 


try: 
    with m as source: r.adjust_for_ambient_noise(source) 

     while True: 

    with m as source: audio = r.listen(source) 
    print("") 

    try: 

     value = r.recognize_google(audio) 

     if str is bytes: 
      result = u"{}".format(value).encode("utf-8") 

     else: 
      result = "{}".format(value) 

     with open("outputs.txt","a") as f: 
      f.write(result) 
     print(result) 

    except sr.UnknownValueError: 
     print("") 
    except sr.RequestError as e: 
     print("{0}".format(e)) 
    except KeyboardInterrupt: 
     pass 

Ce que mon plus with open ... fait est append dans un fichier. with x as y: est un moyen python de créer un x en tant que y que vous n'utiliserez que dans ce peu de script. open("all_outputs.txt","a") ouvre le fichier all_outputs.txt en tant que fichier de sortie (il le crée s'il n'existe pas) et "a" le définit en tant qu'ajout, de sorte qu'il ajoute simplement ce que vous écrivez à la fin. f.write(result) écrit votre résultat dans ce fichier de sortie.

+0

Un grand merci pour votre réponse! Quand j'essaie d'ajouter ce morceau pour le script (avec open ...) Il se bloque toujours immédiatement. La fenêtre cmd s'ouvre puis se ferme, et il n'y a même pas le temps de faire une entrée. J'ai essayé d'autres exemples sur le web, mais ça finit toujours par être le même. Le script d'écriture fonctionne bien sûr seul. – xmrazak

+0

Aha, on dit 'format incohérent' dans la milliseconde que la fenêtre clignote. D'une façon ou d'une autre, la mise en forme du code le gâche toujours, mais peu importe ce que j'essaie de résoudre, cela n'aide pas. – xmrazak

+0

J'ai téléchargé un IDE et joué autour un peu, et miraculeusement l'a réparé. – xmrazak