PyAudioがインストールされた状態でPython 2.7で次のコードを実行しています。
import speech_recognition as sr
r = sr.Recognizer()
with sr.Microphone() as source: # use the default microphone as the audio source
audio = r.listen(source) # listen for the first phrase and extract it into audio data
try:
print("You said " + r.recognize(audio)) # recognize speech using Google Speech Recognition
except LookupError: # speech is unintelligible
print("Could not understand audio")
出力は点滅するポインタを示します。それでおしまい。私はこれに不慣れなので、助けてください。
考えられる理由は、_recognizer_instance.energy_threshold
_プロパティが高すぎて開始できない値に設定されている可能性があることです。このしきい値を下げるか、recognizer_instance.adjust_for_ambient_noise(source, duration = 1)
を呼び出す必要があります。あなたはそれについてもっと学ぶことができます 音声認識
同じ問題を次のように解決しました(ノイズ抑制)。「リッスン」機能には環境ノイズの問題があります。したがって、実行中のコードは点滅して待機しているだけです。
この周囲ノイズ抑制/調整を使用してください。 r.adjust_for_ambient_noise(source, duration=5)
参照 2017年3月28日火曜日Python PyAudioおよびPocketsphinxを使用 での簡単な音声認識
交換してみましたか
print("You said " + r.recognize(audio))
except LookupError:
print("Could not understand audio")
と
text = r.recognize_google(audio)
print("You said : {}".format(text))
text = r.recognize_google(audio)
except:
print("Sorry could not recognize your voice")
以下のコマンドを実行して、pyaudio.hがインストールされていることを確認します
Sudo apt-get install portaudio19-dev python-pyaudio python3-pyaudio
マイクの入力音量を確認してください。 ubuntuではデフォルトで0に設定されています(私の場合)。プログラムがaudio = r.listen(source)
の行で動かなくなったため、これは単にマイクが音声入力を聞くことができないことを意味します。お役に立てれば。
Bro最初にマイクがオンになっているかどうかを確認する必要があります。
例:Cortanaで自分の声が認識されない場合は、このビデオを確認してください
https://www.youtube.com/watch?v=2WkiFqDYZ-c
私の問題はあなたのようなもので、私は間違いなくそれを解決しました。ありがとうございました
Tusharの答えに加えて、より良い外部USBマイクを試すことをお勧めします。 PyAudioは、シンプルな内蔵ラップトップマイクで問題が発生する可能性があります。
問題は期間にあると思います。音声認識エンジンに一定の期間を設定すると、問題は解決されます。次のコードを試してください。
import Speech_recognition as sr r = sr.Recognizer() with sr.Microphone()as source: talk(sen) print ( "listening ...") audio = r.record(source、duration = 3) try: str = r.recognize_google(audio) print(str) ただし: print( "エラーが発生しました!")
ちょうど試して;
pip install sounddevice
できます。
追加してみてください
r.adjust_for_ambient_noise(source,duration=1)
ここで、rは次のような認識インスタンスです。
import speech_recognition as sr
r=sr.Recognizer()
print(sr.Microphone.list_microphone_names())
with sr.Microphone() as source:
r.adjust_for_ambient_noise(source,duration=1)
# r.energy_threshold()
print("say anything : ")
audio= r.listen(source)
try:
text = r.recognize_google(audio)
print(text)
except:
print("sorry, could not recognise")
最初にこれらのものをインストールする必要があるかもしれません:
pip install pyaudio
pip install --upgrade pyaudio
pip install wheel
pip install google-api-python-client
Sudo apt-get install flac
pip install monotonic
pip install SpeechRecognition
その後、サイトを参照してください( https://realpython.com/python-speech-recognition/ )それはあなたが望むものを明確に説明します。
ここに、そのサイトから編集したコードを添付します。私は新しいので完璧ではありませんが、試してみました。これは天気をチェックするためのもので、音声入力は私が与えたテキストに似ており、あなたが言ったことを印刷します。
#!/usr/bin/ python
import time
import speech_recognition as sr
def recognize_speech_from_mic(recognizer, microphone):
"""Transcribe speech from recorded from `microphone`.
Returns a dictionary with three keys:
"success": a boolean indicating whether or not the API request was
successful
"error": `None` if no error occured, otherwise a string containing
an error message if the API could not be reached or
speech was unrecognizable
"transcription": `None` if speech could not be transcribed,
otherwise a string containing the transcribed text
"""
# check that recognizer and microphone arguments are appropriate type
if not isinstance(recognizer, sr.Recognizer):
raise TypeError("`recognizer` must be `Recognizer` instance")
if not isinstance(microphone, sr.Microphone):
raise TypeError("`microphone` must be `Microphone` instance")
# adjust the recognizer sensitivity to ambient noise and record audio
# from the microphone
with microphone as source:
recognizer.adjust_for_ambient_noise(source)
audio = recognizer.listen(source)
# set up the response object
response = {
"success": True,
"error": None,
"transcription": None
}
try:
response["transcription"] = recognizer.recognize_google(audio)
except sr.RequestError:
# API was unreachable or unresponsive
response["success"] = False
response["error"] = "API unavailable"
except sr.UnknownValueError:
# speech was unintelligible
response["error"] = "Unable to recognize speech"
return response
if __name__ == "__main__":
NUM_GUESSES = 1
Prompt_LIMIT = 2
# create recognizer and mic instances
recognizer = sr.Recognizer()
microphone = sr.Microphone()
Word = "hello world"
time.sleep(3)
for i in range(NUM_GUESSES):
for j in range(Prompt_LIMIT):
print('Guess {}. Speak!'.format(i+1))
guess = recognize_speech_from_mic(recognizer, microphone)
if guess["transcription"]:
break
if not guess["success"]:
break
print("I didn't catch that")
# if there was an error, stop the game
if guess["error"]:
print("ERROR: {}".format(guess["error"]))
break
# show the user the transcription
print("You said: {}".format(guess["transcription"]))
# determine if guess is correct and if any attempts remain
guess_is_correct = guess["transcription"].lower() == Word.lower()
user_has_more_attempts = i < NUM_GUESSES - 1
if guess_is_correct:
print("Correct!".format(Word))
break
Elif user_has_more_attempts:
print("Incorrect. Try again.\n")
else:
print("Sorry, output is not similar to '{}'.".format(Word))
break
インデントの中にTryandExceptを入れます。
これが私の作業コードです:-
while True:
r = sr.Recognizer()
with sr.Microphone() as source:
print("Say Something")
audio=r.listen(source)
try:
print(r.recognize_google(audio),"\n")
except:
pass