132 lines
4.5 KiB
JSON
132 lines
4.5 KiB
JSON
{
|
|
"paths": {
|
|
"data_dir": "AI_Photographer/Data/G1",
|
|
"app_data_dir": "AI_Photographer/Data",
|
|
"app_settings_dir": "AI_Photographer/Data/Settings",
|
|
"app_scripts_dir": "AI_Photographer/Data/Scripts",
|
|
"app_runtime_dir": "AI_Photographer/Data/Runtime",
|
|
"app_notes_dir": "AI_Photographer/Data/Notes",
|
|
"audio_prompts_dir": "AI_Photographer/Data/Audio",
|
|
"audio_prompt_records_file": "AI_Photographer/Data/Settings/audio_prompt_records.json",
|
|
"scripts_dir": "AI_Photographer/Scripts",
|
|
"web_dir": "AI_Photographer/Web",
|
|
"photos_dir": "AI_Photographer/photos/Captures",
|
|
"people_dir": "AI_Photographer/photos/people",
|
|
"samples_dir": "AI_Photographer/photos/samples",
|
|
"replay_recordings_dir": "AI_Photographer/Data/G1",
|
|
"replay_recorder_script": "",
|
|
"home_file": "arm_home.jsonl",
|
|
"photo_phrases_file": "AI_Photographer/Data/Scripts/photo_command_ai.txt",
|
|
"sanad_script_file": "AI_Photographer/Data/Scripts/sanad_script.txt",
|
|
"runtime_health_file": "AI_Photographer/Data/Runtime/runtime_health.json",
|
|
"autonomous_state_file": "AI_Photographer/Data/Runtime/autonomous_state.json",
|
|
"upload_db": "AI_Photographer/Data/Runtime/upload_db.json"
|
|
},
|
|
"timing": {
|
|
"photo_total_sec": 10.0,
|
|
"photo_thanks_sec": 3.0,
|
|
"photo_delay_sec": 5.0,
|
|
"replay_capture_end_margin_sec": 0.25,
|
|
"loop_rate": 10.0,
|
|
"ai_query_interval": 1.0
|
|
},
|
|
"server": {
|
|
"photo_server_port": 8080
|
|
},
|
|
"gemini": {
|
|
"api_key": "AIzaSyDt9Xi83MDZuuPpfwfHyMD92X7ZKdGkqf8",
|
|
"mic_enabled": true,
|
|
"model": "models/gemini-2.5-flash-native-audio-preview-12-2025",
|
|
"voice_name": "Charon",
|
|
"system_prompt_fallback": "You are Sanad (Bousandah), a friendly Emirati photographer assistant. Speak in UAE dialect (Khaleeji). Be short, energetic, and helpful."
|
|
},
|
|
"upload": {
|
|
"method": "http",
|
|
"url": "",
|
|
"s3_bucket": "",
|
|
"s3_region": "",
|
|
"s3_key": "",
|
|
"s3_secret": ""
|
|
},
|
|
"mode": {
|
|
"default_mode": "manual",
|
|
"current_mode": "manual"
|
|
},
|
|
"replay": {
|
|
"active_file": "photo_G3.jsonl"
|
|
},
|
|
"camera": {
|
|
"camera_index": 0,
|
|
"frame_width": 640,
|
|
"frame_height": 480,
|
|
"fps": 30,
|
|
"preferred_realsense_serial": "243622071722"
|
|
},
|
|
"vision": {
|
|
"detection_backend": "yolo",
|
|
"yolo_runtime": "ultralytics",
|
|
"yolo_ultralytics_device": "cpu",
|
|
"person_yolo_onnx": "Models/person.pt",
|
|
"face_yolo_onnx": "",
|
|
"input_size": 640,
|
|
"person_class_id": 0,
|
|
"person_score_thresh": 0.35,
|
|
"face_score_thresh": 0.35,
|
|
"nms_iou_thresh": 0.45,
|
|
"group_min_people": 3,
|
|
"group_link_distance_px": 220.0,
|
|
"yolo_strict_required": true,
|
|
"gemini_context_hz": 8.0,
|
|
"gemini_context_silent": true,
|
|
"idle_voice_listen_enabled": true,
|
|
"hard_target_lock_enabled": true,
|
|
"retake_prompt_enabled": true,
|
|
"autonomous_greeting_replay_enabled": true,
|
|
"autonomous_greeting_replay_file": "right_hand_up.jsonl",
|
|
"autonomous_capture_replay_enabled": true,
|
|
"retake_max_per_session": 1,
|
|
"framing_headroom_min_ratio": 0.06,
|
|
"framing_headroom_max_ratio": 0.25,
|
|
"framing_eye_line_min_ratio": 0.28,
|
|
"framing_eye_line_max_ratio": 0.48,
|
|
"framing_retake_score_threshold": 0.68,
|
|
"face_recognition_enabled": true,
|
|
"face_recognition_threshold": 0.88
|
|
},
|
|
"watchdog": {
|
|
"ws_initial_backoff_sec": 1.0,
|
|
"ws_max_backoff_sec": 20.0,
|
|
"component_restart_delay_sec": 1.0,
|
|
"camera_capture_retry_count": 2,
|
|
"camera_capture_retry_delay_sec": 0.8
|
|
},
|
|
"audio_prompts": {
|
|
"mode": "audio",
|
|
"fallback_to_gemini": true,
|
|
"files": {
|
|
"welcome_single": "welcome_single.wav",
|
|
"welcome_group": "welcome_group.wav",
|
|
"welcome_returning": "welcome_returning.wav",
|
|
"frame_single": "frame_single.wav",
|
|
"frame_group": "frame_group.wav",
|
|
"confirm_reminder": "confirm_reminder.wav",
|
|
"visitor_left": "visitor_left.wav",
|
|
"declined": "declined.wav",
|
|
"confirm_timeout": "confirm_timeout.wav",
|
|
"session_cancelled": "session_cancelled.wav",
|
|
"framing_timeout": "framing_timeout.wav",
|
|
"countdown_intro": "countdown_intro.wav",
|
|
"count_3": "count_3.wav",
|
|
"count_2": "count_2.wav",
|
|
"count_1": "count_1.wav",
|
|
"smile": "smile.wav",
|
|
"countdown_cancelled": "countdown_cancelled.wav",
|
|
"lost_from_frame": "lost_from_frame.wav",
|
|
"retake_recommended": "retake_recommended.wav",
|
|
"retake_yes": "retake_yes.wav",
|
|
"retake_limit": "retake_limit.wav",
|
|
"photo_saved_thanks": "photo_saved_thanks.wav"
|
|
}
|
|
}
|
|
}
|