Skip to content
Mobile
Skill

/speech

Recognize speech on connected glasses and consume partial and final transcriptions on Android

BOOST
From plugin
meta-wearables-dat-android
38117 skills
Install
$ npx -y skills add facebook/meta-wearables-dat-android --skill speech --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/speech

Context preview

The summary Claude sees to decide when to auto-load this skill.

Recognize speech on connected glasses and consume partial and final transcriptions on Android

SKILL.md

speech.SKILL.md
name: speech
description: Recognize speech on connected glasses and consume partial and final transcriptions on Android

Speech (Android)

Speech is an experimental on-device recognition capability. Enable it for the app in Wearables Developer Center and obtain `Permission.MICROPHONE` before starting it.

Permission flow

Check permission before attaching Speech. Launch `Wearables.RequestPermissionContract` only from a user-initiated action; it opens the Meta AI app. Android `RECORD_AUDIO` is not required for real-glasses recognition. It is needed only when a MockDevice test deliberately uses live phone recognition.

Attach, collect, and start

Call `addSpeech` after `DeviceSessionState.STARTED`. Launch collectors before `start()`.

session.addSpeech().fold(
    onSuccess = { speech ->
        transcriptionJob = lifecycleScope.launch {
            speech.transcriptions.collect { result ->
                result ?: return@collect
                if (result.isFinal) commitTranscript(result.text)
                else showPartialTranscript(result.text)
            }
        }
        speech.start().onFailure { error, _ -> showError(error.description) }
    },
    onFailure = { error, _ -> showError(error.description) },
)

Retain the transcription job while Speech is attached. Collect `state`, `locale`, and `errors` when the app needs lifecycle, locale, or failure updates.

`confidence` is between 0 and 1, or `-1` when unavailable. `errorDetails` is diagnostic text and should not be displayed directly to end users.

Stop and remove

`speech.stop()` is reusable; removal is terminal. Cancel all collection jobs before `session.removeSpeech()`.

Test with MockDeviceKit

After Speech is listening, inject results with calls such as `glasses.services.speech.simulateTranscription("turn left", isFinal = true, confidence = 0.9f)`. The service can also inject locale changes, partial text, completion, and terminal errors. The live-device source and host `RECORD_AUDIO` permission are only for manual MockDevice testing.

Availability

Speech is experimental. Apps can use it for development and beta testing, but cannot publish it to production release channels yet.

Read more
Ships withmeta-wearables-dat-android

The Meta Wearables Device Access Toolkit enables developers to utilize Meta's AI glasses to build hands-free wearable experiences into their mobile applications.

Get the whole plugin