Pepper やNaoで使用されているNaoqi OSのメモです。

NAOqi Audio - 概要 | API | チュートリアル


This tutorial explains how to recognize words from vocabulary using the embedded speech recognition.
📝メモ
All the examples provided are written in Python

Creating a proxy on the module


Before using the ASR commands, you need to create a proxy on the ASR module.
# Creates a proxy on the speech-recognition module
from naoqi import ALProxy

IP = "<ROBOT_IP>"
asr = ALProxy("ALSpeechRecognition", IP, 9559)

Changing the language of the speech recognition engine


The language of the speech recognition engine can be changed using the setLanguage function. The list of the available languages can be obtained with the getAvailableLanguages function.

# Example: set the language of the speech recognition engine to English:
asr.setLanguage("English")

Adding words to the vocabulary


You need to set the list of words that should be recognized by the speech recognition engine before you start recognition. Word spotting is disabled by default when using function setWordListAsVocabulary.

# Example: Adds "yes", "no" and "please" to the vocabulary
vocabulary = ["yes", "no", "please"]
asr.setVocabulary(vocabulary, False)
# Or, if you want to enable word spotting:
#asr.setVocabulary(vocabulary, True)

Starting and stopping the speech recognition engine


To start the speech recognition engine, you have to subscribe to the module. You can stop it using the unsubscribe method.
# Start the speech recognition engine with user Test_ASR
asr.subscribe("Test_ASR")
# Stop the speech recognition engine with user Test_ASR
asr.unsubscribe("Test_ASR")

Full example


audio_speechrecognition.py
#! /usr/bin/env python
# -*- encoding: UTF-8 -*-

"""Example: Use ALSpeechRecognition Module"""

import qi
import argparse
import sys
import time


def main(session):
    """
    This example uses the ALSpeechRecognition module.
    """
    # Get the service ALSpeechRecognition.

    asr_service = session.service("ALSpeechRecognition")

    asr_service.setLanguage("English")

    # Example: Adds "yes", "no" and "please" to the vocabulary (without wordspotting)
    vocabulary = ["yes", "no", "please"]
    asr_service.setVocabulary(vocabulary, False)

    # Start the speech recognition engine with user Test_ASR
    asr_service.subscribe("Test_ASR")
    print 'Speech recognition engine started'
    time.sleep(20)
    asr_service.unsubscribe("Test_ASR")


if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument("--ip", type=str, default="127.0.0.1",
                        help="Robot IP address. On robot or Local Naoqi: use '127.0.0.1'.")
    parser.add_argument("--port", type=int, default=9559,
                        help="Naoqi port number")

    args = parser.parse_args()
    session = qi.Session()
    try:
        session.connect("tcp://" + args.ip + ":" + str(args.port))
    except RuntimeError:
        print ("Can't connect to Naoqi at ip \"" + args.ip + "\" on port " + str(args.port) +".\n"
               "Please check your script arguments. Run with -h option for help.")
        sys.exit(1)
    main(session)

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu

NAOqi - Developer guide

Creating an application?

Programming for a living robot?

Other tutorials?

Choregraphe Suite?

どなたでも編集できます