numpy>=1.20.0
scipy>=1.7.0
librosa>=0.9.0
soundfile>=0.10.0
pyrubberband>=0.3.0
sounddevice>=0.4.0
requests>=2.27.0
tqdm>=4.62.0
pydantic>=1.9.0

[api]
fastapi>=0.75.0
uvicorn>=0.17.0
python-multipart>=0.0.5

[chatbot]
langchain>=0.0.139

[cli]
typer>=0.4.0
rich>=12.0.0

[dev]
pytest>=7.0.0
pytest-cov>=3.0.0
black>=22.1.0
isort>=5.10.0
mypy>=0.931
flake8>=4.0.0
sphinx>=4.4.0
sphinx-rtd-theme>=1.0.0

[full]
TTS>=0.10.0
black>=22.1.0
fastapi>=0.75.0
flake8>=4.0.0
inflect>=5.3.0
isort>=5.10.0
langchain>=0.0.139
mypy>=0.931
openai-whisper>=20230314
phonemizer>=3.0.0
praat-parselmouth>=0.4.0
pvporcupine>=2.1.0
pyctcdecode>=0.3.0
pytest-cov>=3.0.0
pytest>=7.0.0
python-multipart>=0.0.5
resemblyzer>=0.1.0
rich>=12.0.0
sphinx-rtd-theme>=1.0.0
sphinx>=4.4.0
torch>=1.10.0
torchaudio>=0.10.0
transformers>=4.18.0
typer>=0.4.0
unidecode>=1.3.0
uvicorn>=0.17.0
webrtcvad==2.0.10
webrtcvad>=2.0.10

[full:platform_system != "Windows"]
gruut>=2.0.0

[full:python_version < "3.10"]
librosa==0.8.0
numpy==1.19.3
tensorflow==1.15.0

[stt]
torch>=1.10.0
openai-whisper>=20230314
transformers>=4.18.0
pyctcdecode>=0.3.0

[tts]
torch>=1.10.0
torchaudio>=0.10.0
phonemizer>=3.0.0
unidecode>=1.3.0

[voice]
torch>=1.10.0
resemblyzer>=0.1.0
praat-parselmouth>=0.4.0
phonemizer>=3.0.0
unidecode>=1.3.0

[voice-all]
TTS>=0.10.0
inflect>=5.3.0
phonemizer>=3.0.0
praat-parselmouth>=0.4.0
resemblyzer>=0.1.0
torch>=1.10.0
unidecode>=1.3.0
webrtcvad==2.0.10

[voice-all:platform_system != "Windows"]
gruut>=2.0.0

[voice-all:python_version < "3.10"]
librosa==0.8.0
numpy==1.19.3
tensorflow==1.15.0

[voice-sv2tts]
webrtcvad==2.0.10
inflect>=5.3.0

[voice-sv2tts:python_version < "3.10"]
tensorflow==1.15.0
numpy==1.19.3
librosa==0.8.0

[voice-yourtts]
TTS>=0.10.0

[voice:platform_system != "Windows"]
gruut>=2.0.0

[wakeword]
pvporcupine>=2.1.0
webrtcvad>=2.0.10
