Speech-to-Text Input
Feature Detail
Description
An integrated speech-to-text capability that allows peer mentors to dictate free-text report fields instead of typing. This is explicitly requested by both Blindeforbundet and HLF and is especially valuable in the post-visit report flow where users may be writing up notes in contexts where typing is inconvenient or inaccessible. The feature must be clearly scoped to post-activity transcription only — Blindeforbundet explicitly prohibits recording during the peer mentoring conversation itself. The UI must make this distinction clear and must never start audio capture automatically. Implementation should leverage the OS-native speech recognition engine (iOS SFSpeechRecognizer / Android SpeechRecognizer) to avoid requiring a third-party API and to respect the user's language and privacy settings.
Analysis
Removes the biggest remaining barrier to app adoption for blind and low-vision peer mentors who find on-screen keyboards slow or unreliable. Also benefits HLF's high-volume reporters (one user had 380 annual registrations) by speeding up the report-writing step. Increases overall data completeness by reducing report abandonment.
Use the speech_to_text Flutter package wrapping native OS APIs — no third-party cloud dependency. Display a microphone button only on free-text fields designated for dictation. Show a clear 'Recording…' indicator and require explicit tap to start and stop. Persist partial transcriptions so a crash or interruption does not lose dictated content. The feature must be fully accessible via screen reader (announce record state changes as live regions).
Components (206)
Shared Components
These components are reused across multiple features
User Interface (59)
Service Layer (52)
Data Layer (33)
Infrastructure (54)
User Stories (5)
As a As a Peer Mentor (Likeperson)
I want to dictate the 'way forward' section of my post-session report so that I can describe follow-up actions and referrals verbally
So that the formalized structured report required by Blindeforbundet and other organisations is completed efficiently with accurate follow-up instructions for coordinators
- Given the peer mentor is on the way-forward section of a post-session report, When they tap the microphone on any way-forward sub-field, Then dictation activates for that specific sub-field only
- Given the peer mentor dictates content for the 'next steps' sub-field, When they insert the transcription, Then the content is stored as a way-forward item linked to the correct field key
- Given the peer mentor completes all way-forward fields via dictation, When they submit the report, Then the way-forward task service creates the appropriate follow-up tasks in the database
- +2 more
As a As a Peer Mentor (Likeperson)
I want to see a clear recording state indicator and hear an audio cue when dictation starts and stops
So that I always know whether my speech is being captured, avoiding silent failures or accidental recordings
- Given dictation is idle, When the peer mentor views a dictation-enabled field, Then the microphone button shows a static mic icon with no animation
- Given dictation is active, When recording is in progress, Then the microphone button shows an animated pulse/waveform indicator and the button colour changes to a recording accent color
- Given dictation stops (user action or timeout), When the state transitions to idle or processing, Then the animation stops and the button returns to its static state
- +2 more
As a As a Peer Mentor (Likeperson)
I want to see a live preview of my speech transcription and edit it before inserting it into the report field
So that I can catch and correct any misheard words or proper nouns before they become part of the official report
- Given dictation is active, When the peer mentor speaks, Then interim transcription results appear in the preview field within 500ms of each spoken word
- Given transcription is complete, When the peer mentor reviews the preview, Then they can tap, long-press, and edit any word in the transcription using standard OS text editing
- Given the peer mentor has reviewed and corrected the transcription, When they tap 'Insert', Then the edited text is placed into the originating report field and the overlay closes
- +2 more
As a As a Peer Mentor (Likeperson)
I want to activate a microphone button on any text field in the post-session report and dictate my observations using my voice
So that I can complete reports quickly without needing to type, especially when I have limited fine motor control or am fatigued after a session
- Given a post-session report is open, When the peer mentor taps the microphone icon on a notes or free-text field, Then the dictation overlay activates and the device microphone begins recording
- Given dictation is active, When the peer mentor speaks in Norwegian, Then transcribed text appears in real time in the transcription preview field with at least 85% accuracy on common Norwegian vocabulary
- Given dictation is complete, When the peer mentor taps 'Done' or the field loses focus, Then the transcribed text is inserted into the originating field and the overlay closes
- +2 more
As a As a Peer Mentor (Likeperson)
I want the speech-to-text feature to be available only on fields designated for dictation and not on sensitive identity or credential fields
So that personal data such as names, national identity numbers, and encrypted content is never inadvertently routed through third-party speech recognition services
- Given a field is of type 'password', 'encrypted', or is flagged as sensitive in org field config, When the report screen renders, Then no microphone button appears on that field
- Given a notes or description field is not restricted, When the report screen renders, Then the microphone button is visible and accessible with a minimum touch target of 44x44dp
- Given a coordinator attempts to dictate into a field dynamically added by org field config that is marked restricted, When the field renders, Then dictation is suppressed without any error being shown to the user
- +2 more