whisper-dictation/whisper_app/grammar.py

42 lines
1003 B
Python

"""Optional grammar correction using LanguageTool."""
_tool = None
_lang = None
_LANG_MAP = {
"de": "de-DE",
"en": "en-US",
"fr": "fr-FR",
"es": "es",
"it": "it",
}
def init(lang, log=print):
"""Pre-initialize LanguageTool. Call once at startup."""
global _tool, _lang
if lang == _lang and _tool is not None:
return
_lang = lang
try:
import language_tool_python
lt_lang = _LANG_MAP.get(lang, lang or "de-DE")
_tool = language_tool_python.LanguageTool(lt_lang)
log("Grammar checker ready.")
except ImportError:
_tool = None
log("language_tool_python not installed — grammar check disabled.")
except Exception as e:
_tool = None
log(f"Grammar checker init failed: {e}")
def correct(text):
"""Correct grammar, capitalization, and punctuation."""
if _tool is None:
return text
try:
return _tool.correct(text)
except Exception:
return text