Add realtime dictation providers (#1329)

* feat: add realtime dictation providers

* fix: cancel realtime dictation startup

* fix: refresh local dictation availability

* fix: preserve dictation on disconnect

* fix: normalize OpenAI language hints
This commit is contained in:
SSU-WEI HUANG
2026-08-03 10:03:06 +08:00
committed by GitHub
parent 3c3bffdfbd
commit c3a5522207
21 changed files with 1378 additions and 46 deletions
+5 -4
View File
@@ -2,15 +2,15 @@
Control your AI coding agent with voice using the built-in voice assistant powered by ElevenLabs Conversational AI.
For speech-to-text without a spoken assistant, open **Settings → Voice**, choose **Dictation**, then select a configured provider. Dictation records until you tap the microphone again, inserts the transcript into the composer, and never sends it automatically. Standard mode is the default.
For speech-to-text without a spoken assistant, open **Settings → Voice**, choose **Dictation**, then select a configured provider. Dictation records until you tap the microphone again, inserts the transcript into the composer, and never sends it automatically. Standard mode is the default. Realtime mode shows a live transcript while you speak and inserts the final result when you stop.
Provider credentials are read only from the hub's startup environment:
```bash
# Pick any providers you use
export OPENAI_API_KEY="..." # gpt-4o-transcribe
export ELEVENLABS_API_KEY="..." # scribe_v2
export DEEPGRAM_API_KEY="..." # nova-3
export OPENAI_API_KEY="..." # gpt-transcribe / gpt-live-transcribe
export ELEVENLABS_API_KEY="..." # scribe_v2 / scribe_v2_realtime
export DEEPGRAM_API_KEY="..." # nova-3 standard / realtime
export GROQ_API_KEY="..." # whisper-large-v3
# Or an OpenAI-compatible local server such as Speaches
@@ -20,6 +20,7 @@ export TRANSCRIPTION_API_KEY="..." # optional
```
Restart the hub after changing credentials. API keys are not entered or stored in the web app.
Realtime OpenAI, ElevenLabs, and Deepgram sessions receive only short-lived credentials minted by the hub. Browsers with an installed on-device `SpeechRecognition` language pack also expose **Browser on-device** as a realtime-only provider; HAPI never falls back from that option to browser-hosted recognition.
## Overview