fix(voice): 받아쓰기 파이프라인 4버그 수정 + 실시간 부분 전사

- press가 STT 초기화를 await하며 action queue 점유 → release 수십 초 지연·
  유령 세션 반복 버그 수정 (initSTT fire-and-forget)
- 프리플라이트: STT 모델 미설치 시 즉시 에러 + 메인 UI 경고 + 온보딩 오픈
- 사이드카: 기동 중 프로세스 사망 시 30초 대기 없이 즉시 실패,
  restartCount 리셋, error 리스너 부재 미처리 예외 방지
- 실시간 부분 전사: 1.5s 간격 interim → RecordingTip에 말하는 내용 미리보기
- Ollama 미가용 후처리 스킵 시 warning 배너, voice:error 브로드캐스트 신설
This commit is contained in:
Yun Chan 2026-07-21 20:56:40 +09:00
parent e0a1864e60
commit fd46ac7b14
13 changed files with 280 additions and 16 deletions

View file

@ -96,6 +96,8 @@ export interface VoiceErrorEvent {
sessionId: string | null
errorCode: number
message: string
/** 'warning'은 세션을 막지 않는 알림 (예: Ollama 미가용으로 LLM 후처리 스킵) */
severity?: 'error' | 'warning'
}
export interface AudioLevelEvent {

View file

@ -173,6 +173,9 @@
"settings.about.voiceEngineValue": "STT: faster-whisper (local) / LLM: Ollama (local)",
"settings.about.description": "A fully local AI voice assistant built on Speakly reverse-engineering insights. Runs entirely offline with no cloud dependencies.",
"settings.about.restartOnboarding": "Restart Setup Wizard",
"voice.error.modelMissing": "Speech model is not installed. Please download it first.",
"voice.error.engine": "Failed to start the speech engine. Please try again.",
"voice.warning.llmSkipped": "Ollama is unavailable — inserted the raw transcription.",
"status.localTime": "Local Time",
"status.ollama": "OLLAMA",
"status.offline": "OFFLINE",

View file

@ -174,6 +174,9 @@
"settings.about.voiceEngineValue": "STT: faster-whisper (로컬) / LLM: Ollama (로컬)",
"settings.about.description": "Speakly 리버스엔지니어링 노하우 기반 로컬 AI 음성 어시스턴트. 클라우드 의존성 없이 완전 로컬로 동작합니다.",
"settings.about.restartOnboarding": "초기 설정 안내 다시 보기",
"voice.error.modelMissing": "음성 인식 모델이 설치되지 않았습니다. 모델을 다운로드해 주세요.",
"voice.error.engine": "음성 인식 엔진을 시작하지 못했습니다. 잠시 후 다시 시도해 주세요.",
"voice.warning.llmSkipped": "Ollama에 연결할 수 없어 원문 그대로 삽입했습니다.",
"status.localTime": "로컬 시간",
"status.ollama": "OLLAMA",
"status.offline": "OFFLINE",