audio-streaming
Receive synchronized PCM audio frames through a Camera stream on iOS
Recognize speech on connected glasses and consume partial and final transcriptions on iOS
$ npx -y skills add facebook/meta-wearables-dat-ios --skill speech --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/speechContext 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 iOS
name: speech description: Recognize speech on connected glasses and consume partial and final transcriptions on iOS
Speech is an experimental on-device recognition capability. Enable it for the app in Wearables Developer Center and obtain microphone permission before starting it.
Check permission silently first with `checkPermissionStatus(.microphone)`. If it is not granted, call `requestPermission(.microphone)` only after a user action that explains the transition to the Meta AI app, and continue only when the result is `.granted`.
Add Speech after the `DeviceSession` reaches `.started`. Register listeners before `start()` so initial state, locale, errors, and transcription events are not missed.
guard let speech = try session.addSpeech() else { return }
speech.transcriptionPublisher.listen { result in
if result.isFinal {
commitTranscript(result.text)
} else {
showPartialTranscript(result.text)
}
}.store(in: tokens)
speech.start()Retain the listener token while Speech is attached. Observe `statePublisher`, `localePublisher`, and `errorPublisher` when the app needs lifecycle, locale, or failure updates.
`confidence` is between 0 and 1, or `-1` when unavailable. Do not discard a transcription just because confidence is unavailable.
`speech.stop()` keeps Speech attached and allows another `start()`. Cancel listener tokens before calling `session.removeSpeech()`; removal is terminal.
Handle device disconnection, invalid state, unavailable recognition, already-listening, start failure, and unexpected errors through `errorPublisher`.
After Speech is listening, inject results with calls such as `glasses.services.speech.simulateTranscription(text: "turn left", isFinal: true, confidence: 0.9)`. The service can also inject locale changes, partial text, completion, and recognition errors. The live host-device ASR source is for manual MockDevice testing; real-glasses recognition uses the glasses microphone.
Speech is experimental. Apps can use it for development and beta testing, but cannot publish it to production release channels yet.
The Meta Wearables Device Access Toolkit enables developers to utilize Meta's AI glasses to build hands-free wearable experiences into their mobile applications.
Receive synchronized PCM audio frames through a Camera stream on iOS
Capture standalone high-quality photos from connected glasses on iOS
Stream, video frames, photo capture, resolution/frame rate configuration
Swift patterns, async/await, naming conventions, key types for DAT SDK iOS development
Use the Wearables DAT MCP server for live DAT documentation search with `search_dat_docs`,…