numpy>=1.24.0
requests>=2.31.0
appdirs>=1.4.0
coqui-tts<0.30.0,>=0.27.0
torch<2.9.0,>=2.1.0
torchvision<1.0.0,>=0.16.0
torchaudio<2.9.0,>=2.1.0
librosa>=0.10.0
sounddevice>=0.4.6
soundfile>=0.12.1

[all]
sounddevice>=0.4.6
webrtcvad>=2.0.10
PyAudio>=0.2.13
openai-whisper>=20230314
coqui-tts<0.30.0,>=0.27.0
torch<2.9.0,>=2.1.0
torchvision<1.0.0,>=0.16.0
torchaudio<2.9.0,>=2.1.0
librosa>=0.10.0
soundfile>=0.12.1
flask>=2.0.0
tiktoken>=0.6.0

[audio-only]
sounddevice>=0.4.6
webrtcvad>=2.0.10
PyAudio>=0.2.13
soundfile>=0.12.1

[core-stt]
openai-whisper>=20230314
tiktoken>=0.6.0

[core-tts]
coqui-tts<0.30.0,>=0.27.0
torch<2.9.0,>=2.1.0
torchvision<1.0.0,>=0.16.0
torchaudio<2.9.0,>=2.1.0
librosa>=0.10.0

[dev]
pytest>=7.0.0
black>=22.0.0
flake8>=5.0.0

[stt]
openai-whisper>=20230314
tiktoken>=0.6.0

[tts]
coqui-tts<0.30.0,>=0.27.0
torch<2.9.0,>=2.1.0
torchvision<1.0.0,>=0.16.0
torchaudio<2.9.0,>=2.1.0
librosa>=0.10.0

[voice]
sounddevice>=0.4.6
webrtcvad>=2.0.10
PyAudio>=0.2.13
soundfile>=0.12.1

[voice-full]
sounddevice>=0.4.6
webrtcvad>=2.0.10
PyAudio>=0.2.13
openai-whisper>=20230314
coqui-tts<0.30.0,>=0.27.0
torch<2.9.0,>=2.1.0
torchvision<1.0.0,>=0.16.0
torchaudio<2.9.0,>=2.1.0
librosa>=0.10.0
soundfile>=0.12.1
tiktoken>=0.6.0

[web]
flask>=2.0.0
