|
1 | 1 | #!/usr/bin/env python3 |
2 | 2 | import logging |
| 3 | + |
| 4 | +from src.track.person_follow_yolo import PersonFollower |
| 5 | + |
3 | 6 | logger = logging.getLogger(name='Log') |
4 | 7 | logger.info("开始加载语音助手") |
5 | 8 | import json |
|
29 | 32 | # os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com' |
30 | 33 |
|
31 | 34 | class VoiceAssistant: |
32 | | - def __init__(self, memory_manager ,robot_controller): |
| 35 | + def __init__(self, memory_manager ,robot_controller, cam_manager): |
33 | 36 | self.memory_manager = memory_manager |
34 | 37 | self.robot_controller = robot_controller |
35 | 38 | # 音频参数(与 Paraformer 兼容) |
@@ -68,6 +71,13 @@ def __init__(self, memory_manager ,robot_controller): |
68 | 71 | api_key=os.getenv("DASHSCOPE_API_KEY", "sk-51a6a596303e466f9054520ec297af09"), |
69 | 72 | base_url="https://dashscope.aliyuncs.com/compatible-mode/v1", |
70 | 73 | ) |
| 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 | + |
71 | 81 |
|
72 | 82 | def load_commands_db(self): |
73 | 83 | """加载本地命令数据库""" |
@@ -471,6 +481,14 @@ def execute_action(self, action, text ,fine_duration): |
471 | 481 | print("命令:握手") |
472 | 482 | self.robot_controller.give_hand() |
473 | 483 | 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" |
474 | 492 | else: |
475 | 493 | print(f"警告:无命令: {action}") |
476 | 494 |
|
|
0 commit comments