Profiling zeigte ~2,2 s Fixkosten pro Satz durch Modell-Start (piper-Binary je Aufruf). Der Provider nutzt jetzt die piper-Python-API: Stimmmodell wird einmal geladen (lru_cache), Synthese laeuft im Thread. Resampling in-process (audioop, numpy-Fallback fuer Py3.13) statt ffmpeg-Subprozess. Binary bleibt als Fallback. Messung (lokales Setup): erster Ton 5,84 s -> 2,66 s, Turn-Ende 9,82 s -> 4,04 s. - pyproject: piper-tts zum [local]-Extra - Tests pruefen weiter den Binary-Fallback (erzwingen _PIPER_LIB=False) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
34 lines
856 B
TOML
34 lines
856 B
TOML
[project]
|
|
name = "voice-assistant-gateway"
|
|
version = "0.1.0"
|
|
description = "Modular voice assistant gateway with pluggable audio endpoints and provider adapters"
|
|
readme = "README.md"
|
|
requires-python = ">=3.11"
|
|
dependencies = [
|
|
"fastapi>=0.116.0",
|
|
"uvicorn[standard]>=0.35.0",
|
|
"httpx>=0.28.0",
|
|
"pydantic>=2.11.0",
|
|
"pydantic-settings>=2.10.0",
|
|
"python-multipart>=0.0.20"
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
test = [
|
|
"pytest>=8.0"
|
|
]
|
|
# Lokale KI-Module (optional, schwergewichtig): lokales STT via faster-whisper,
|
|
# lokales TTS via piper (in-process -> Modell bleibt geladen, kein Start pro Satz).
|
|
local = [
|
|
"faster-whisper>=1.0",
|
|
"piper-tts>=1.2"
|
|
]
|
|
|
|
[build-system]
|
|
requires = ["setuptools>=68", "wheel"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[tool.setuptools.packages.find]
|
|
where = ["."]
|
|
include = ["app*"]
|
|
exclude = ["deploy*", "tests*"]
|