Clean up config and STT naming
This commit is contained in:
parent
b74aaaa1c4
commit
8c68719041
9 changed files with 42 additions and 98 deletions
38
src/leld.py
38
src/leld.py
|
|
@ -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()
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue