[project]
urls = { repository = "https://github.com/m-bain/whisperx" }
authors = [{ name = "Max Bain" }]
name = "whisperx"
version = "3.7.4"
description = "Time-Accurate Automatic Speech Recognition using Whisper."
readme = "README.md"
requires-python = ">=3.9, <3.14"
license = { text = "BSD-2-Clause" }

dependencies = [
    "ctranslate2>=4.5.0",
    "faster-whisper>=1.1.1",
    "nltk>=3.9.1",
    # Restrict numpy, onnxruntime, pandas, av to be compatible with Python 3.9
    "numpy>=2.0.2,<2.1.0; python_version <'3.13'",
    "onnxruntime>=1.19,<1.20.0; python_version <'3.10'",
    "pandas>=2.2.3,<2.3.0",
    "av<16.0.0",
    "numpy>=2.1.0,<2.3.0; python_version >='3.13'",
    "pyannote-audio>=3.3.2,<4.0.0",
    "torch~=2.8.0",
    "torchaudio~=2.8.0",
    "transformers>=4.48.0",
    "triton>=3.3.0; sys_platform == 'linux' and platform_machine == 'x86_64'" # only install triton on x86_64 Linux
]


[project.scripts]
whisperx = "whisperx.__main__:cli"

[build-system]
requires = ["setuptools"]

[tool.setuptools]
include-package-data = true

[tool.setuptools.packages.find]
where = ["."]
include = ["whisperx*"]

[tool.uv.sources]
torch = [
  { index = "pytorch-cpu", marker = "sys_platform == 'darwin'" },
  { index = "pytorch-cpu", marker = "platform_machine != 'x86_64' and sys_platform != 'darwin'" },
  { index = "pytorch", marker = "platform_machine == 'x86_64' and sys_platform != 'darwin'" },
]
torchaudio = [
  { index = "pytorch-cpu", marker = "sys_platform == 'darwin'" },
  { index = "pytorch-cpu", marker = "platform_machine != 'x86_64' and sys_platform != 'darwin'" },
  { index = "pytorch", marker = "platform_machine == 'x86_64' and sys_platform != 'darwin'" },
]
triton = [
  { index = "pytorch", marker = "sys_platform == 'linux'" },
]

[[tool.uv.index]]
name = "pytorch"
url = "https://download.pytorch.org/whl/cu128"
explicit = true

[[tool.uv.index]]
name = "pytorch-cpu"
url = "https://download.pytorch.org/whl/cpu"
explicit = true
