'嘿siri'喜欢命令行python应用程序中的hotword

时间:2018-03-11 10:33:19

标签: python terminal console-application speech-recognition

我正在使用speech_recognition和google gTTS库创建一个基于python的命令行个人助理。我目前正在实施的热门话题' Hey Siri'不断运行while循环并在每个循环中进行监听。

但它很慢而且不是很连续。因此它多次错过演讲,是否有更好的选择?

while True:
    listen()

def listen():
    with sr.Microphone() as source:
        audio = Listen.r.listen(source)
    try:
        recog_speech = str(Listen.r.recognize_google(audio))
        if 'Hey Siri' in recog_speech:
            print('I am listening')
            #listen and do stuff

    except Exception as e:
        print('Something bad happened')

解决问题的一个可能的解决方案是不说话时不运行循环

2 个答案:

答案 0 :(得分:0)

根据@handle的评论, 一个不拾取背景噪音并避免不必要地运行循环的解决方案是根据我SpeechRecogntion pypi的语音识别文档设置能量阈值。 此外,我不得不在Linux中调整麦克风的输入电平,以免放大输入。

import speech_recognition as sr
r = sr.Recognizer()
r.energy_threshold = 4000

答案 1 :(得分:0)

在我看来,这可行:

with sr.Microphone() as source:
    #Calibrates the microphone to differentiate ambient noise from the voice
    r.adjust_for_ambient_noise(source)
    print("Aguardando por comandos de voz...")
    audio = r.listen(source)