Skip to content

ASR/TTS Demo-Android Guide

demo-android is used to verify ASR/TTS SDK integration, connection setup, and call flows. In a private deployment, configure the Demo with the private domain, asrPath, ttsPath, API Key, and other required parameters to verify that the full speech chain is available.

1. Get the Demo project

After downloading, unzip the package and enter the online-speech-sdk-demo directory to build and debug.

2. Build and install

bash
cd online-speech-sdk-demo
./gradlew :demo-android:assembleDebug

APK output:

  • demo-android/build/outputs/apk/debug/demo-android-debug.apk

3. Configuration

The Demo reads the following values from online-speech-sdk-demo/gradle.properties by default:

  • online.demo.domain
  • online.demo.ak
  • online.demo.sk
  • online.demo.uid
  • online.demo.deviceId
  • online.demo.asrPath
  • online.demo.ttsPath

4. Pages

4.1 Initialization page

  • Init SDK (create clients): Create the SDK, ASR client, and TTS client.
  • Close SDK + Unbind: Release SDK resources and connections, and unbind the open-sdk service.

4.2 ASR page

  • connect(): Establish the ASR WebSocket.
  • startAsrWithMic(): Record through open-sdk and stream audio automatically.
  • stopAsrWithMic(): Stop recording and finish ASR.
  • close(): Close the ASR connection.

4.3 TTS page

  • connect(): Establish the TTS WebSocket.
  • speak(default text): Play the default test text.
  • stop(): Stop current TTS playback.
  • close(): Close the TTS connection.

5. Debug logs

  • Log area at the bottom of the page: latest logs appear at the top.
  • Logcat tags:
    • OnlineSpeechDemo
    • OpenSdkAudioSource
    • AndroidPcmTtsPlayer

Recommended filter:

bash
adb logcat | rg "OnlineSpeechDemo|OpenSdkAudioSource|AndroidPcmTtsPlayer"

6. FAQ

  • EACCES / Download/glass3Log: The Demo skips GlassSdk.registerClient() by default to avoid Android 12 public directory write permission issues.
  • No ASR result: make sure connect() is called before startAsrWithMic().
  • No TTS audio: make sure connect() is called, then check device volume and audio routing.