# Assistant project Voice assistant on a Raspberry Pi, talking to OpenAI Realtime API for voice I/O. ## Target device - Host: `assistant` (hostname), IP `192.168.50.115` - mDNS name `assistant.local` is NOT resolvable from this sandbox — use the IP. - OS: Debian (Raspberry Pi OS), kernel `6.12.75+rpt-rpi-v8`, aarch64 - SSH user: `pi`, password: `assistant` ## SSH access from this sandbox `ping` and `ssh`/`sshpass` are installed via apt (`iputils-ping`, `openssh-client`, `sshpass`). The host key is already in `~/.ssh/known_hosts`. Run a command on the Pi: ```sh sshpass -p 'assistant' ssh pi@192.168.50.115 '' ``` Copy a file to the Pi: ```sh sshpass -p 'assistant' scp pi@192.168.50.115: ``` ## Prototype + probe findings `findings.md` is the canonical record of what we proved during the prototype + C# probe phase. Read it before starting any audio, wakeword, or Pi-client work — it captures hardware constraints (USB Speaker Phone is 48 kHz-native, mic and speaker are the same device), the .NET-on-Linux env-var gotcha (`Environment.SetEnvironmentVariable` does NOT reach libc `getenv()`; you must P/Invoke `setenv` for libportaudio and onnxruntime to see env knobs), and the punch list of items to redesign before the main assistant. The Python prototypes live at `tests/01-record-play/` and `tests/02-wakeword/`; the C# Test 1 port at `tests/01-record-play-cs/` (deployed via `bin/probe-cs`).