Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android qpython3中的离线语音识别_Android_Python_Qpython_Qpython3 - Fatal编程技术网

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