Skip to main content

Integration

Add the SDK dependency to your build.gradle file:
implementation("ai.spatialwalk:avatarkit:1.0.0-beta26")

Usage

Obtain app ID and temporary session token from Open Platform
1

Initialize SDK

AvatarSDK.initialize(
    context = applicationContext,
    appId = "your_app_id",
    configuration = Configuration(
        environment = Environment.intl,
        audioFormat = AudioFormat(sampleRate = 16000),
        drivingServiceMode = DrivingServiceMode.SDK,
        logLevel = LogLevel.OFF
    )
)
2

Provide Session Token

AvatarSDK.sessionToken = "your_session_token"
3

Load Avatar

lifecycleScope.launch {
    try {
        val avatar = withContext(Dispatchers.IO) {
             AvatarManager.load("your_avatar_id") { progress -> }
        }
    } catch (e: Exception) {
        // handle error
    }
}
4

Create Avatar View

val avatarView = AvatarView(context)
avatarView.init(avatar, lifecycleScope)
5

Register Callbacks

val avatarController = avatarView.avatarController
avatarController?.onConnectionState = { connectionState -> }
avatarController?.onConversationState = { conversationState -> }
avatarController?.onError = { error -> }
6

Drive Avatar

// Start avatar service connection
avatarController?.start()

// Trigger new conversation by sending audio data stream
avatarController?.send(audioData1, end = false)
avatarController?.send(audioData2, end = true)

// Interrupt current conversation
avatarController?.interrupt()

// Close avatar service connection
avatarController?.stop()

Next Steps