Summary
Allow users to dictate messages using voice input, with speech automatically transcribed to text in the message composer.
Feature Description
Users should be able to:
- Click a microphone button in the message composer to start voice recording
- Speak their message and have it transcribed to text in real-time
- See visual feedback while recording (e.g., pulsing indicator, recording state)
- Cancel or confirm the transcription before sending
UI Location
- Add a microphone button in the message composer actions (alongside attach and emoji buttons)
- Show recording state indicator when active
- Display transcription in the Slate editor as it's processed
Suggested Implementation
- Create a
useSpeechRecognition hook using the Web Speech API (SpeechRecognition)
- Add microphone button to
message-composer-actions.tsx
- Handle browser compatibility (Web Speech API is primarily Chrome/Edge/Safari)
- Provide fallback or error message for unsupported browsers
- Request microphone permissions and handle denial gracefully
Technical Considerations
- Web Speech API (browser-native) vs external API (e.g., OpenAI Whisper)
- Push-to-talk vs toggle recording UX
- Accessibility: ensure voice input doesn't exclude keyboard-only users
Summary
Allow users to dictate messages using voice input, with speech automatically transcribed to text in the message composer.
Feature Description
Users should be able to:
UI Location
Suggested Implementation
useSpeechRecognitionhook using the Web Speech API (SpeechRecognition)message-composer-actions.tsxTechnical Considerations