Skip to content

Speech

temi's speech flow is comprised of four main components - wakeup, ASR (Automatic Speech Recognition), NLP (Natural language processing) and TTS (text to speech).

temi's SDK provides developers tools to utilize, customize and listen to any of the components.


API Overview

ReturnMethodDescription
voidspeak(TtsRequest ttsRequest)Ask temi to speak(play TTS)
voidcancelAllTtsRequests()cancel TTS request
voidwakeup()Wake up temi
StringgetWakeupWord()Get current wake-up word
voidaskQuestion(String question)temi speak actively and wait for user's reply
voidfinishConversation()Finish a conversation(Stop recording for ASR)
voidstartDefaultNlu(String text, SttLanguage sttLanguage)Trigger default NLU service
booleansetTtsVoice(TtsVoice ttsVoice)Set TTS voice, speed, and pitch
TtsVoicegetTtsVoice()Trigger default NLU service
intsetAsrLanguages()Set system ASR languages
InterfaceDescription
TtsListenerTTS status listener
WakeupWordListenerWake-up event listener
AsrListenerASR result listener
ConversationViewAttachesListenerConversation view attaches listener
OnConversationStatusChangedListenerListener for status chagned of Conversation view
OnTtsVisualizerWaveFormDataChangedListenerListener for wave form data changes of TTS audio visualizer
OnTtsVisualizerFftDataChangedListenerListener for fft data changes of TTS audio visualizer
ModelDescription
TtsRequestTTS request instance
TtsVoiceTTS voice configuration
GenderTTS voice gender
SttLanguageASR / STT languages
WakeupRequestWakeup behavior
WakeupOriginWakeup Origin

Methods

speak()

Use this method to let temi speak something that from the parameter ttsRequest of this method.

From 134 verison, if the TtsRequest.id is the same, the requested will be queued when there is an ongoing TTS.

  • Parameters

    ParameterTypeDescription
    ttsRequestTtsRequestAn object of type TtsRequest in this object you will add the text to be spoken.
  • Prototype

    java
    void speak(TtsRequest ttsRequest);
  • Required permissions

    None.

  • Support from

    0.10.36


cancelAllTtsRequests()

Stops currently processed TTS request and empty the queue.

  • Prototype

    java
    void cancelAllTtsRequests();
  • Required permissions

    None.

  • Support from


wakeup()

Use this method to trigger temi's wakeup programmatically.

In 132 version, this method can take an optional list to make temi listen to specific langauges. The languages set will temporarily override setAsrLanguages() for current wake up session. Max. 3 extra languages can be set.

In 133 version there is a new overload method wakeup(SttRequest sttRequest) In 135 version there is a new parameter WakeupRequest

  • Parameters

    ParameterTypeDescription
    languagesList<SttLanguage>Langauges for STT, empty list to use system language. Add in 1.132.0, works with 132 version
    wakeupRequestWakeupRequestControl behavior of wake up. Add in 1.135.1, works with 135 version
    ParameterTypeDescription
    sttRequestSttRequestContains languages, and some experimental paramters, added in 133.
    wakeupRequestWakeupRequestControl behavior of wake up. Add in 1.135.1, works with 135 version
  • Prototype

    java
    void wakeup(List\<SttLanguege> languages, WakeupRequest wakeupRequest);
    
    void wakeup(SttRequest sttRequest, WakeupRequest wakeupRequest);
  • Required permissions

    None.

  • Support from

    0.10.49


getWakeupWord()

Use this method to get temi's wake word assistant.

  • Return

    TypeDescription
    StringWake-up word
  • Prototype

    java
    String getWakeupWord();
  • Required permissions

    None.

  • Support from

    0.10.49


askQuestion()

Use this method to let temi actively speak to the user and wait for the user to answer.

In 133 version, there is an overload method to pass TtsRequest, and SttRequest parameter.

  • Parameters

    ParameterTypeDescription
    questionStringThe text to be spoken
    ParameterTypeDescription
    questionTtsRequestThe text to be spoken, support all TtsRequest parameters added in 133 version.
    sttRequestSttRequestControl the speech in the STT session after the TTS, similiar to wakeup(SttRequest sttRequest), default is null, added in 133 version.
  • Prototype

    java
    void askQuestion(String question);
    
    void askQuestion(TtsReqeust question, SttRequest sttRequest);
  • Required permissions

    None.

  • Support from

    0.10.63

  • Recommendation

    A custom dialog flow can be realized by cooperating with AsrListener. For details, please refer to Sample code.


finishConversation()

Use this method to finish the conversation (Stop recording for ASR).

  • Prototype

    java
    void finishConversation();
  • Required permissions

    None.

  • Support from

    0.10.63


startDefaultNlu()

Use this method to trigger the system's default natural language understanding (NLU). If you want to directly trigger system skills such as weather or music in your skill, you can directly pass in "What's the wheather today" or "Play Music" as a parameter and invoke this method to achieve it.

In 1.133.0 version. It will allow to assign system langauge, to trigger an NLU recognition of target language.

  • Parameters

    ParameterTypeDescription
    textStringNatural language text to be processed
    sttLanguageSttLanguageLanguage of NLU, default as SttLangauge.SYSTEM, added in 1.133.0
  • Prototype

    java
    void startDefaultNlu(String text, SttLanguage sttLanguage);
  • Required permissions

    Selected Kiosk

  • Support from

    0.10.70

  • Note

    This interface can only be called once every 5 seconds.


setTtsService()

Use this method to configure your own TTS service. After the correct configuration, temi's TTS function requirements will depend on this TTS service. If you want to use temi's original TTS service, call method speak() to do that.

  • Parameters

    ParameterTypeDescription
    ttsServiceITtsServiceThe instance of class that implemented ITtsService. If the passed paramenter is null, the TTS service will be unbound.
  • Prototype

    java
    void setTtsService(ITtsService ttsService);
  • Required permissions

    com.robotemi.sdk.metadata.OVERRIDE_TTS declared in the manifest to override original TTS

  • Support from

    0.10.77


publishTtsStatus()

Use this method to publish the TTS status from your TTS service to temi.

  • Parameters

    ParameterTypeDescription
    ttsReqeustTtsRequestCurrent instance of TtsRequest (need to include status))
  • Prototype

    java
    void setTtsService(TtsRequest ttsReqeust);
  • Required permissions

    com.robotemi.sdk.metadata.OVERRIDE_TTS declared in the manifest to override original TTS

  • Support from

    0.10.77


setTtsVoice()

Set TTS voice, speed and pitch. Only available for temi Global version.

  • Parameters

    ParameterTypeDescription
    ttsVoiceTtsVoiceTtsVoice configuration
  • Return

    TypeDescription
    booleantrue if set is successful
  • Prototype

    java
    boolean setTtsVoice(TtsVoice ttsVoice);
  • Required permissions

    SETTINGS

  • Support from

    1.129.0


getTtsVoice()

Get TTS voice, speed and pitch. Only available for temi Global version.

  • Return

    TypeDescription
    TtsVoicecurrent TTS voice configuration
  • Prototype

    java
    TtsVoice getTtsVoice();
  • Support from

    1.129.0


setAsrLanguages()

Change ASR langauges, this settings will persist when this kiosk app is running. Max. 3 extra languages can be set.

This languages can be temporarily overriden by wakeup()

  • Return

    TypeDescription
    int0 OK, -1 invalid, 403 no permission
  • Prototype

    java
    int setAsrLanguages(List\<SttLanguage> languages);
  • Required permissions

    KIOSK

  • Support from

    1.132.0


Interfaces

TtsListener

Set your context to implement this listener and add the override method to get TTS status changes.

Prototype

java
package com.robotemi.sdk;

interface Robot.TtsListener {}

Abstract methods

  • Parameters

    ParameterTypeDescription
    ttsRequestTtsRequestTTS request object that holds its text content and status
  • Prototype

    java
    void onTtsStatusChanged(TtsRequest ttsRequest);

Method for adding listener

  • Parameters

    ParameterTypeDescription
    listenerTtsListenerAn instance of a class that implements this interface
  • Prototype

    java
    void addTtsListener(TtsListener listener);

Method for removing listener

  • Parameters

    ParameterTypeDescription
    listenerTtsListenerAn instance of a class that implements this interface
  • Prototype

    java
    void removeTtsListener(TtsListener listener);
  • Support from

    0.10.36


WakeupWordListener

Set your context to implement this listener and add the override method to get wake word value when triggered by the user.

Prototype

java
package com.robotemi.sdk;

interface Robot.WakeupWordListener {}

Abstract methods

  • Parameters

    ParameterTypeDescription
    wakeupWordStringThe wakeup word used to trigger
    directionint
    • 0 - temi was triggered from the front
    • 90 - temi was triggered from the left
    • 180 - temi was triggered from the back
    • 270 - temi was triggered from the right
    • 555 - cannot detect wakeup direction
    originWakeupOriginThe origin of this wakeup event
  • Prototype

    java
    void onWakeupWord(String wakeupWord, int direction, WakeupOrigin origin);

Method for adding listener

  • Parameters

    ParameterTypeDescription
    listenerWakeupWordListenerAn instance of a class that implements this interface
  • Prototype

    java
    void addWakeupWordListener(WakeupWordListener listener);

Method for removing listener

  • Parameters

    ParameterTypeDescription
    listenerWakeupWordListenerAn instance of a class that implements this interface
  • Prototype

    java
    void removeWakeupWordListener(WakeupWordListener listener);
  • Support from

    0.10.36


AsrListener

Set your context to implement this listener and add the override method to get the ASR result.

From 132 version, both the text and language will be returned.

Prototype

java
package com.robotemi.sdk;

interface Robot.AsrListener {}

Abstract methods

  • Parameters

    ParameterTypeDescription
    asrResultStringThe ASR result
    sttLanguageSttLanguageThe language of the ASR result (Added in 132)
  • Prototype

    java
    void onAsrResult(String asrResult, SttLanguage sttLanguage);

Method for adding listener

  • Parameters

    ParameterTypeDescription
    listenerAsrListenerAn instance of a class that implements this interface
  • Prototype

    java
    void addAsrListener(AsrListener listener);

Method for removing listener

  • Parameters

    ParameterTypeDescription
    listenerAsrListenerAn instance of a class that implements this interface
  • Prototype

    java
    void removeAsrListener(AsrListener listener);
  • Support from

    0.10.53


ConversationViewAttachesListener

Set your context to implement this listener and add the override method to listen if the conversation view attaches.

Prototype

java
package com.robotemi.sdk;

interface Robot.ConversationViewAttachesListener {}

Abstract methods

  • Parameters

    ParameterTypeDescription
    isAttachedbooleantrue means the conversation view attaches, false otherwise
  • Prototype

    java
    void onConversationAttaches(boolean isAttached);

Method for adding listener

  • Parameters

    ParameterTypeDescription
    listenerConversationViewAttachesListenerAn instance of a class that implements this interface
  • Prototype

    java
    void addConversationViewAttachesListenerListener(ConversationViewAttachesListener listener);

Method for removing listener

  • Parameters

    ParameterTypeDescription
    listenerConversationViewAttachesListenerAn instance of a class that implements this interface
  • Prototype

    java
    void removeConversationViewAttachesListenerListener(ConversationViewAttachesListener listener);
  • Support from

    0.10.36


OnConversationStatusChangedListener

Set your context to implement this interface and override its' abstract method to listen to the status and text changes of the Conversation layer.

Note: Only the selected Kiosk App declared in the AndroidManifest.xml file to override the original conversation layer UI can receive the related callback data.

Prototype

java
package com.robotemi.sdk.listeners;

interface OnConversationStatusChangedListener {}

Static constants

All constants here are only for the status of Conversation layer.

ConstantTypeValueDescription
IDLEint0Idle, no useriteraction
LISTENINGint1Listening user's voice
THINKINGint2Doing NLP
SPEAKINGint3Playing TTS

Abstract methods

  • Parameters

    ParameterTypeDescription
    statusintStatus of Conversation layer
    textStringText of Conversation layer
  • Prototype

    java
    void onConversationStatusChanged(int status, String text);

Method for adding listener

  • Parameters

    ParameterTypeDescription
    listenerOnConversationStatusChangedListenerAn instance of a class that implements this interface
  • Prototype

    java
    void addOnConversationStatusChangedListener(OnConversationStatusChangedListener listener);

Method for removing listener

  • Parameters

    ParameterTypeDescription
    listenerOnConversationStatusChangedListenerAn instance of a class that implements this interface
  • Prototype

    java
    void removeOnConversationStatusChangedListener(OnConversationStatusChangedListener listener);
  • Support from

    0.10.72


OnTtsVisualizerWaveFormDataChangedListener

Set your context to implements this interface and override its' abstract method to listen to the wave form data changes of the TTS audio visualizer.

Prototype

java
package com.robotemi.sdk.listeners;

interface OnTtsVisualizerWaveFormDataChangedListener {}

Abstract methods

  • Parameters

    ParameterTypeDescription
    waveFormbyte[]Wave form data
  • Prototype

    java
    void onTtsVisualizerWaveFormDataChanged(byte[] waveForm);

Method for adding listener

  • Parameters

    ParameterTypeDescription
    listenerOnTtsVisualizerWaveFormDataChangedListenerAn instance of a class that implements this interface
  • Prototype

    java
    void addOnTtsVisualizerWaveFormDataChangedListener(OnTtsVisualizerWaveFormDataChangedListener listener);

Method for removing listener

  • Parameters

    ParameterTypeDescription
    listenerOnTtsVisualizerWaveFormDataChangedListenerAn instance of a class that implements this interface
  • Prototype

    java
    void removeOnTtsVisualizerWaveFormDataChangedListener(OnTtsVisualizerWaveFormDataChangedListener listener);
  • Support from

    0.10.72


OnTtsVisualizerFftDataChangedListener

Set your context to implements this interface and override its' abstract method to listen to the fft data changes of the TTS audio visualizer.

Prototype

java
package com.robotemi.sdk.listeners;

interface OnTtsVisualizerFftDataChangedListener {}

Abstract methods

  • Parameters

    ParameterTypeDescription
    fftbyte[]fft data
  • Prototype

    java
    void OnTtsVisualizerFftDataChangedListener(byte[] fft);

Method for adding listener

  • Parameters

    ParameterTypeDescription
    listenerOnTtsVisualizerFftDataChangedListenerAn instance of a class that implements this interface
  • Prototype

    java
    void addOnTtsVisualizerFftDataChangedListener(OnTtsVisualizerFftDataChangedListener listener);

Method for removing listener

  • Parameters

    ParameterTypeDescription
    listenerOnTtsVisualizerFftDataChangedListenerAn instance of a class that implements this interface
  • Prototype

    java
    void removeOnTtsVisualizerFftDataChangedListener(OnTtsVisualizerFftDataChangedListener listener);
  • Support from

    0.10.72


ITtsService

Implement this interface and override the abstract methods, and use method setTtsService() to bind the TTS service.

Prototype

java
package com.robotemi.sdk.voice;

interface ITtsService {}

Abstract methods

speak()

temi will call this method indirectly to play TTS.

  • Parameters

    ParameterTypeDescription
    ttsRequestTtsRequestPending TtsRequest instance
  • Prototype

    java
    void speak(TtsRequest ttsRequest);
cancel()

temi will call this method indirectly to cancel(stop) current TTS.

  • Prototype

    java
    void cancel();
pause()

temi will call this method indirectly to pause current TTS.

  • Prototype

    java
    void pause();
resume()

temi will call this method indirectly to resume current TTS.

  • Prototype

    java
    void resume();
  • Support from

    0.10.77


Models

TtsRequest

Request object passed to temi, which contains all the information temi needs to in order to speak and for the skill to track its' request.

Prototype

java
package com.robotemi.sdk;

class TtsRequest {}

Subclass

  • Status

    • The status currently in use

      Statusdescription
      STARTEDStart playing
      COMPLETEDFinish playing
      ERRORErrors occurred while playing
      NOT_ALLOWEDPlay is not allowed
    • Prototype

      java
      enum Status {
          PENDING,
          PROCESSING,
          STARTED,
          COMPLETED,
          ERROR,
          NOT_ALLOWED;
      }
  • Language

    • Current supported TTS language

      LanguageDescription
      SYSTEM(0)Follow system
      EN_US(1)English (United States)
      ZH_CN(2)Chinese (Mandarin, Simplified)
      ZH_HK(3)Chinese (Cantonese, Traditional)
      ZH_TW(4)Chinese (Taiwanese Mandarin)
      TH_TH(5)Thai (Thailand)
      HE_IL(6)Hebrew (Israel)
      KO_KR(7)Korean (Korea)
      JA_JP(8)Japanese (Japan)
      ID_ID(10)Indonesian (Indonesia)
      DE_DE(11)German (Germany)
      FR_FR(12)French (France)
      FR_CA(13)French (Canada)
      PT_BR(14)Portuguese (Brazil)
      AR_EG(15)Arabic (Egypt)
      RU_RU(18)Russian (Russia)
      IT_IT(19)Italian (Italy)
      PL_PL(20)Polish (Poland)
      ES_ES(21)Spanish (Spain)
      CA_ES(22)Catalan (Spain) (supported from 130 version)
      HI_IN(23)Hindi (supported from 130 version)
      ET_EE(24)Estonian (supported from 131 version)
      TR_TR(25)Turkish (supported from 131 version)
      EN_IN(26)English (India) (supported from 133 version)
      MS_MY(27)Malay (supported from 134 version)
      VI_VN(28)Vietnamese (supported from 134 version)
      EL_GR(29)Greek (supported from 134 version)
    • Prototype

      java
      enum Language {
          SYSTEM(0),
          EN_US(1),
          ZH_CN(2),
          ZH_HK(3),
          ZH_TW(4),
          TH_TH(5),
          HE_IL(6),
          KO_KR(7),
          JA_JP(8),
          IN_ID(9),
          ID_ID(10),
          DE_DE(11),
          FR_FR(12),
          FR_CA(13),
          PT_BR(14),
          AR_EG(15),
          AR_AE(16),
          AR_XA(17),
          RU_RU(18),
          IT_IT(19),
          PL_PL(20),
          ES_ES(21),
          CA_ES(22),
          HI_IN(23),
          ET_EE(24),
          TR_TR(25),
          EN_IN(26),
          MS_MY(27),
          VI_VN(28),
          EL_GR(29);
      }

Attributes

AttributeTypeDescription
idUUIDUnique number that identifies each tts request
speechStringThe text to be spoken
packageNameStringSkill package name so that temi knows who made the request
statusStatusStatus of the request
isShowOnConversationLayerbooleanShould the conversation line be shown when temi speaks the text. Note: Only relevant for 'Hey temi' assistant skills
languageintLanguage
showAnimationOnlybooleantrue if you want to show a face animation while the speech is ongoing.
This only works if there is an assigned interaction animation in temi Settings,
otherwise it will just display the text on screen without a face animation.
Set this as true will override isShowOnConversationLayer if that value is set to false
cachedbooleantrue if you want to have this tts cached. Default as false.
If there is cache, it will be spoken offline.
This is useful for TTS from some sentences you have in the strings.xml (Supported from 129 version)

Static methods

Create a TtsRequest object and pass it to speak(TtsRequest ttsRequest) method to play TTS. Only speech is mandatory. The other parameters are optional.

  • Parameters

    ParameterTypeDescription
    speechStringThe text to be spoken
    isShowOnConversationLayerbooleandefault as true
    languageLanguagedefault as Language.SYSTEM
    showAnimationOnlybooleandefault as false
    cachedbooleandefault as false
  • Return

    TypeDescription
    TtsRequestTTS request object created by this method
  • Prototype

    java
    static TtsRequest create(String speech, boolean isShowOnConversationLayer);

TtsVoice

Tts voice configuration.

Prototype

java
package com.robotemi.sdk.voice.model;

class TtsVoice {}

Attributes

AttributeTypeDescription
genderGenderonly female and male can be used as parameter
speedfloat0.5 - 2.0, stepping by 0.1, default 1.0
pitchint-10 - 10, stepping by 1, default 0

Gender

Tts voice gender.

Prototype

java
package com.robotemi.sdk.constants;

enum class Gender {
  FEMALE, MALE, GIRL, BOY, UNKNOWN
}

SttLanguage

  • Current supported ASR language

    LanguageDescription
    SYSTEM(0)Follow system
    EN_US(1)English (United States)
    ZH_CN(2)Chinese (Mandarin, Simplified)
    JA_JP(3)Japanese (Japan)
    KO_KR(4)Korean (Korea)
    ZH_HK(5)Chinese (Cantonese, Traditional)
    ZH_TW(6)Chinese (Taiwanese Mandarin)
    DE_DE(7)German (Germany)
    TH_TH(8)Thai (Thailand)
    IN_ID(9)Indonesian (Indonesia)
    PT_BR(10)Portuguese (Brazil)
    AR_EG(11)Arabic (Egypt)
    FR_CA(12)French (Canada)
    FR_FR(13)French (France)
    ES_ES(14)Spanish (Spain)
    CA_ES(15)Catalan (Spain)
    IW_IL(16)Hebrew (Israel)
    IT_IT(17)Italian (Italy)
    ET_EE(18)Estonian
    TR_TR(19)Turkish
    HI_IN(20)Hindi, added in 1.133.0 version
    EN_IN(21)English (India), added in 1.133.0 version
    MS_MY(22)Malay, added in 134 version
    VI_VN(23)Vietnamese, added in 134 version
    RU_RU(24)Russian, added in 134 version
    EL_GR(25)Greek, added in 134 version

Prototype

java
enum SttLanguage {
    SYSTEM(0),
    EN_US(1),
    ZH_CN(2),
    JA_JP(3),
    KO_KR(4),
    ZH_HK(5),
    ZH_TW(6),
    DE_DE(7),
    TH_TH(8),
    IN_ID(9),
    PT_BR(10),
    AR_EG(11),
    FR_CA(12),
    FR_FR(13),
    ES_ES(14),
    CA_ES(15),
    IW_IL(16),
    IT_IT(17),
    ET_EE(18),
    TR_TR(19),
    HI_IN(20),
    EN_IN(21),
    MS_MY(22),
    VI_VN(23),
    RU_RU(24),
    EL_GR(25);
}

WakeupRequest

Wakeup request

Prototype

kotlin

data class WakeupRequest(
  val wakeupResponse: Boolean = false
)

Attributes

AttributeTypeDescription
wakeupResponseBooleanwhether wakeup response will be triggered

WakeupOrigin

Wakeup origin

Prototype

kotlin

enum class WakeupOrigin {
  ROBOX,
  ANDROID,
  TOP_BAR,
  SDK,
  ANALOG,
  UNKNOWN,
}

Attributes

AttributeDescription
ROBOXlistening from Robox, apply for V3
ANDROIDlistening from Android, apply for temi GO and temi Platform
TOP_BARtrigger by touch on top bar wake up button
SDKtrigger by SDK wakeup() method from an app
ANALOGtrigger by temi internal flow, like dynamic mode auto-listening, continuous conversation etc.
UNKNOWNunknown origin under current SDK version

Override original voice flow

Override the NLP

Steps

  • Add the following <meta-data>s under the <application> element to AndroidManifest.xml file:

    java
    <!-- Kiosk mode is required -->
    <meta-data android:name="@string/metadata_kiosk" android:value="true" />
    
    <meta-data android:name="@string/metadata_override_nlu" android:value="true" />
  • Listen to the ASR and access your own NLP service in its callback method.

  • Operate in Launcher: Settings > Kiosk > Select your skill. Or request to be the selected Kiosk App by method Robot.getInstance().requestToBeKioskApp().

Required permissions

Selected Kiosk

Support from

0.10.63


Override the ASR

Steps

  • Add the following <meta-data>s under the <application> element to AndroidManifest.xml file:

    java
    <!-- Kiosk mode is required -->
    <meta-data android:name="@string/metadata_kiosk" android:value="true" />
    
    <meta-data android:name="@string/metadata_override_stt" android:value="true" />
  • Listen to the wake-up event and access your own ASR service in its callback method.

  • Operate in Launcher: Settings > Kiosk > Select your skill. Or request to be the selected Kiosk App by method Robot.getInstance().requestToBeKioskApp().

Required permissions

Selected Kiosk

Support from

0.10.70


Override the Conversation layer

Steps

  • Add the following <meta-data>s under the <application> element to AndroidManifest.xml file:

    java
    <!-- Kiosk mode is required -->
    <meta-data android:name="@string/metadata_kiosk" android:value="true" />
    
    <meta-data android:name="@string/metadata_override_conversation_layer" android:value="true" />
  • Listen to onConversationStatusChangedListener and draw the UI according to the data(status, text) from its callback method.

  • Operate in Launcher Settings > App > Kiosk > Select your skill. Or request to be the selected Kiosk App by method Robot.getInstance().requestToBeKioskApp().

Required permissions

Selected Kiosk

Support from

0.10.72


Override the TTS

Steps

  • Add the following <meta-data>s under the <application> element to AndroidManifest.xml file:

    java
    <!-- Kiosk mode is required -->
    <meta-data android:name="@string/metadata_kiosk" android:value="true" />
    
    <meta-data android:name="@string/metadata_override_tts" android:value="true" />
  • Implement interface ITtsService and override methods speak(), cancel(), pause(), resume() . temi will call the corresponding method to achieve TTS requirements.

  • Use method setTtsService() to bind the instance of the class that implemented ITtsService in the previous step.

  • [Very important] Use method publishTtsStatus() to publish the TTS status to temi, temi needs these status to respond things(UI, Sequence steps).

  • Operate in Launcher Settings > App > Kiosk > Select your skill. Or request to be the selected Kiosk App by method Robot.getInstance().requestToBeKioskApp().

  • Refer to Sample for details.

Required permissions

Selected Kiosk

Support from

0.10.77