websockets>=12.0
PyYAML>=6.0

[:python_version < "3.12"]
numpy<2.0,>=1.26

[:python_version >= "3.12"]
numpy>=2.1

[dev]
pytest>=8.0
pytest-asyncio>=0.23
ruff>=0.4
mypy>=1.10

[kokoro]
torch>=2.0.0

[kokoro:python_version < "3.13"]
kokoro>=0.9.0

[llm]
fastapi>=0.100.0
uvicorn>=0.23.0
litellm>=1.0.0
httpx>=0.27.0
cryptography>=41.0
python-dotenv>=1.0.0
yfinance>=0.2.0
feedparser>=6.0.0
trafilatura>=1.6.0
ddgs>=9.0.0
padacioso>=1.0.0
rapidfuzz>=3.0.0
zeroconf>=0.130

[mediakeys]

[mediakeys:platform_system == "Linux"]
evdev>=1.6

[mqtt]
aiomqtt>=2.0.0

[node]
sounddevice>=0.4.6
zeroconf>=0.130

[server]
httpx>=0.27.0
python-dotenv>=1.0.0
zeroconf>=0.130

[sound]
av>=10.0

[speaker]
fastapi>=0.100.0
uvicorn>=0.23.0
speechbrain>=1.0.0
torch>=2.0.0
torchaudio>=2.0.0
sounddevice>=0.4.6
httpx>=0.27.0
zeroconf>=0.130

[stt]
fastapi>=0.100.0
uvicorn>=0.23.0
faster-whisper>=1.0.0
openai>=1.0.0
python-dotenv>=1.0.0
zeroconf>=0.130
wyoming>=1.6.0

[tts]
fastapi>=0.100.0
uvicorn>=0.23.0
openai>=1.0.0
python-dotenv>=1.0.0
zeroconf>=0.130
wyoming>=1.6.0

[wakeword]
openwakeword>=0.6.0
