Feature Overview
Speech to Text (STT)
AnythingLLM Transcription Models

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 model parameter 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.