Fix: подавление логов VoskAPI при загрузке модели

- KALDI_VERBOSITY=0 для отключения логирования
- Перенаправление stderr во время загрузки модели
- Логи Kaldi больше не засоряют вывод

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
mirivlad 2026-03-19 00:02:20 +08:00
parent 763b33026a
commit 3f5d37db38
1 changed files with 13 additions and 5 deletions

View File

@ -16,19 +16,20 @@ class SpeechRecognizer:
self.model_name = settings.stt_model
self.model = None
self.recognizer = None
# Отключаем логирование VoskAPI/Kaldi
os.environ["KALDI_VERBOSITY"] = "0"
def load_model(self):
if not self.enabled:
return
# Отключаем логирование VoskAPI чтобы не засорять логи
import logging as py_logging
py_logging.getLogger("VoskAPI").setLevel(py_logging.ERROR)
try:
if self.model_name == "vosk":
from vosk import Model, KaldiRecognizer
import json
import sys
import io
# Путь к модели в папке проекта
model_path = "./models/vosk/vosk-model-ru-0.22"
@ -36,7 +37,14 @@ class SpeechRecognizer:
logger.error(f"Модель Vosk не найдена по пути {model_path}")
return
# Временно отключаем stderr для подавления логов Kaldi
old_stderr = sys.stderr
sys.stderr = io.StringIO()
self.model = Model(model_path)
# Восстанавливаем stderr
sys.stderr = old_stderr
elif self.model_name == "whisper":
from faster_whisper import WhisperModel