Clean up config and STT naming

This commit is contained in:
Thales Maciel 2026-02-24 11:15:48 -03:00
parent b74aaaa1c4
commit 8c68719041
No known key found for this signature in database
GPG key ID: 33112E6833C34679
9 changed files with 42 additions and 98 deletions

View file

@ -11,7 +11,7 @@ from pathlib import Path
from config import Config, load, redacted_dict
from recorder import start_recording, stop_recording
from transcription import FasterWhisperTranscriber, TranscriptionConfig
from stt import FasterWhisperSTT, STTConfig
from aiprocess import AIConfig, build_processor
from inject import inject
from x11_hotkey import listen
@ -21,7 +21,7 @@ from tray import run_tray
class State:
IDLE = "idle"
RECORDING = "recording"
TRANSCRIBING = "transcribing"
STT = "stt"
PROCESSING = "processing"
OUTPUTTING = "outputting"
@ -34,11 +34,11 @@ class Daemon:
self.proc = None
self.record = None
self.timer = None
self.transcriber = FasterWhisperTranscriber(
TranscriptionConfig(
model=cfg.transcription.get("model", "base"),
self.stt = FasterWhisperSTT(
STTConfig(
model=cfg.stt.get("model", "base"),
language=None,
device=cfg.transcription.get("device", "cpu"),
device=cfg.stt.get("device", "cpu"),
vad_filter=True,
)
)
@ -61,7 +61,7 @@ class Daemon:
self._start_recording_locked()
return
if self.state == State.RECORDING:
self.state = State.TRANSCRIBING
self.state = State.STT
threading.Thread(target=self._stop_and_process, daemon=True).start()
return
logging.info("busy (%s), trigger ignored", self.state)
@ -86,7 +86,7 @@ class Daemon:
with self.lock:
if self.state != State.RECORDING:
return
self.state = State.TRANSCRIBING
self.state = State.STT
threading.Thread(target=self._stop_and_process, daemon=True).start()
def _stop_and_process(self):
@ -116,11 +116,11 @@ class Daemon:
return
try:
self.set_state(State.TRANSCRIBING)
logging.info("transcription started")
text = self.transcriber.transcribe(record.wav_path, language="en")
self.set_state(State.STT)
logging.info("stt started")
text = self.stt.transcribe(record.wav_path, language="en")
except Exception as exc:
logging.error("transcription failed: %s", exc)
logging.error("stt failed: %s", exc)
self.set_state(State.IDLE)
return
@ -129,21 +129,21 @@ class Daemon:
self.set_state(State.IDLE)
return
logging.info("transcription: %s", text)
logging.info("stt: %s", text)
ai_enabled = self.cfg.ai_cleanup.get("enabled", False)
ai_prompt_file = ""
if ai_enabled:
ai_model = (self.cfg.ai_cleanup.get("model") or "").strip()
ai_base_url = (self.cfg.ai_cleanup.get("base_url") or "").strip()
if ai_model and ai_base_url:
self.set_state(State.PROCESSING)
logging.info("ai processing started")
try:
processor = build_processor(
AIConfig(
model=self.cfg.ai_cleanup.get("model", ""),
model=ai_model,
temperature=self.cfg.ai_cleanup.get("temperature", 0.0),
system_prompt_file=ai_prompt_file,
base_url=self.cfg.ai_cleanup.get("base_url", ""),
base_url=ai_base_url,
api_key=self.cfg.ai_cleanup.get("api_key", ""),
timeout_sec=25,
language_hint="en",
@ -171,7 +171,7 @@ class Daemon:
with self.lock:
if self.state != State.RECORDING:
return
self.state = State.TRANSCRIBING
self.state = State.STT
threading.Thread(target=self._stop_and_process, daemon=True).start()