0

Pythonで音声認識アプリを構築しようとしていますが、すべて正常に動作しますが、プログラムを実行しているとき、最初のIf条件は入力が何であれ常に実行されます。

import speech_recognition as sr
from gtts import gTTS
import os
from google_speech import Speech
import webbrowser

def speech():
    while True:
        try:
            with sr.Microphone() as source:

                r = sr.Recognizer()
                audio = r.listen(source,timeout=3, phrase_time_limit=3)
                x = r.recognize_google(audio)
                print(x)
                if 'hello' or 'Hello' or 'Hi' in x:
                    speech=Speech('Hello,How are you?','en')
                    speech.play()           

                    print('Input: ',x)
                    print('output: Hello,How are you?',)

                elif 'omkara' or 'Omkara' in x:
                    speech=Speech('Playing Omkara song on Youtube','en')
                    speech.play()

                    webbrowser.get('/usr/bin/google-chrome').open('https://youtu.be/NoPAKchuhxE?t=21')

        except sr.UnknownValueError:
            print("No clue what you said, listening again... \n")
            speech()


if __name__ == '__main__':
    print('Executine Voice based commands \n')
    speech()

これは、プログラムを継続的に繰り返すために使用した私のコードですが、最初のif条件では、入力に「Hello」、「Hi」がある場合にのみ実行する必要があります。初めて「こんにちは」と言うと、それが有効な場合、プログラムが「お元気ですか」などの別の入力で再びループすると、最初のIF条件が実行されます。誰か助けてください.ありがとう.

4

2 に答える 2