FireOSTranscriptionProvider has no real FireOS implementation — just wraps Android provider and catches SecurityException #4
Labels
No labels
blocked:children
blocked:needs-decision
blocked:needs-human
blocked:verify-failed
bug
deferred
enhancement
feature-request
in-progress
needs-decompose
needs-triage
quickfix
triage-approved
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Mark/transcriber#4
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
FireOSTranscriptionProvider(lines 154-201 in TranscriptionProvider.kt) is a thin wrapper that delegates entirely toAndroidTranscriptionProvider. The only FireOS-specific logic is catching theSecurityExceptionfromAlexaVoiceInteractionService. There is no actual FireOS speech path.Per
dumpsyson FireOS, the system hasamazon.speech.sim/com.amazon.alexa.multimodal.assistant.AlexaVoiceInteractionServicewhich is aVoiceInteractionServicerequiringBIND_VOICE_INTERACTION(a signature-level permission that third-party apps cannot obtain). So the existing approach of wrapping Android'sSpeechRecognizerwill never work on FireOS tablets.Root Cause
FireOS's voice interaction system is locked to system apps via signature permissions. There is no public STT API on FireOS equivalent to Android's
SpeechRecognizerthat third-party apps can call.Revised Implementation Spec
Approach: MediaRecorder + Cloud Fallback
Since FireOS tablets always have internet, the simplest & most reliable approach is to bypass device-level STT entirely and route through the cloud backend.
What to Build
1. FireOSTranscriptionProvider Rewrite
Replace the current Android-transcription wrapper with a dedicated implementation that:
MediaRecorderdirectly (Android's standard audio capture)CloudTranscriptionProviderfor transcription2. Files Changed
app/.../service/TranscriptionProvider.ktapp/.../service/CloudTranscriptionProvider.kttranscribe(audioFile)method callable by FireOS provider (currently it reads from its own recording pipeline)3. Why Not Other Approaches
Edge Cases
Fixed in commit. Closing.