81 lines
2.5 KiB
JSON
81 lines
2.5 KiB
JSON
{
|
|
"_description": "Tunables for core/* modules. Loaded via core.config_loader.load('core').",
|
|
|
|
"brain": {
|
|
"allowed_callback_prefixes": [
|
|
"Project.Sanad.motion.",
|
|
"Project.Sanad.voice.",
|
|
"motion.",
|
|
"voice."
|
|
],
|
|
"gestural_speaking_default": false
|
|
},
|
|
|
|
"logger": {
|
|
"log_level": "INFO",
|
|
"format": "%(asctime)s [%(name)s] %(levelname)-7s %(message)s",
|
|
"datefmt": "%Y-%m-%d %H:%M:%S",
|
|
"file_max_bytes": 10485760,
|
|
"file_backup_count": 7
|
|
},
|
|
|
|
"event_bus": {
|
|
"emit_timeout_sec": 0.5
|
|
},
|
|
|
|
"paths": {
|
|
"_comment": "Path roots — resolved against BASE_DIR in core/config.py",
|
|
"data": "data",
|
|
"logs": "logs",
|
|
"scripts": "scripts",
|
|
"model": "model",
|
|
"audio_recordings": "data/audio",
|
|
"motion_recordings": "data/recordings/motion",
|
|
"motions": "data/motions"
|
|
},
|
|
|
|
"gemini_defaults": {
|
|
"_comment": "Baseline Gemini API config — SINGLE SOURCE OF TRUTH. All voice modules read from here.",
|
|
"api_key": "AIzaSyDt9Xi83MDZuuPpfwfHyMD92X7ZKdGkqf8",
|
|
"model_live": "gemini-2.5-flash-native-audio-preview-12-2025",
|
|
"model_ws_uri": "wss://generativelanguage.googleapis.com/ws/google.ai.generativelanguage.v1alpha.GenerativeService.BidiGenerateContent",
|
|
"voice_name": "Charon",
|
|
"ws_timeout_sec": 30,
|
|
"default_system_prompt": "You are Sanad (Bousandah), a wise and friendly Emirati assistant. Speak strictly in the UAE dialect (Khaleeji). Be helpful, concise, and use local greetings like 'Marhaba' and 'Ya Khoy'."
|
|
},
|
|
|
|
"g1_hardware": {
|
|
"_comment": "G1 humanoid hardware constants — shared by every motion/voice module that talks to the arm.",
|
|
"num_motor": 29,
|
|
"enable_arm_sdk_index": 29,
|
|
"replay_hz": 60.0
|
|
},
|
|
|
|
"script_files": {
|
|
"_comment": "Filenames (under scripts/) used across voice + dashboard",
|
|
"persona": "sanad_script.txt",
|
|
"rules": "sanad_rule.txt",
|
|
"arm_phrases": "sanad_arm.txt"
|
|
},
|
|
|
|
"dashboard_defaults": {
|
|
"host": null,
|
|
"port": 8000,
|
|
"interface": "wlan0"
|
|
},
|
|
|
|
"audio_defaults": {
|
|
"_comment": "Host PulseAudio fallback only — the G1 deployment uses UDP multicast mic + AudioClient.PlayStream speaker (see SANAD_USE_G1_MIC in config.py LIVE_TUNE). Default here is the Jetson/G1 built-in platform-sound chip.",
|
|
"send_sample_rate": 16000,
|
|
"receive_sample_rate": 24000,
|
|
"chunk_size": 512,
|
|
"channels": 1,
|
|
"sink": "alsa_output.platform-sound.analog-stereo",
|
|
"source": "alsa_input.platform-sound.analog-stereo"
|
|
},
|
|
|
|
"dds": {
|
|
"network_interface_default": "eth0"
|
|
}
|
|
}
|