Очки: история диалога в свайпе + распознавание в LLM только по клику (касяки 1-3)
This commit is contained in:
@@ -105,6 +105,14 @@ class GlassesHub(
|
||||
@Volatile
|
||||
var stt: SttStreamer? = null
|
||||
|
||||
/**
|
||||
* Единственный путь текста в LLM: вызывает PhoneApp (assistantChannel.send)
|
||||
* на StopStt(cancel=false) с непустым текстом. VAD-фразы в LLM НЕ уходят —
|
||||
* только повторный клик пользователя.
|
||||
*/
|
||||
@Volatile
|
||||
var onStopFullText: ((String) -> Unit)? = null
|
||||
|
||||
/** Фабрика SttStreamer на первый SttAudio (тяжёлая — создаётся один раз). */
|
||||
@Volatile
|
||||
var sttFactory: (() -> SttStreamer?)? = null
|
||||
@@ -200,8 +208,17 @@ class GlassesHub(
|
||||
} else {
|
||||
val full = stt?.finish() ?: ""
|
||||
log("stt", "ВЕСЬ ТЕКСТ: $full")
|
||||
send(connId, SttDone(full))
|
||||
stt?.reset()
|
||||
if (full.isNotBlank()) {
|
||||
send(connId, SttDone(full))
|
||||
val phrase = full.trim()
|
||||
log("stt", "фраза в LLM (по клику): $phrase")
|
||||
onStopFullText?.invoke(phrase)
|
||||
} else {
|
||||
// Фразы не было — очки возвращаются в «слушаю» (SttCancel).
|
||||
log("stt", "фразы не было — очки в «слушаю»")
|
||||
broadcast(SttCancel())
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user