목표: “받아쓰기 세션” 모델

Unser Ziel(독일어): “Diktier-Sitzung”을 죽으세요

Ein einziger Trigger startet eine “Diktier-Sitzung”, die aus drei Phasen besteht:

  1. 시작 단계(Warten auf Sprache):

  • Nach dem Trigger lauscht das 시스템.

  • Wenn keine Spracheingabe erfolgt, endet die gesamte Sitzung nach PRE_RECORDING_TIMEOUT(z.B. 12초).

  1. 활성 단계(Kontinuierliches Diktieren):

  • Sobald die erste Spracheingabe erkannt wird, wechselt die Sitzung in den active Modus.

  • Immer wenn VOSK eine Sprechpause erkennt und einen Textblock liefert(z.B. einen Satz), wird dieser Block sofort zur Verarbeitung(LanguageTool 등) weitergegeben und als Text ausgegeben.

  • Die Aufnahme läuft währenddessen nahtlos weiter. Die Sitzung wartet auf den nächsten Satz.

  1. 종기(Ende der Sitzung):

  • Die gesamte Sitzung endet nur, wenn eine dieser beiden Bedingungen erfüllt ist:

  • Der Nutzer bleibt für die Dauer des SPEECH_PAUSE_TIMEOUT(z.B. 1-2s) komplett는 여전히 남아 있습니다.

  • Der Nutzer stoppt die Sitzung manuell per Trigger.

Zusammengefasst: Eine Sitzung, viele sofortige Textausgaben. Die Sitzung bleibt aktiv, bis der Nutzer eine längere Pause macht oder sie manuell beendet.

목표: “받아쓰기 세션” 모델

단일 트리거는 세 단계로 구성된 **”받아쓰기 세션”**을 시작합니다.

  1. 시작 단계(발언 대기):

  • 트리거 후 시스템이 청취를 시작합니다.

  • 음성이 감지되지 않으면 PRE_RECORDING_TIMEOUT(예: 12초) 후에 전체 세션이 종료됩니다.

  1. 활성 단계(연속 받아쓰기):

  • 첫 번째 음성 입력이 감지되는 즉시 세션이 활성 모드로 전환됩니다.

  • VOSK가 일시 중지를 감지하고 텍스트 청크(예: 문장)를 전달할 때마다 이 청크는 즉시 처리 파이프라인(LanguageTool 등)에 전달되어 텍스트로 출력됩니다.

  • 녹음은 백그라운드에서 원활하게 계속되며 다음 발언을 기다립니다.

  1. 종료 단계(세션 종료):

  • 전체 세션은 다음 두 가지 조건 중 하나가 충족되는 경우에만 종료됩니다.

  • 사용자는 SPEECH_PAUSE_TIMEOUT 기간(예: 1~2초) 동안 완전히 침묵을 유지합니다.

  • 사용자가 트리거를 통해 수동으로 세션을 중지합니다. 간단히 말하면: 하나의 세션으로 여러 개의 즉각적인 텍스트 출력이 가능합니다. 세션은 사용자가 오랫동안 일시 중지하거나 수동으로 종료할 때까지 활성 상태로 유지됩니다.