Wisconsin Robotics Outreach 2025/2026
- Voice: AI voice assistant
- Camera: CV facial tracking
- MotorControl: Servo controls
This project's dependencies are managed by uv. The pyproject.toml file contains the dependencies list, and descriptions of basic commands can be found here.
uv run program.py: Runs your program with up-to-date dependencies.uv add: Add a dependency to the entire project. (This updates pyproject.toml and runsuv sync.)uv remove: Remove a dependency from the entire project. (This updates pyproject.toml and runsuv sync.)uv sync: Updates your environment to match pyproject.toml.- Install uv for development on personal computer
-
Connect the Bluetooth speaker (with microphone) to the Pi.
-
Run:
uv run Voice/main.py
Voice/
├── main.py
├── voice/
│ ├── config.py (For constants, settings, and Finley's prompt)
│ ├── audio_io.py (Microphone & speaker I/O)
│ ├── health.py (Startup device checks)
│ ├── stt_whisper.py (Speech to text)
│ ├── llm_ollama.py (LLM response generation)
│ ├── tts_piper.py (Text to speech with streaming)
│ └── app.py (Main loop)
├── en_GB-northern_english_male-medium.onnx (TTS voice model)
└── en_GB-northern_english_male-medium.onnx.json (TTS voice model)
- Add activation trigger (Speak "Hey Finley" or press a button)
- Decrease Time To First Token (Start speech to text before LLM generation is completed, switch to a faster (smaller) LLM, test the AI HAT we ordered)
- Give Finley a personality!!!! 🐟🐟🐟
- Allow mechanical responses? (e.g., Finley says "--shake_head--" and robot shakes its head.)