Skip to content

Commit 0bab16f

Browse files
author
shadow-in-the-west
committed
no message
1 parent 4b0187d commit 0bab16f

4 files changed

Lines changed: 38 additions & 3 deletions

File tree

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,5 @@ test_raw.wav
1414
*.log
1515
#调试帧
1616
frames/
17-
.idea/
17+
.idea/
18+
src/track/output_frames

assets/family_info.json

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,20 @@
4242
"audio_file": "assets/voice/dog/dog_ok.wav",
4343
"command":"play off"
4444
},
45+
{
46+
"question": "开启跟随模式",
47+
"answer": "好的",
48+
"update_time": "2025-10-01 16:35:00",
49+
"audio_file": "assets/voice/dog/dog_ok.wav",
50+
"command":"track on"
51+
},
52+
{
53+
"question": "关闭跟随模式",
54+
"answer": "好的",
55+
"update_time": "2025-10-01 16:35:00",
56+
"audio_file": "assets/voice/dog/dog_ok.wav",
57+
"command":"track off"
58+
},
4559
{
4660
"question": "小影,往前走。",
4761
"answer": "好的,前进。",

src/main.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# -*- coding: utf-8 -*-
22
import logging
33
import utils.logger
4+
from src.track.person_follow_yolo import PersonFollower
5+
46
logger_level=logging.INFO # 日志级别,DEBUG/INFO/WARNING/ERROR
57
utils.logger.get_logger(name='Log', log_level=logger_level)
68
logger = logging.getLogger(name='Log')
@@ -66,7 +68,7 @@ def get_camera_source():
6668
img_size=(256, 256)
6769
)
6870
'''
69-
voice_assistant = VoiceAssistant(memory_manager,robot_controller)
71+
voice_assistant = VoiceAssistant(memory_manager,robot_controller, cam_manager)
7072

7173

7274
# 为每个检测器创建单独的线程

src/speech/voice_assistant.py

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
#!/usr/bin/env python3
22
import logging
3+
4+
from src.track.person_follow_yolo import PersonFollower
5+
36
logger = logging.getLogger(name='Log')
47
logger.info("开始加载语音助手")
58
import json
@@ -29,7 +32,7 @@
2932
# os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com'
3033

3134
class VoiceAssistant:
32-
def __init__(self, memory_manager ,robot_controller):
35+
def __init__(self, memory_manager ,robot_controller, cam_manager):
3336
self.memory_manager = memory_manager
3437
self.robot_controller = robot_controller
3538
# 音频参数(与 Paraformer 兼容)
@@ -68,6 +71,13 @@ def __init__(self, memory_manager ,robot_controller):
6871
api_key=os.getenv("DASHSCOPE_API_KEY", "sk-51a6a596303e466f9054520ec297af09"),
6972
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
7073
)
74+
follower = PersonFollower(
75+
robot=robot_controller,
76+
camera_manager=cam_manager,
77+
model_path="yolov8n.pt" # 确保本地能加载,或让 ultralytics 自动下载
78+
)
79+
self.follower_thread = threading.Thread(target=follower.run, name="Follower_Thread")
80+
7181

7282
def load_commands_db(self):
7383
"""加载本地命令数据库"""
@@ -471,6 +481,14 @@ def execute_action(self, action, text ,fine_duration):
471481
print("命令:握手")
472482
self.robot_controller.give_hand()
473483
return "assets/voice/dog/dog_give_hand.wav"
484+
elif action == "track on":
485+
print("开启跟随")
486+
self.follower_thread.start()
487+
return "assets/voice/dog/dog_ok.wav"
488+
elif action == "track on":
489+
print("关闭跟随(暂时关不掉)")
490+
491+
return "assets/voice/dog/dog_ok.wav"
474492
else:
475493
print(f"警告:无命令: {action}")
476494

0 commit comments

Comments
 (0)