본문 바로가기

로봇/Temi

Temi 로봇 음성 인식 API

728x90
반응형

Temi's Speech flow

  • Wake Up("Hey Temi!")
  • ASR(Automatic Speech Recognition) 자동 음성 인식
  • NLP(Natural language processing) 자연어 처리
  • TTS(Text to Speech)

 

 


 

WakeUp


Wake up은 "Hey, Temi" 했을 때 말하기 모드, 또는 테미의 청취 모드가 켜지는 상황이다.

void wakeup() 
Temi를 Wake Up 시킨다.
robot.wakeup();

 

String wakeupWord()
Temi를 Wake Up 시키는 단어를 얻는다.
String wakeWord = robot.wakeupWord();
  • Hey, temi
  • Ding Dang
  • Alexa

wakeup word를 얻는 또다른 방법은 onWakeupWord 매서드에서 wakeupWord를 출력해보면 된다.

void onWakeupWord(String wakeupWord, int direction)
Wake up시 WakeupWordListener에 의해 들어오는 매서드

 

@Override
    public void onWakeupWord(String wakeupWord, int direction) {
        Log.d("onWakeupWord", "wakeupWord = " + wakeupWord);

    }
  • direction은 어디서 단어가 들렸는지를 나타낸다. (0-360의 각도)
  • 0:앞, 90:왼쪽, 180:뒤, 270:오른쪽

 


 

ASR(Automatic Speech Recognition) 


ASR로 테미에게 말 한 단어를 볼 수 있다.

void onAsrResult(@NonNull String asrResult)
Wake up후 테미에게 말했을 때  AsrListener에 의해 들어오는 매서드. 테미에게 말 한 단어를 볼수 있다.
<meta-data android:name="@string/metadata_kiosk" android:value="TRUE" />
<meta-data android:name="@string/metadata_override_nlu" android:value="TRUE" />
AndroidMenifest에 위 두줄 추가 해야함
@Override
public void onAsrResult(@NonNull String asrResult){
   Log.d("onAsrResult", "asrResult = " + asrResult);
   if(asrResult.contains("날씨")){ //특정 단어가 들렸을 때 프로그래밍 가능
       robot.speak(TtsRequest.create("날씨가 좋네요.", true));
   }

}

 

 


 

NLP(Natural language processing)


 

 


 

TTS(Text to Speech)


void onTtsStatusChanged(TtsRequest ttsRequest)

테미가 TTS를 한 후 들어오는 매서드.

사용자간의 대화가 아닌, robot.speak(TtsRequest.create("speechMsg",trueorfalse));를 통해 tts를 거쳤을 때 들어온다.

@Override
  public void onTtsStatusChanged(TtsRequest ttsRequest) {
     // Do whatever you like upon the status changing. after the robot finishes speaking
     Log.d("TtsStatusChanged","tts 상태 변화");
}

 

 


 

728x90
반응형

'로봇 > Temi' 카테고리의 다른 글

Temi 로봇 Users&Telepresence API  (0) 2020.04.24
Temi 로봇 UI 관련 API  (0) 2020.02.21