Android qpython3中的离线语音识别
我一直在尝试制作一个使用Android qpython3中的离线语音识别,android,python,qpython,qpython3,Android,Python,Qpython,Qpython3,我一直在尝试制作一个使用sl4a.Android.recognizeSpeech函数的qpython程序。该功能在线运行良好 在我的手机设置中,我打开并下载了离线语音识别,谷歌现在可以在离线状态下正常工作,但python语音根本不起作用,每次都要求我再试一次 示例代码: import sl4a import time droid = sl4a.Android() def speak(text): droid.ttsSpeak(text) while droid.ttsIsS
sl4a.Android.recognizeSpeech
函数的qpython程序。该功能在线运行良好
在我的手机设置中,我打开并下载了离线语音识别,谷歌现在可以在离线状态下正常工作,但python语音根本不起作用,每次都要求我再试一次
示例代码:
import sl4a
import time
droid = sl4a.Android()
def speak(text):
droid.ttsSpeak(text)
while droid.ttsIsSpeaking()[1] == True:
time.sleep(1)
def listen():
return droid.recognizeSpeech('Speak Now',None,None)
def login():
speak('Passphrase, please')
try:
phrase = listen().result.lower()
except:
phrase = droid.dialogGetPassword('Passphrase').result
print(phrase)
if phrase == 'pork chops':
speak('Welcome')
else:
speak('Access Denied')
exit(0)
login()
返回索引号为1的已识别语音的数组。所以如果你想访问它,你必须输入
return droid.recognizeSpeech("foo", None, None)[1]
事实上,以上这些都不适合我。所以我这样解决:
x, result, error = droid.recognizeSpeech("Speak")
结果变量存储从用户识别的语音
例如:
import sl4a
import time
droid = sl4a.Android()
def Speak(talk):
try:
droid.ttsSpeak(talk)
while droid.ttsIsSpeaking()[1] == True:
time.sleep(2)
except:
droid.ttsSpeak("nothing to say")
def listen():
global result,error
time.sleep(1)
x, result, error = droid.recognizeSpeech("Speak")
while True:
try:
listen()
except:
print(error)
try:
if len(str(result)) > 0:
print(result)
if result == "how old are you":
Speak("I'm 1 year old")
elif result is None:
break
else:
Speak("I heard " + result)
except Exception as e:
print(e)
break
import sl4a
import time
droid = sl4a.Android()
def Speak(talk):
try:
droid.ttsSpeak(talk)
while droid.ttsIsSpeaking()[1] == True:
time.sleep(2)
except:
droid.ttsSpeak("nothing to say")
def listen():
global result,error
time.sleep(1)
x, result, error = droid.recognizeSpeech("Speak")
while True:
try:
listen()
except:
print(error)
try:
if len(str(result)) > 0:
print(result)
if result == "how old are you":
Speak("I'm 1 year old")
elif result is None:
break
else:
Speak("I heard " + result)
except Exception as e:
print(e)
break