当说Python时如何开始录制?

时间:2018-12-09 09:53:25

标签: python python-3.x speech

我正在尝试制作一个使用语音识别的程序。现在,我遇到了一个问题,那就是您必须按下按钮或Enter才能启动语音识别。您是否可以说出一个短语(类似于Hey Google)来开始识别Python 3中的语音?
这是我的代码:

录制音频代码:

r = sr.Recognizer()

with sr.Microphone() as source:
    audio = r.listen(source)
x = r.recognize_google(audio)

print("I'm listening!")

try:
    print("You said: " + r.recognize_google(audio))
except speech_recognition.UnknownValueError:
    print("I am sorry but I couldn't understand you, try again.")
except speech_recognition.RequestError as e:
    print("Could not request results from Google Speech Recognition service; {0}".format(e))

谢谢!

2 个答案:

答案 0 :(得分:5)

是的,从本质上讲,您必须将识别分为两部分:关键字识别(仅侦听关键字)和主要识别(识别用户在关键字之后说的话)。要知道这意味着您的程序将一直在监听。

对于关键字识别,可以使用Recognizer()的{​​{1}}方法并在提供的任何回调中扫描关键字。如果找到了关键字,则调用listen_in_background

由于收听关键字将要求您的程序不断收听和识别,因此您不想使用任何需要互联网连接的语音识别API(必应,Google,Watson,Houndify等)。这是因为所有这些都有每月的API限制,您可以轻松解决这些限制。您想要保存这些API以便实际识别。我相信您唯一的离线选项是使用Recognizer().listen(source)或snowboy热门单词检测。我从未真正使用过Snowboy(尽管我听说它相当不错),因为它在Windows上不起作用(或者至少在我编写程序时不起作用),但是Sphinx具有各种关键字检测工具。

基本上,您传递sphinx_recognizer关键字,以及通过元组选择这些关键字应该有多敏感,并且它将尝试着重于在语音中找到那些单词。请注意,关键字的敏感性越高,误报率就越高。

这里是一个例子:

recognize_sphinx

在使用Speech_recognition库时,此链接非常有用:

https://github.com/Uberi/speech_recognition/blob/master/reference/library-reference.rst

答案 1 :(得分:0)

代码:

some_func(int i)