Browse Source

Added WHISPER_LANGUAGE env variable. If set to a country's ISO2, constrains Whisper's stt to that language. Detects language as normal if unset

nathaniel 5 months ago
parent
commit
1efa708f83
3 changed files with 8 additions and 0 deletions
  1. 5 0
      backend/open_webui/config.py
  2. 2 0
      backend/open_webui/main.py
  3. 1 0
      backend/open_webui/routers/audio.py

+ 5 - 0
backend/open_webui/config.py

@@ -2510,6 +2510,11 @@ WHISPER_VAD_FILTER = PersistentConfig(
     os.getenv("WHISPER_VAD_FILTER", "False").lower() == "true",
 )
 
+WHISPER_LANGUAGE = PersistentConfig(
+    "WHISPER_LANGUAGE",
+    "audio.stt.whisper_language",
+    os.getenv("WHISPER_LANGUAGE", None).lower(),
+)
 
 # Add Deepgram configuration
 DEEPGRAM_API_KEY = PersistentConfig(

+ 2 - 0
backend/open_webui/main.py

@@ -167,6 +167,7 @@ from open_webui.config import (
     WEB_LOADER_ENGINE,
     WHISPER_MODEL,
     WHISPER_VAD_FILTER,
+    WHISPER_LANGUAGE,
     DEEPGRAM_API_KEY,
     WHISPER_MODEL_AUTO_UPDATE,
     WHISPER_MODEL_DIR,
@@ -791,6 +792,7 @@ app.state.config.STT_MODEL = AUDIO_STT_MODEL
 
 app.state.config.WHISPER_MODEL = WHISPER_MODEL
 app.state.config.WHISPER_VAD_FILTER = WHISPER_VAD_FILTER
+app.state.config.WHISPER_LANGUAGE = WHISPER_LANGUAGE
 app.state.config.DEEPGRAM_API_KEY = DEEPGRAM_API_KEY
 
 app.state.config.AUDIO_STT_AZURE_API_KEY = AUDIO_STT_AZURE_API_KEY

+ 1 - 0
backend/open_webui/routers/audio.py

@@ -501,6 +501,7 @@ def transcribe(request: Request, file_path):
             file_path,
             beam_size=5,
             vad_filter=request.app.state.config.WHISPER_VAD_FILTER,
+            language=request.app.state.config.WHISPER_LANGUAGE
         )
         log.info(
             "Detected language '%s' with probability %f"