Skip to content

Developers · Android

An avatar for your Android app

Two artifacts on bitHuman's Maven repository (maven.bithuman.ai) — essence2-android for a photoreal person and expression2-android for any character — render the avatar on the handset. After the one-time model download, the SDK's only network traffic is usage reporting.

API and SDK use requires the Creator plan or higher.

AI character Gio rendered by the Android SDK on an Android phone

Install

settings.gradle.kts (bitHuman's Maven repository)
dependencyResolutionManagement {
    repositories {
        google()
        mavenCentral()
        exclusiveContent {   // ai.bithuman resolves from bitHuman's repository only
            forRepository { maven { url = uri("https://maven.bithuman.ai") } }
            filter { includeGroup("ai.bithuman") }
        }
    }
}
app/build.gradle.kts
implementation("ai.bithuman:expression2-android:0.6.2")   // any character
implementation("ai.bithuman:essence2-android:0.10.3")      // a photoreal person

What you need: arm64 device, API secret (from the docs)

The full Android guide

  1. Add a conversation

    The Android SDK only renders: your app passes in 16 kHz mono speech and draws the frames it returns. Bring your own voice stack, or let bitHuman's managed agent run the conversation instead.

    • Your own speech recognition, language model and voice

      Any stack works: the SDK takes 16 kHz speech. OpenAI Realtime returns 24 kHz audio: resample it to 16 kHz before you pass it in. The converter is in the docs.

      Resample speech to 16 kHz

    • Build the companion screen

      The companion guide walks through the whole loop on the phone, with Kotlin for each step: the SDK, the API secret, resampling, replies, interruption and closing the avatar with the screen.

      Companion app (docs)

    • Or let bitHuman run the conversation

      The web embed runs a managed agent on bitHuman's servers with your persona and, if you like, your own OpenAI-compatible model; a LiveKit agent can use a bitHuman cloud avatar. Either way the avatar renders in the bitHuman cloud (the web embed's default), not on the phone.

      Web embed

    When the avatar renders in your app on the device and you use your own voice and language services, bitHuman receives usage metering only, never audio, video or conversation text.

Requirements

A physical arm64 phone; emulators cannot load the engines.

More

What it costs

Credits per minute

On the device (Essence 2, Expression 2)
2
bitHuman cloud avatar
4
Managed voice chat (all-inclusive)
10

More

Not available on this platform

A conversation brain that runs on the phone: the conversation is your app's, or runs in the cloud.

More

Before you ship

The full checklist

Examples you can clone

Questions? Ask on Discord

Join the bitHuman Discord