onju-v2/pipeline/config.yaml.example
justLV 19d48d4e3c OpenClaw managed backend, VAD-aware interrupt, firmware fixes
- Add managed conversation backend for OpenClaw (x-openclaw-message-channel
  header, user field for device identity)
- Replace aggressive interrupt logic with VAD-aware check: only interrupt
  on actual speech, not background noise/trailing packets
- Fix 0xDD timeout units (was milliseconds, now seconds) and keep callActive
  alive with 30s hold during LLM+TTS processing
- Set callActive on boot for VOX mode so device accepts audio without tap
- Mic timeout no longer kills callActive — only double-tap ends the call
- LED feedback: scale to configured led_power, let device handle fade-down
- Add greeting toggle, TTS/SEND logging, pyserial dep, setuptools config
2026-04-07 20:16:33 -07:00

69 lines
2.2 KiB
Text

asr:
url: "http://localhost:8100" # parakeet-asr-server
conversation:
backend: "local" # "local" or "managed" (e.g. OpenClaw)
local:
base_url: "http://localhost:8080/v1" # mlx_lm.server, Ollama, OpenRouter, Gemini, etc.
api_key: "none" # set key or use ${ENV_VAR} reference
model: "mlx-community/gemma-3-4b-it-qat-4bit"
max_messages: 20
max_tokens: 300
system_prompt: "You are a helpful voice assistant. Keep responses concise (under 2 sentences)."
persist_dir: "data/conversations" # per-device message history (omit to disable)
# Gemini example:
# base_url: "https://generativelanguage.googleapis.com/v1beta/openai/"
# api_key: "${GEMINI_API_KEY}"
# model: "gemini-3.1-flash-lite-preview"
managed:
base_url: "http://127.0.0.1:18789/v1" # OpenClaw gateway
api_key: "${OPENCLAW_GATEWAY_TOKEN}" # env var reference
model: "openclaw/default"
max_tokens: 300
message_channel: "onju-voice" # x-openclaw-message-channel header
# provider_model: "anthropic/claude-opus-4-6" # optional: override backend LLM
tts:
backend: "elevenlabs" # "qwen3" (local) or "elevenlabs" (cloud)
default_voice: "Rachel"
qwen3:
url: "http://localhost:8880"
model: "mlx-community/Qwen3-TTS-12Hz-1.7B-Base-4bit"
ref_audio: ""
ref_text: ""
elevenlabs:
api_key: "" # your ElevenLabs API key
default_voice: "Rachel"
voices:
Rachel: "21m00Tcm4TlvDq8ikWAM" # add your voice IDs here
vad:
threshold: 0.5 # speech onset probability
neg_threshold: 0.35 # speech offset probability (hysteresis)
silence_time: 1.5
pre_buffer_s: 1.0
network:
udp_port: 3000
tcp_port: 3001
multicast_group: "239.0.0.1"
multicast_port: 12345
control_port: 3002
audio:
sample_rate: 16000
chunk_size: 480 # 30ms at 16kHz
opus_frame_size: 320 # 20ms at 16kHz
device:
default_volume: 8
default_mic_timeout: 60
led_fade: 6
led_power: 35
led_update_period: 0.2
greeting_wav: "data/hello_imhere.wav"
logging:
level: "INFO"