chittios-app / pyproject.toml
mechramc's picture
v1.4.0: streaming audio + acoustic wake word (openWakeWord 'hey jarvis'), gateway, capturer
1c7dc34 verified
Raw
History Blame Contribute Delete
3.07 kB
[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"
[project]
name = "chittios"
version = "1.4.0"
description = "ChittiOS β€” a local-first household companion for Reachy Mini"
readme = "README.md"
requires-python = ">=3.10"
# This app shell composes ChittiOS Core (`chittios_core`) and the HAL (`hal`):
# `chittios/chittios/main.py` builds the real engines and hands them to
# `chittios_core.orchestrator.ChittiOS`. Those two packages live at the repo root
# and are VENDORED into this app's wheel at publish time (copied under `chittios/`
# so a single `reachy-mini-app` wheel is self-contained) rather than pulled from
# PyPI β€” they are not published as standalone distributions. The publish/vendor
# step is the caller's; it is deliberately not run here. Until it is, install this
# app from the repo root where `chittios_core` and `hal` are importable.
dependencies = [
# The Reachy Mini SDK (the daemon also pre-seeds it into apps_venv).
"reachy-mini>=1.9",
# ChittiOS Core's base runtime (numpy + cv2 at module scope, model fetch,
# encrypted store). Vendored alongside this shell at publish.
"numpy>=1.26",
"opencv-python>=4.8",
"huggingface-hub>=0.23",
"cryptography>=42.0",
"keyring>=24.0",
# The voice experience, torch-free so it fits the Reachy Mini's 3.7 GB of RAM
# and tight disk. Face recognition is base (cv2); voice *identification*
# (ECAPA/speechbrain/torch, ~2 GB) is deliberately dropped here, and the VAD
# runs off faster-whisper's bundled ONNX Silero on onnxruntime rather than the
# torch-backed silero-vad package. What remains: resample, VAD+STT, TTS, the
# LLM client, mic capture, and Argon2id onboarding custody β€” none pull torch.
"scipy>=1.11",
"sounddevice>=0.4",
"faster-whisper>=1.0",
# faster-whisper's VAD (and any other ONNX model this app loads) runs on the
# ONNX Runtime; pinned here because the VAD is now a first-class dependency of
# the perception path, not just an implementation detail of STT.
"onnxruntime>=1.17",
# Fast on-device STT: Moonshine via sherpa-onnx (prebuilt aarch64 wheel, runs
# on the ONNX Runtime above). The primary transcriber on the CM4 β€” ~0.85 s a
# turn vs faster-whisper's ~4.7 s; faster-whisper stays the fallback. See
# chittios_core.conversation.stt.MoonshineStt.
"sherpa-onnx>=1.10",
# Acoustic wake-word detection ("hey Jarvis" today, a custom "hey Chitti" model
# later). Runs on the ONNX Runtime above; ships its own wake, mel-spectrogram,
# and embedding models, so no wake asset is bundled. See conversation.wake.
"openwakeword>=0.4",
"piper-tts>=1.2",
"httpx>=0.27",
"argon2-cffi>=23.1",
]
keywords = ["reachy-mini-app"]
[project.entry-points."reachy_mini_apps"]
chittios = "chittios.main:Chittios"
[tool.setuptools]
package-dir = { "" = "." }
include-package-data = true
[tool.setuptools.packages.find]
where = ["."]
[tool.setuptools.package-data]
chittios = ["**/*"] # Also include all non-.py files