Speech to Text (STT)
AnythingLLM turns speech into text in two places, and each one has its own provider setting:
- Voice input: click the microphone button in the chat box and speak your prompt instead of typing it. Choose the provider under Settings > Voice & Speech.
- Audio and video files: audio and video files you upload are transcribed, so their text can be embedded and used in chats. Choose the provider under Settings > Transcription.
Voice Input Providers
Open Settings and select Voice & Speech. Under Speech-to-text Preference, choose a provider from the Provider menu, fill in its settings, and click Save changes.
The default provider is System native, which works with no configuration at all. With any other provider, AnythingLLM records your voice in the browser, and the AnythingLLM server sends the recording to that provider to be transcribed.
Auto-Submit Speech Input is on by default and sends your prompt after a pause in your speech. To review the text before sending it, turn it off under Settings > Chat.
Local STT Providers
System native
Uses your browser's built in speech recognition, if supported.
Self Hosted STT Providers
Lemonade
Connects to a Lemonade server. Set the server's Base URL, or click Auto-Detect, then choose a Transcription Model from the transcription models loaded on that server. The optional API key is shared with the Lemonade LLM and embedder settings.
Cloud STT Providers
OpenAI
Uses OpenAI's hosted transcription models. Requires an OpenAI API key, which is shared with the OpenAI LLM provider. The Transcription Model menu lists the transcription models your key can use.
Deepgram
Uses Deepgram's hosted transcription models. Requires a Deepgram API key and a Transcription Model such as nova-3.
Groq
Uses Groq's hosted transcription models. Requires a Groq API key and a Transcription Model such as whisper-large-v3-turbo.
Any OpenAI Compatible STT Service
The Generic OpenAI provider connects AnythingLLM to any service that implements the OpenAI transcription API (POST /v1/audio/transcriptions), whether it runs on your own network or is a hosted API. It takes three settings:
- Base URL: the root of the service, including the version path, for example
http://localhost:8000/v1 - API Key: optional, only needed if the service requires one
- Transcription Model: the
modelparameter sent with each request
AnythingLLM converts each recording to WAV before sending it to the service. The AnythingLLM server makes this request, so the Base URL must be reachable from where AnythingLLM runs. If you run AnythingLLM in Docker, see How to connect to localhost.
Supported Transcription Model Providers
Audio and video files are transcribed with the provider chosen under Settings > Transcription. The default is AnythingLLM Built-In, which runs a Whisper model on your AnythingLLM instance and downloads it the first time it is used.
Local Transcription Model Providers
Cloud Transcription Model Providers
Any OpenAI Compatible Transcription Service
The OpenAI Compatible provider transcribes uploaded audio and video files with any service that implements the OpenAI transcription API. It takes a Base URL, for example http://localhost:8000/v1, an optional API Key, and the Transcription Model to request.
Environment Variables
If you deploy AnythingLLM with Docker or bare metal, speech to text can also be configured with environment variables. See the STT_* keys (voice input) and WHISPER_* keys (audio and video files) in .env.example (opens in a new tab). Set only one STT_PROVIDER value and one WHISPER_PROVIDER value.

