优化后的代码
This commit is contained in:
parent
956dd78c1b
commit
0261c5ccaa
@ -110,6 +110,7 @@ class VoiceController(
|
|||||||
|
|
||||||
VoiceState.WAIT_SPEECH_COOLDOWN -> {
|
VoiceState.WAIT_SPEECH_COOLDOWN -> {
|
||||||
if (now >= speechEnableAtMs) {
|
if (now >= speechEnableAtMs) {
|
||||||
|
waitSpeechFailStartMs = 0L // ⭐ 必须清
|
||||||
state = VoiceState.WAIT_SPEECH
|
state = VoiceState.WAIT_SPEECH
|
||||||
waitSpeechStartMs = now // ⭐ 关键:开始等人说话
|
waitSpeechStartMs = now // ⭐ 关键:开始等人说话
|
||||||
}
|
}
|
||||||
@ -171,12 +172,8 @@ class VoiceController(
|
|||||||
|
|
||||||
VoiceState.UPLOADING -> return
|
VoiceState.UPLOADING -> return
|
||||||
|
|
||||||
// ⭐ 关键:只要不是纯等待唤醒,一律打断
|
|
||||||
VoiceState.RECORDING,
|
VoiceState.RECORDING,
|
||||||
VoiceState.WAIT_SPEECH,
|
|
||||||
VoiceState.WAIT_SPEECH_COOLDOWN,
|
|
||||||
VoiceState.PLAYING_BACKEND -> {
|
VoiceState.PLAYING_BACKEND -> {
|
||||||
Log.d(TAG, "⚠ WakeWord interrupt state=$state")
|
|
||||||
stopBackendAudio?.invoke()
|
stopBackendAudio?.invoke()
|
||||||
enterWakeup(interrupt = true)
|
enterWakeup(interrupt = true)
|
||||||
}
|
}
|
||||||
@ -185,21 +182,15 @@ class VoiceController(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private fun enterWakeup(interrupt: Boolean) {
|
private fun enterWakeup(interrupt: Boolean) {
|
||||||
|
waitSpeechFailStartMs = 0L // ⭐ 唤醒即新会话
|
||||||
|
waitSpeechStartMs = 0L
|
||||||
if (interrupt) {
|
if (interrupt) {
|
||||||
Log.d(TAG, "🛑 Interrupt current speech / recording")
|
|
||||||
|
|
||||||
audioBuffer.clear()
|
audioBuffer.clear()
|
||||||
preBuffer.clear() // ⭐ 防止把旧唤醒词带进去
|
|
||||||
vadManager.reset()
|
vadManager.reset()
|
||||||
resetEnergyStat()
|
resetEnergyStat()
|
||||||
|
|
||||||
vadStarted = false
|
vadStarted = false
|
||||||
silenceStartMs = 0L
|
silenceStartMs = 0L
|
||||||
waitSpeechStartMs = 0L // ⭐
|
|
||||||
waitSpeechFailStartMs = 0L // ⭐
|
|
||||||
}
|
}
|
||||||
|
|
||||||
inKwsObserve = true
|
inKwsObserve = true
|
||||||
@ -209,7 +200,6 @@ class VoiceController(
|
|||||||
onWakeup()
|
onWakeup()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* ================= VAD START ================= */
|
/* ================= VAD START ================= */
|
||||||
|
|
||||||
private fun onVadStart() {
|
private fun onVadStart() {
|
||||||
@ -220,6 +210,7 @@ class VoiceController(
|
|||||||
vadStarted = true
|
vadStarted = true
|
||||||
recordingStartMs = System.currentTimeMillis()
|
recordingStartMs = System.currentTimeMillis()
|
||||||
silenceStartMs = 0L
|
silenceStartMs = 0L
|
||||||
|
waitSpeechFailStartMs = 0L // ⭐ 新一轮有效说话
|
||||||
waitSpeechStartMs = 0L // ⭐ 清掉“等待说话”超时
|
waitSpeechStartMs = 0L // ⭐ 清掉“等待说话”超时
|
||||||
resetEnergyStat()
|
resetEnergyStat()
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user