首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python语音识别软件,带有Google的API in noise

Python语音识别软件,带有Google的API in noise
EN

Stack Overflow用户
提问于 2014-12-09 13:41:12
回答 1查看 3.1K关注 0票数 1

我最近用Python为我设置了一个项目,创建一个语音控制的脚本。

我一直在使用googles API来做这件事,但是通过使用这个API,我注意到除非它是完全安静的,否则它永远不会停止监听,这会阻止你在有些嘈杂的地方运行命令,或者与周围的人交谈。

这就是我所拥有的:

代码语言:javascript
复制
import speech_recognition as sr
import pyttsx
r = sr.Recognizer()
engine = pyttsx.init()
listen = False

# Define methods

while True:
while listen == False:
    with sr.Microphone() as source:
        audio = r.listen(source)

    try:
        if (r.recognize(audio) == "start") :
            listen = True
            print("Listening...")
            break
        else:
            continue
    except LookupError:
        continue

while listen == True:
    with sr.Microphone() as source:
        audio = r.listen(source)
    print("1")
    try:
        print("2")
        if (r.recognize(audio) == "stop") :
            listen = False
            print("Listening stopped. Goodnight")
            break
        else:
            print("You said " + r.recognize(audio))
    except LookupError:
        engine.say('Audio cannot be read!')
        engine.runAndWait()
        print("Could not understand audio")

导入PYTTSX和SpeechRecognition(使用googles API)。现在,我如何才能让它运行得更像Google,在任何情况下,在任何情况下,无论有没有背景噪音,我都可以说任何话,并在我说完话后让它停止监听?谢谢。

EN

回答 1

Stack Overflow用户

发布于 2015-09-07 19:46:26

我刚刚调整了你的代码,它现在工作得很好。抱歉,我不是python的新手:这里的"pinger“是一个保存音频的临时变量,您应该使用String.lower()将从google获得的字符串转换为较低的字符,以便与测试字符串匹配。

代码语言:javascript
复制
import speech_recognition as sr
import pyttsx
r = sr.Recognizer()
engine = pyttsx.init()
listen = False

# Define methods

while True:
    while listen == False:
        try:
            with sr.Microphone() as source:
                r.adjust_for_ambient_noise(source)
                audio = r.listen(source)
                pinger=r.recognize_google(audio)
            try:
                if (pinger.lower() == "start") :
                    listen = True
                    print("Listening...")
                    break
                else:
                    continue
            except LookupError:
                continue
        except sr.UnknownValueError:
            continue

    while listen == True:
        print "2nd part"
        try:
            with sr.Microphone() as source:
                r.adjust_for_ambient_noise(source)
                audio = r.listen(source)
                pinger=r.recognize_google(audio)
            print("1")

            print("2")
            if (pinger.lower() == "stop") :
                listen = False
                print("Listening stopped. Goodnight")
                break
            else:
                print("You said " + pinger)
        except LookupError:
            engine.say('Audio cannot be read!')
            engine.runAndWait()
            print("Could not understand audio")
        except sr.UnknownValueError:
            print("Google Speech Recognition could not understand audio")
            continue
        except sr.RequestError:
            print("Could not request results from Google Speech Recognition service")
            continue
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27372204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档