Skip to main content

Voice transcription

Voice transcription adds microphone dictation to the Home and Ask AI composers. It is independent of the chat AI provider and currently supports:

  • OpenAI with gpt-transcribe
  • Gemini with gemini-2.5-flash

The microphone control appears only when the selected transcription provider is available and the browser supports microphone recording.

Enable voice transcription

Set the feature flag and select a provider:

export WINDRUNNER_AUDIO_TRANSCRIPTION_ENABLED=true
export WINDRUNNER_AUDIO_TRANSCRIPTION_PROVIDER=openai
export OPENAI_TRANSCRIPTION_API_KEY=your-openai-api-key

OPENAI_TRANSCRIPTION_API_KEY falls back to OPENAI_API_KEY when it is not set. For Gemini, use:

export WINDRUNNER_AUDIO_TRANSCRIPTION_ENABLED=true
export WINDRUNNER_AUDIO_TRANSCRIPTION_PROVIDER=gemini
export GEMINI_TRANSCRIPTION_API_KEY=your-gemini-api-key

GEMINI_TRANSCRIPTION_API_KEY falls back to GEMINI_API_KEY. The application default is disabled; server/start-local.sh enables voice transcription by default.

Common settings

VariableDefaultDescription
WINDRUNNER_AUDIO_TRANSCRIPTION_ENABLEDfalseEnables voice dictation.
WINDRUNNER_AUDIO_TRANSCRIPTION_PROVIDERopenaiSelects openai or gemini for transcription.
WINDRUNNER_AUDIO_TRANSCRIPTION_MAX_DURATION_SECONDS120Maximum browser recording duration.
WINDRUNNER_AUDIO_TRANSCRIPTION_MAX_FILE_SIZE_BYTES10485760Maximum uploaded audio size.
WINDRUNNER_AUDIO_TRANSCRIPTION_CONNECT_TIMEOUT10sProvider connection timeout.
WINDRUNNER_AUDIO_TRANSCRIPTION_READ_TIMEOUT2mProvider response timeout.
WINDRUNNER_UPLOAD_TEMP_DIRJava temporary directoryDirectory used for transient multipart uploads.

OpenAI transcription

VariableDefaultDescription
OPENAI_TRANSCRIPTION_API_KEYFalls back to OPENAI_API_KEYProvider-specific API key.
OPENAI_TRANSCRIPTION_BASE_URLhttps://api.openai.com/v1OpenAI transcription API base URL.
OPENAI_TRANSCRIPTION_MODELgpt-transcribeOpenAI transcription model.

Gemini transcription

VariableDefaultDescription
GEMINI_TRANSCRIPTION_API_KEYFalls back to GEMINI_API_KEYProvider-specific API key.
GEMINI_TRANSCRIPTION_BASE_URLhttps://generativelanguage.googleapis.com/v1betaGemini transcription API base URL.
GEMINI_TRANSCRIPTION_MODELgemini-2.5-flashGemini transcription model.

Using voice dictation

Select the microphone control beside Send. The browser asks for microphone permission the first time. While recording, the composer shows a live waveform and timer. Stop the recording to transcribe it, then review or edit the text before sending.

If microphone access is denied, allow it in the browser's site settings and try again. Voice recordings are uploaded as temporary multipart data and are not saved as chat attachments.

Admins can see the configured transcription provider, model, and availability in Account → System information.