95 lines
2.1 KiB
JSON
95 lines
2.1 KiB
JSON
{
|
|
"server": {
|
|
"host": "0.0.0.0",
|
|
"port": 8000,
|
|
"cors_origins": ["http://localhost:3000", "http://localhost:8080"],
|
|
"serve_webpage": true,
|
|
"webpage_mount": "/voice-demo"
|
|
},
|
|
"audio": {
|
|
"sample_rate_hz": 16000,
|
|
"channels": 1,
|
|
"frame_ms": 20
|
|
},
|
|
"audio_filter": {
|
|
"enabled": false,
|
|
"provider": "deepfilternet",
|
|
"lib_path": null,
|
|
"model_path": null,
|
|
"model_sample_rate_hz": 48000,
|
|
"atten_lim_db": 100.0,
|
|
"post_filter_beta": 0.0,
|
|
"log_level": null
|
|
},
|
|
"session": {
|
|
"inactivity_timeout_sec": 60
|
|
},
|
|
"turn": {
|
|
"vad": {
|
|
"confidence": 0.7,
|
|
"start_secs": 0.2,
|
|
"stop_secs": 0.4,
|
|
"min_volume": 0.6
|
|
},
|
|
"interruption_min_chars": 3,
|
|
"interruption_use_interim": true,
|
|
"interruption_short_replies": [
|
|
"是",
|
|
"是的",
|
|
"对",
|
|
"对的",
|
|
"嗯",
|
|
"好",
|
|
"好的",
|
|
"行",
|
|
"可以",
|
|
"没问题",
|
|
"不是",
|
|
"不",
|
|
"不行",
|
|
"不用",
|
|
"不要",
|
|
"没有",
|
|
"否"
|
|
],
|
|
"user_speech_timeout_sec": 0.8,
|
|
"idle_prompt_timeout_sec": 8.0,
|
|
"idle_prompt_max_count": 1,
|
|
"idle_prompt_text": "我先停在这里。你可以继续说你的想法,或者让我根据刚才的内容帮你整理下一步。"
|
|
},
|
|
"agent": {
|
|
"system_prompt": "You are a helpful, friendly voice assistant. Keep responses concise and natural for spoken conversation.",
|
|
"greeting": "Please introduce yourself briefly.",
|
|
"greeting_mode": "generated",
|
|
"response_state": {
|
|
"enabled": false,
|
|
"tag": "state",
|
|
"event_type": "response.state",
|
|
"max_prefix_chars": 256
|
|
}
|
|
},
|
|
"services": {
|
|
"stt": {
|
|
"provider": "openai",
|
|
"api_key": "",
|
|
"base_url": null,
|
|
"model": "gpt-4o-mini-transcribe",
|
|
"language": "en"
|
|
},
|
|
"llm": {
|
|
"provider": "openai",
|
|
"api_key": "",
|
|
"base_url": null,
|
|
"model": "gpt-4o-mini",
|
|
"temperature": 0.7
|
|
},
|
|
"tts": {
|
|
"provider": "openai",
|
|
"api_key": "",
|
|
"base_url": null,
|
|
"model": "gpt-4o-mini-tts",
|
|
"voice": "alloy"
|
|
}
|
|
}
|
|
}
|