|
|
@@ -396,10 +396,15 @@ uv run stt-daemon clear --yes
|
|
|
|
|
|
**JSONL** (one line per utterance):
|
|
|
```json
|
|
|
-{"ts": "2025-09-20T14:23:45.123456", "lang": "es", "lang_prob": 0.95, "duration_s": 2.5, "rms": 0.04123, "end_reason": "end_of_turn", "text": "Hola, cómo estás?"}
|
|
|
-{"ts": "2025-09-20T14:23:52.654321", "lang": "en", "lang_prob": 0.98, "duration_s": 1.8, "rms": 0.03811, "end_reason": "pause", "text": "What time is it?"}
|
|
|
+{"ts": "2025-09-20T14:23:45.123456", "lang": "es", "lang_prob": 0.95, "duration_s": 2.5, "rms": 0.04123, "end_reason": "end_of_turn", "text": "Hola, cómo estás?", "transcribe_s": 0.42}
|
|
|
+{"ts": "2025-09-20T14:23:52.654321", "lang": "en", "lang_prob": 0.98, "duration_s": 1.8, "rms": 0.03811, "end_reason": "pause", "text": "What time is it?", "transcribe_s": 0.31}
|
|
|
```
|
|
|
|
|
|
+`duration_s` is the length of the utterance audio; `transcribe_s` is the wall-clock
|
|
|
+time the worker spent transcribing it (inference latency), rounded to milliseconds.
|
|
|
+Their ratio is the real-time factor. The field is omitted if the timing was not
|
|
|
+measured (e.g. `emit()` called directly without `transcribe_s`).
|
|
|
+
|
|
|
`end_reason` is one of `end_of_turn` (full `silence_ms` elapsed), `pause` (chunked at
|
|
|
`chunk_pause_ms` because it passed `soft_max_s`), `hard_cap` (`max_utterance_s`
|
|
|
reached), or `flush` (shutdown mid-utterance).
|