2017-08-15 6 views
1

Je travaille sur un projet pour que l'ordinateur réponde quand je lui donne des commandes. Je viens juste de commencer, mais quand je lance le code, il ne répond pas de la manière dont je m'attends à ce qu'il réagisse. Voici mon code:Vérifiez à l'intérieur que la boucle n'est pas exécutée

from pocketsphinx import LiveSpeech 
import os 
for phrase in LiveSpeech(): print(phrase) 
if phrase == 'oh' : 
    os.system('espeak' ' "hi"') 

J'ai reçu une erreur lors de l'exécution de ce code. Voici l'erreur:

Traceback (most recent call last): 
    File "xxt", line 4, in <module> 
    print(phrase) 
    File "/Library/Python/2.7/site-packages/pocketsphinx/__init__.py", line 93, in __str__ 
    return self.hypothesis() 
    File "/Library/Python/2.7/site-packages/pocketsphinx/__init__.py", line 126, in hypothesis 
    hyp = self.hyp() 
    File "/Library/Python/2.7/site-packages/pocketsphinx/pocketsphinx.py", line 359, in hyp 
    return _pocketsphinx.Decoder_hyp(self) 
    File "/Library/Python/2.7/site-packages/pocketsphinx/__init__.py", line 225, in stop 
    raise StopIteration 
StopIteration 

Merci, Aditya

+1

Ceci est peut-être trop simple, mais êtes-vous sûr que votre instruction 'if' est en cours d'exécution dans votre boucle' for'? Il semble que votre boucle 'for' imprime simplement chaque phrase sans vérifier si la valeur de la phrase est« oh ». Essayez d'ajouter une nouvelle ligne avant 'print' et de mettre cette ligne en retrait, ainsi que les deux lignes sous-jacentes à imbriquer sous la boucle' for'. – cole

+0

@cole Merci, mais cela ne fonctionne pas – Aditya

+0

Bonjour? N'importe qui? – Aditya

Répondre

1

En effet, l'instruction if est pas dans la boucle, le corps de la boucle est la déclaration d'impression

for phrase in LiveSpeech(): 
    print(phrase) 
    if phrase == 'oh' : 
     os.system('espeak' ' "hi"') 

c'est ce qu'il devrait ressembler à

+0

Sur mon ordinateur, cela ne fonctionne pas. – Aditya

+0

Vous devez utiliser des onglets. C'est ce que Python utilise pour résoudre la portée – MatTheWhale

+0

@MatTheWhale Je ne parle pas de ça, la réponse ci-dessus ne fonctionne pas sur mon ordinateur. – Aditya