Как получить ввод с клавиатуры, используя диалоговое окно в эмуляторе Pepper? (Android Studio)

Я использую студию Android, и мне нужно имитировать разговор с эмулятором Pepper, используя его диалоговое окно. Я использую следующий код, чтобы подключиться к эмулятору перца и поговорить с ним:

import qi
import argparse
import sys
import time
import os



def main():
    parser = argparse.ArgumentParser()
    parser.add_argument("--pip", type=str, default=os.environ['PEPPER_IP'],
                    help="Robot IP address.  On robot or Local Naoqi: use '127.0.0.1'.")
    parser.add_argument("--pport", type=int, default=9559,
                    help="Naoqi port number")
    parser.add_argument("--sentence", type=str, default="hello",
                    help="Sentence to say")
    parser.add_argument("--language", type=str, default="English",
                    help="language")
    parser.add_argument("--speed", type=int, default=100,
                    help="speed")

    args = parser.parse_args()
    pip = args.pip
    pport = args.pport
    strsay = args.sentence
    language = args.language
    speed = args.speed

    #Starting application
    try:
       connection_url = "tcp://" + pip + ":" + str(pport)
       app = qi.Application(["Say", "--qi-url=" + connection_url ])
    except RuntimeError:
       print ("Can't connect to Naoqi at ip \"" + pip + "\" on port " + str(pport) +".\n"
           "Please check your script arguments. Run with -h option for help.")
       sys.exit(1)

     app.start()
     session = app.session

     tts_service = session.service("ALTextToSpeech")

     tts_service.setLanguage(language)
     tts_service.setVolume(1.0)
     tts_service.setParameter("speed", speed)
     tts_service.say(strsay)
     print "  -- Say: "+strsay

     tts_service.say("what's your name?")
     print " --Say: "+ "what's your name?"


     person = raw_input('name: ') #get input from the keyboard using terminal, but I need to take input from dialog view of pepper emulator

     tts_service.say("Hi: "+person)
     print " --Say: "+ "Hi "+ person

if __name__ == "__main__":
     main()

В коде указано tts_service.say("Hi: "+person), что он используется для отображения беседы в диалоговом окне. Есть ли что-то подобное для получения информации из диалогового окна? В разговоре я использовал функцию raw_input, но она принимает ввод из терминала, а не из диалогового окна.


person Gold    schedule 05.07.2020    source источник


Ответы (1)


Начиная с NAOqi 2.9, диалоги должны быть написаны с использованием API Chat и QiChatbot. Они связаны с диалоговым окном, поэтому вы сможете использовать его для имитации речевого ввода.

Ознакомьтесь с этим руководством о том, как написать простой диалог в приложении на базе Android, а не в Python. Существует образец проекта, который вы можете клонировать, чтобы опробовать его напрямую.

person Victor Paléologue    schedule 07.07.2020