[tool.poetry] name = "whisper-asr-webservice" version = "1.8.2" description = "Whisper ASR Webservice is a general-purpose speech recognition webservice." homepage = "https://github.com/ahmetoner/whisper-asr-webservice/" license = "https://github.com/ahmetoner/whisper-asr-webservice/blob/main/LICENCE" authors = ["Ahmet Öner", "Besim Alibegovic"] readme = "README.md" packages = [{ include = "app" }] [tool.poetry.scripts] whisper-asr-webservice = "app.webservice:start" [[tool.poetry.source]] name = "pytorch-cpu" url = "https://download.pytorch.org/whl/cpu" priority = "explicit" [tool.poetry.dependencies] python = "<3.13,>=3.10" fastapi = "^0.115.8" uvicorn = { extras = ["standard"], version = "^0.34.0" } python-multipart = "^0.0.20" ffmpeg-python = "^0.2.0" numpy = "<2.0.0" openai-whisper = "^20240930" faster-whisper = "^1.1.0" whisperx = "^3.3.1" tqdm = "^4.67.1" llvmlite = "^0.44.0" numba = "^0.61.0" torch = [ { version = "2.6.0", source = "pypi", markers = "sys_platform == 'darwin'"}, { version = "2.6.0", source = "pypi", markers = "platform_machine == 'aarch64' and sys_platform != 'darwin'"}, { version = "2.6.0", source = "pytorch-cpu", markers = "platform_machine == 'x86_64' and sys_platform != 'darwin'" }, ] torchaudio = [ { version = "2.6.0", source = "pypi", markers = "sys_platform == 'darwin'"}, { version = "2.6.0", source = "pypi", markers = "platform_machine == 'aarch64' and sys_platform != 'darwin'"}, { version = "2.6.0", source = "pytorch-cpu", markers = "platform_machine == 'x86_64' and sys_platform != 'darwin'" }, ] [poetry.group.dev.dependencies] pytest = "^8.3.4" ruff = "^0.9.6" black = "^25.1.0" mkdocs-material = "^9.6.4" pymdown-extensions = "^10.14.3" [build-system] requires = ["poetry-core>=1.0.0"] build-backend = "poetry.core.masonry.api" [tool.black] skip-string-normalization = true line-length = 120 [tool.ruff] line-length = 120 [tool.ruff.lint] select = [ "E", # pycodestyle errors "W", # pycodestyle warnings "F", # pyflakes "I", # isort "C", # flake8-comprehensions "B", # flake8-bugbear ] ignore = [ "E501", # line too long, handled by black "C901", # too complex ] [tool.ruff.lint.isort] order-by-type = true relative-imports-order = "closest-to-furthest" extra-standard-library = ["typing"] section-order = [ "future", "standard-library", "third-party", "first-party", "local-folder", ] known-first-party = []