Funk-lab/stt/client/pyproject.toml
ALI YESILKAYA 4d8cc1968d
feat(stt-client): ASR enfichable — backend onnx Parakeet/Nemotron en plus de whisper (#32)
Phase 0 (abstraction) + Phase 1 (backend onnx), additif et rétrocompatible.

- voice/asr/ : protocole ASRBackend (load + transcribe) + factory make_backend
  pilotée par cfg["asr_engine"]. Imports lourds lazy → stt --help/config OK sans
  aucun moteur installé.
- whisper.py : faster-whisper extrait tel quel (défaut, comportement inchangé).
- onnx_parakeet.py : onnx-asr (Parakeet/Canary/Nemotron ONNX, multilingue FR,
  ~600M, CPU rapide / GPU AMD via onnxruntime-rocm). Providers configurables ;
  message d'install actionnable si onnx-asr absent.
- engine.py : délègue load()/_transcribe() au backend (le reste — VAD, wake word,
  TTS — inchangé).
- config : [voice] asr_engine="whisper" (défaut), onnx_model, onnx_providers.
- pyproject : extras optionnels onnx / onnx-rocm ; bump 0.6.1 → 0.7.0.

Bascule à chaud par config, rollback = asr_engine="whisper". Streaming = phase 2
(spike séparé). admin/ia/stt.md mis à jour.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 14:28:35 +02:00

38 lines
1.2 KiB
TOML

[project]
name = "stt"
version = "0.7.0"
description = "STT — client vocal Jarvis du homelab Funk (voix + HUD, parle au STT-server)"
requires-python = ">=3.11"
readme = "README.md"
# Client : voix locale + HUD. L'inférence est déléguée au STT-server (pas d'anthropic/qdrant ici).
dependencies = [
"faster-whisper>=1.0.0", # STT local
"sounddevice>=0.4.6", # capture micro
"numpy>=1.24.0",
"requests>=2.31.0", # appels HTTP vers le STT-server
"webrtcvad-wheels>=2.0.10",# VAD / wake word
"websockets>=12.0", # backend ↔ HUD
"tomli-w>=1.0.0", # écriture config TOML
]
# Backend ASR alternatif (asr_engine="onnx") : NVIDIA Parakeet/Canary/Nemotron en ONNX.
# Hors du core pour garder l'install légère. CPU : onnx ; GPU AMD : onnx-rocm.
[project.optional-dependencies]
onnx = ["onnx-asr>=0.11", "onnxruntime>=1.18"]
onnx-rocm = ["onnx-asr>=0.11", "onnxruntime-rocm>=1.18"]
[project.scripts]
stt = "stt.cli:main"
[build-system]
requires = ["setuptools>=68"]
build-backend = "setuptools.build_meta"
[tool.setuptools.packages.find]
where = ["."]
include = ["stt*"]
# Le HUD (assets web) est livré comme données du package stt/
[tool.setuptools.package-data]
stt = ["hud/*", "hud/**/*"]