From 659c470eba542383987aad227b7f918100f131fa Mon Sep 17 00:00:00 2001
From: wangzhibo <wangzhibo@shsening.com>
Date: 星期五, 11 九月 2026 15:09:05 +0800
Subject: [PATCH] 小智终端 5种 场景模式 OK

---
 xiaozhi-esp32-server/main/xiaozhi-server/plugins_func/functions/start_repeater.py |   29 +++++++++++++++++++----------
 1 files changed, 19 insertions(+), 10 deletions(-)

diff --git a/xiaozhi-esp32-server/main/xiaozhi-server/plugins_func/functions/start_repeater.py b/xiaozhi-esp32-server/main/xiaozhi-server/plugins_func/functions/start_repeater.py
index 58d2a1d..7a1e0e6 100644
--- a/xiaozhi-esp32-server/main/xiaozhi-server/plugins_func/functions/start_repeater.py
+++ b/xiaozhi-esp32-server/main/xiaozhi-server/plugins_func/functions/start_repeater.py
@@ -9,24 +9,28 @@
     "type": "function",
     "function": {
         "name": "start_repeater",
-        "description": "鍦ㄨ澶� SD 鍗′笂澶嶈鎸囧畾 MP3銆俷ame 蹇呴』涓� self.mp3.get_list 杩斿洖鐨� files[].name 瀹屽叏涓�鑷淬�俽epeat 鏄暣棣栧惊鐜鏁般�備笉瑕佺敤 play_music銆�",
+        "description": "鎵撳紑澶嶈鏈猴紝鍦ㄨ澶� SD 鍗′笂寰幆鎾斁 MP3銆俷ame 涓� self.mp3.get_list 鐨� files[].name 涓�鑷达紱鐪佺暐 name 鏃惰澶囦細鎾斁涓婃闊抽鎴� SD 鍗$涓�棣栥�俽epeat 鏄暣棣栧惊鐜鏁般�俿peed 鏄挱鏀惧�嶇巼 0.5锝�2.0锛岄粯璁ょ敱闊抽鐔熸倝澶╂暟鍐冲畾銆備笉瑕佺敤 play_music銆傛挱鏀炬湡闂翠笉浼氳亰澶┿��",
         "parameters": {
             "type": "object",
             "properties": {
                 "name": {
                     "type": "string",
-                    "description": "SD 鍗� MP3 鏂囦欢鍚嶏紝蹇呴』涓� get_list 鐨� files[].name 涓�鑷�",
+                    "description": "鍙�夈�係D 鍗� MP3 鏂囦欢鍚嶏紝蹇呴』涓� get_list 鐨� files[].name 涓�鑷达紱鐪佺暐鍒欐挱涓婃鎴栫涓�棣�",
                 },
                 "repeat": {
                     "type": "integer",
-                    "description": "鏁撮寰幆娆℃暟锛岄粯璁� 1",
+                    "description": "鏁撮寰幆娆℃暟锛岄粯璁� 1銆傚ぇ浜� 1 涓旈厤缃簡 repeat_speeds 鏃讹紝姣忎竴閬嶅彲浠ョ敤涓嶅悓鍊嶉��",
+                },
+                "speed": {
+                    "type": "number",
+                    "description": "鍙�夈�傛挱鏀惧�嶇巼 0.5锝�2.0锛岀渷鐣ュ垯鎸夌啛鎮夊ぉ鏁拌嚜鍔ㄩ�夋嫨",
                 },
                 "power_off_after": {
                     "type": "boolean",
                     "description": "鎾畬鍚庢槸鍚﹁蒋鍏虫満锛岄粯璁� false",
                 },
             },
-            "required": ["name"],
+            "required": [],
         },
     },
 }
@@ -35,9 +39,10 @@
 @register_function("start_repeater", start_repeater_function_desc, ToolType.SYSTEM_CTL)
 async def start_repeater(
     conn: "ConnectionHandler",
-    name: str,
+    name: str = "",
     repeat: int = 1,
     power_off_after: bool = False,
+    speed: float = None,
 ):
     from core.app_runtime.runtime import start_app_task
 
@@ -48,15 +53,19 @@
     if repeat_n < 1:
         repeat_n = 1
 
+    params = {
+        "name": name,
+        "repeat": repeat_n,
+        "power_off_after": bool(power_off_after),
+    }
+    if speed is not None and speed != "":
+        params["speed"] = speed
+
     result = await start_app_task(
         conn,
         "english_learning",
         "repeater",
-        {
-            "name": name,
-            "repeat": repeat_n,
-            "power_off_after": bool(power_off_after),
-        },
+        params,
         source="voice",
     )
     if result.action in (Action.ERROR, Action.RESPONSE):

--
Gitblit v1.9.1