From 220e4fab27b7f419b3e89e2f2d28ae789aac09d7 Mon Sep 17 00:00:00 2001
From: wangzhibo <wangzhibo@shsening.com>
Date: 星期四, 08 十月 2026 16:29:55 +0800
Subject: [PATCH] 5种场景模式家长端ok

---
 xiaozhi-esp32-2.2.6/main/audio/wake_words/afe_wake_word.h |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/xiaozhi-esp32-2.2.6/main/audio/wake_words/afe_wake_word.h b/xiaozhi-esp32-2.2.6/main/audio/wake_words/afe_wake_word.h
index 1e641ad..8c7f3d7 100644
--- a/xiaozhi-esp32-2.2.6/main/audio/wake_words/afe_wake_word.h
+++ b/xiaozhi-esp32-2.2.6/main/audio/wake_words/afe_wake_word.h
@@ -31,6 +31,10 @@
     void OnOfflineCommandDetected(std::function<void(const std::string& command)> callback);
     void Start();
     void Stop();
+    void ReleaseRuntime() override;
+    bool EnsureRuntime() override;
+    void ClearWakeBuffers() override;
+    void AbortWakeWordEncode() override;
     size_t GetFeedSize();
     void EncodeWakeWordData();
     bool GetWakeWordOpus(std::vector<uint8_t>& opus);
@@ -57,11 +61,18 @@
     TaskHandle_t wake_word_encode_task_ = nullptr;
     StaticTask_t* wake_word_encode_task_buffer_ = nullptr;
     StackType_t* wake_word_encode_task_stack_ = nullptr;
+    TaskHandle_t detection_task_handle_ = nullptr;
+    StaticTask_t* detection_task_buffer_ = nullptr;
+    StackType_t* detection_task_stack_ = nullptr;
     std::deque<std::vector<int16_t>> wake_word_pcm_;
     std::deque<std::vector<uint8_t>> wake_word_opus_;
     std::mutex wake_word_mutex_;
     std::condition_variable wake_word_cv_;
 
+    bool detection_task_started_ = false;
+
+    bool CreateAfe();
+    bool EnsureDetectionTask();
     void StoreWakeWordData(const int16_t* data, size_t size);
     void AudioDetectionTask();
 };

--
Gitblit v1.9.1