session.events.onTranscription(). Get real-time speech-to-text transcription from the user’s microphone.
Basic Usage
How It Works
- User speaks into microphone
- Audio streams to MentraOS Cloud
- Speech recognition processes audio
- Transcription events sent to your app
- You receive interim and final results
Transcription Data
Interim vs Final Results
Interim results - Partial transcription while user is speaking:Common Patterns
Voice Commands
Voice Search
Voice Notes
Conversation
Confidence Checking
Language Support
Default language:Best Practices
Always Check isFinal
Always Check isFinal
Only process commands on final results:
Show Visual Feedback
Show Visual Feedback
Display what the user said:
Provide Audio Confirmation
Provide Audio Confirmation
Acknowledge user input:
Handle Errors Gracefully
Handle Errors Gracefully
User might say something unexpected:
Permissions Required
Unsubscribing
Example: Voice Assistant
Troubleshooting
No Transcription Events
No Transcription Events
Check permission:
- Ensure MICROPHONE permission is set in Developer Console
- User must approve permission when installing app
- Check logs for permission errors
Poor Transcription Quality
Poor Transcription Quality
Possible causes:
- Background noise
- User speaking too quietly
- Microphone quality
- Non-standard accent or pronunciation
data.confidence to detect low-quality transcriptions.Delayed Transcriptions
Delayed Transcriptions
Network latency:
- Transcription requires internet connection
- Processing happens in cloud
- Some delay is normal (typically < 1 second)
Performance Tips
Use Final Results Only
Use Final Results Only
Avoid processing every interim result:
Debounce Expensive Operations
Debounce Expensive Operations
If you must process interim results:
Cache Common Commands
Cache Common Commands
Store frequently used command responses:

