From 6f65a48686fb407a518e83a62a7991b6728fb407 Mon Sep 17 00:00:00 2001 From: ross <3024454314@qq.com> Date: Mon, 12 Jan 2026 16:15:49 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=8A=8A=E5=94=A4=E9=86=92?= =?UTF-8?q?=E6=92=AD=E6=94=BE=E6=8F=90=E7=A4=BA=E4=B9=9F=E7=BB=99=E5=BD=95?= =?UTF-8?q?=E9=9F=B3=E8=BF=9B=E5=8E=BB=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/zs/smarthuman/sherpa/VoiceController.kt | 4 +++- app/src/main/java/com/zs/smarthuman/ui/MainActivity.kt | 5 ----- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/zs/smarthuman/sherpa/VoiceController.kt b/app/src/main/java/com/zs/smarthuman/sherpa/VoiceController.kt index 81cdab2..aaec1b4 100644 --- a/app/src/main/java/com/zs/smarthuman/sherpa/VoiceController.kt +++ b/app/src/main/java/com/zs/smarthuman/sherpa/VoiceController.kt @@ -85,11 +85,12 @@ class VoiceController( // 唤醒检测 wakeupManager.acceptAudio(samples) if (wakeupManager.consumeWakeupFlag()) { + val preBufferSnapshot = preBuffer.toFloatArray() handleWakeupEvent() // 注册唤醒用户特征 CoroutineScope(Dispatchers.IO).launch { VoiceUtils.registerWakeupUser( - preBuffer = preBuffer, + preBuffer = ArrayDeque(preBufferSnapshot.asList()), // 用快照创建新队列 extractor = speakerExtractor, manager = speakerManager ) @@ -213,6 +214,7 @@ class VoiceController( if (stateManager.state == VoiceState.UPLOADING) return stopBackendAudio?.invoke() stateManager.enterWakeup(interrupt = true, resetRealtimeStats = ::resetRealtimeStats) + preBuffer.clear() onWakeup() } diff --git a/app/src/main/java/com/zs/smarthuman/ui/MainActivity.kt b/app/src/main/java/com/zs/smarthuman/ui/MainActivity.kt index 34af388..40397fd 100644 --- a/app/src/main/java/com/zs/smarthuman/ui/MainActivity.kt +++ b/app/src/main/java/com/zs/smarthuman/ui/MainActivity.kt @@ -37,7 +37,6 @@ import com.zs.smarthuman.BuildConfig import com.zs.smarthuman.R import com.zs.smarthuman.base.BaseActivity import com.zs.smarthuman.base.BaseViewModelActivity -import com.zs.smarthuman.bean.AudioDTO import com.zs.smarthuman.bean.NetworkStatusEventMsg import com.zs.smarthuman.bean.UserInfoResp import com.zs.smarthuman.bean.VersionUpdateResp @@ -191,10 +190,6 @@ class MainActivity : BaseViewModelActivity() voiceController = VoiceController( assetManager = assets, onWakeup = { - //每次唤醒前都要把前面的音频停掉 - if (backPlaying){ - mViewModel?.pauseVoice() - } UnityPlayerHolder.getInstance().cancelPCM() UnityPlayerHolder.getInstance() .sendVoiceToUnity(