Beispiel #1
0
def RunSTT(printData):
    pub = rospy.Publisher('/emerald_ai/io/speech_to_text',
                          String,
                          queue_size=10)

    rospy.Subscriber("/emerald_ai/io/hardware_trigger", String, callback)

    rospy.init_node('STT_node', anonymous=True)
    rospy.Rate(10)  # 10hz

    useTrigger = Config().GetBoolean("Application.SpeechToText", "Trigger")
    triggerTime = Config().GetInt("Application.SpeechToText", "TriggerTime")

    sttProvider = Config().Get("SpeechToText", "Provider")  # Google
    if (sttProvider.lower() == "google"):
        provider = Google()

    if (sttProvider.lower() == "microsoft"):
        provider = Microsoft()

    if (sttProvider.lower() == "wit"):
        provider = Wit()

    if (sttProvider.lower() == "watson"):
        return

    print sttProvider.lower()

    while True:
        #rate.sleep()
        if (useTrigger
                and (STTMemory().GetFloat("TriggerTimestamp") + triggerTime) <
                time.time()):
            time.sleep(1)
            continue

        data = provider.Listen()

        if (len(data) == 0):
            if (printData):
                print "None"
            continue

        if (printData):
            print "We got:", data

        FileLogger().Info("STT, RunSTT(), Input Data: {0}".format(data))

        rospy.loginfo("STT|{0}".format(data))
        pub.publish("STT|{0}".format(data))
Beispiel #2
0
def RunSTT():
    sttProvider = Config().Get("SpeechToText", "Provider")
    if(sttProvider.lower() == "watson"):
        provider = Watson()
        provider.Listen()