diff --git a/README.md b/README.md index 444c0df..dc5f783 100644 --- a/README.md +++ b/README.md @@ -74,6 +74,8 @@ Go to `chrome-extension` for instructions. | Feature | `uv sync` | `pip install -e` | |-----------|-------------|-------------| +| **Apple Silicon MLX Whisper backend** | `uv sync --extra mlx-whisper` | `pip install -e ".[mlx-whisper]"` | +| **Voxtral (MLX backend, Apple Silicon)** | `uv sync --extra voxtral-mlx` | `pip install -e ".[voxtral-mlx]"` | | **CPU PyTorch stack** | `uv sync --extra cpu` | `pip install -e ".[cpu]"` | | **CUDA 12.9 PyTorch stack** | `uv sync --extra cu129` | `pip install -e ".[cu129]"` | | **Translation** | `uv sync --extra translation` | `pip install -e ".[translation]"` | @@ -114,6 +116,7 @@ detection is more reliable and does not bias towards English. ```bash # Apple Silicon (native MLX, recommended) +pip install -e ".[voxtral-mlx]" wlk --backend voxtral-mlx # Linux/GPU (HuggingFace transformers) diff --git a/pyproject.toml b/pyproject.toml index 67ec1b6..6307071 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -38,6 +38,15 @@ dependencies = [ test = ["pytest>=7.0", "pytest-asyncio>=0.21"] translation = ["nllw"] sentence_tokenizer = ["mosestokenizer", "wtpsplit"] +mlx-whisper = [ + 'mlx>=0.11.0; sys_platform == "darwin" and platform_machine == "arm64"', + 'mlx-whisper>=0.4.0; sys_platform == "darwin" and platform_machine == "arm64"', +] +voxtral-mlx = [ + 'mlx>=0.11.0; sys_platform == "darwin" and platform_machine == "arm64"', + 'mlx-whisper>=0.4.0; sys_platform == "darwin" and platform_machine == "arm64"', + "mistral-common[audio]", +] voxtral-hf = [ "transformers>=5.2.0; python_version >= '3.10'", "mistral-common[audio]", diff --git a/uv.lock b/uv.lock index fc9083e..29ce1a1 100644 --- a/uv.lock +++ b/uv.lock @@ -2154,7 +2154,7 @@ dependencies = [ { name = "numpy" }, { name = "pillow" }, { name = "pydantic" }, - { name = "pydantic-extra-types", extra = ["pycountry"], marker = "(extra == 'extra-14-whisperlivekit-cpu' and extra == 'extra-14-whisperlivekit-cu129') or (extra == 'extra-14-whisperlivekit-cu129' and extra == 'extra-14-whisperlivekit-diarization-diart') or (extra != 'extra-14-whisperlivekit-diarization-diart' and extra == 'extra-14-whisperlivekit-voxtral-hf') or (extra != 'extra-14-whisperlivekit-cu129' and extra == 'extra-14-whisperlivekit-voxtral-hf')" }, + { name = "pydantic-extra-types", extra = ["pycountry"] }, { name = "requests" }, { name = "tiktoken" }, { name = "typing-extensions" }, @@ -2170,6 +2170,62 @@ audio = [ { name = "soxr" }, ] +[[package]] +name = "mlx" +version = "0.30.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mlx-metal", marker = "sys_platform == 'darwin' or (extra == 'extra-14-whisperlivekit-cpu' and extra == 'extra-14-whisperlivekit-cu129') or (extra == 'extra-14-whisperlivekit-cu129' and extra == 'extra-14-whisperlivekit-diarization-diart') or (extra == 'extra-14-whisperlivekit-diarization-sortformer' and extra == 'extra-14-whisperlivekit-voxtral-hf')" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/93/81/21d745beeda53ee29e9c027d806f1e1cac983e8ddb3d6b18d44a1b30a11b/mlx-0.30.6-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:e721d29c4250ada3cba7a5ad43d358b42401600e792c378ed6b52c9d692aaba8", size = 573359, upload-time = "2026-02-06T03:45:08.41Z" }, + { url = "https://files.pythonhosted.org/packages/05/08/826286458df5ea91efc380d71fd8058ee7338207c6b547204f2758e168d8/mlx-0.30.6-cp311-cp311-macosx_15_0_arm64.whl", hash = "sha256:23f55c1c160a38ab350f4f7ce3ab10c490df39800ad35c4821c3ef5fa89ec24e", size = 573359, upload-time = "2026-02-06T03:45:09.688Z" }, + { url = "https://files.pythonhosted.org/packages/56/aa/3fc9ac795934182e680a0cbeb99202838e4548139cfd580015dcfbfb7ee8/mlx-0.30.6-cp311-cp311-macosx_26_0_arm64.whl", hash = "sha256:37c37571f8c1567c2b7e4871237b92a2b321fb8157d6426373be946c03e49ebd", size = 573406, upload-time = "2026-02-06T03:45:11.383Z" }, + { url = "https://files.pythonhosted.org/packages/af/d1/b8bcc332e3c268bf59632d7a8f1b5c8e6a4b154d651aa20b93e359e3c004/mlx-0.30.6-cp311-cp311-manylinux_2_35_aarch64.whl", hash = "sha256:253317a2bab3a1927d7cb89267690d82525acb5810f30d696ff9b705e7f8a78a", size = 636997, upload-time = "2026-02-06T03:45:12.619Z" }, + { url = "https://files.pythonhosted.org/packages/89/fa/bdc4b8aa6d078e724decb754b0f04ac1a25e46c190e52639906401c3b8b8/mlx-0.30.6-cp311-cp311-manylinux_2_35_x86_64.whl", hash = "sha256:4e2058ac219d99d38baa90f810947c6bfa09a28511dfe660629012a7c470c35d", size = 669638, upload-time = "2026-02-06T03:45:14.103Z" }, + { url = "https://files.pythonhosted.org/packages/85/fe/85acff870a9949494fd505b22c34d63eb127442f5f8751a159d3a78f7ef6/mlx-0.30.6-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:47d20016cb5733d06c1d017412a31983dbe3237cf70942760430188922ffc1ba", size = 573484, upload-time = "2026-02-06T03:45:15.88Z" }, + { url = "https://files.pythonhosted.org/packages/e1/14/5546082ee37118b33afb6300d8e07d03efea2dbba838d514d9465f87489b/mlx-0.30.6-cp312-cp312-macosx_15_0_arm64.whl", hash = "sha256:6b8c133df2d6a2ed173d2b7bb50d7032a13be84e1792b7d79171ad8f50a8c0ea", size = 573486, upload-time = "2026-02-06T03:45:17.506Z" }, + { url = "https://files.pythonhosted.org/packages/ef/b5/ae04666a7b8bda74e2c6903756710103e283ea6fa4edd2c92449ad4547d6/mlx-0.30.6-cp312-cp312-macosx_26_0_arm64.whl", hash = "sha256:31eabb5d1da4ac7b16f2042fdb046b993cdf0f32bc3312e0af469232bb67720b", size = 573509, upload-time = "2026-02-06T03:45:18.68Z" }, + { url = "https://files.pythonhosted.org/packages/9f/8e/fdee70051e2c7f523f9b22575f05bdb1b47300aba1ecda15bda98a9b01c1/mlx-0.30.6-cp312-cp312-manylinux_2_35_aarch64.whl", hash = "sha256:070010932d424005e6c9c76b379ccdf4d96b385658fdb34dc780fa4eb24cb1a0", size = 622061, upload-time = "2026-02-06T03:45:19.984Z" }, + { url = "https://files.pythonhosted.org/packages/65/dd/fe29f1e19e5268a8f892c83be35f14e63f1aea3baf7e7e44e246d4fea184/mlx-0.30.6-cp312-cp312-manylinux_2_35_x86_64.whl", hash = "sha256:9084c8f20544ec6a53aa3edcd2da85d205e07ff80bd47151633219bd5cfcd23c", size = 663715, upload-time = "2026-02-06T03:45:21.873Z" }, + { url = "https://files.pythonhosted.org/packages/ae/5b/e460e144a34d5529e010056cccf50b538d56ed001473bc6b246018fd58cb/mlx-0.30.6-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:ed86f8bffc174c2f259ca589ea25464c96cf69d1bb457074a2bf2ef53737e54f", size = 573515, upload-time = "2026-02-06T03:45:23.405Z" }, + { url = "https://files.pythonhosted.org/packages/60/25/69833fefb9a3fef30b56792b1bcd022496c4fea83e45411d289b77ef7546/mlx-0.30.6-cp313-cp313-macosx_15_0_arm64.whl", hash = "sha256:c52294958269e20f300639a17c1900ca8fc737d859ddda737f9811e94bd040e5", size = 573516, upload-time = "2026-02-06T03:45:24.618Z" }, + { url = "https://files.pythonhosted.org/packages/9c/6a/7e7fbeebc5cb51b6a5eba96b263a6298707bcbdc059f4b0b73e088bc3dea/mlx-0.30.6-cp313-cp313-macosx_26_0_arm64.whl", hash = "sha256:b5b6636f7c49a4d86d8ec82643b972f45a144a7a9f3a967b27b2e6e22cf71e6a", size = 573592, upload-time = "2026-02-06T03:45:25.928Z" }, + { url = "https://files.pythonhosted.org/packages/93/06/280f6f2ba80520a7109730425eda0d966658793aa0d02d8be8d351f75253/mlx-0.30.6-cp313-cp313-manylinux_2_35_aarch64.whl", hash = "sha256:67e6c9e30a9faeacc209917ef5523177cf9b086914b6b5d83ff886e4294b727d", size = 622011, upload-time = "2026-02-06T03:45:28.165Z" }, + { url = "https://files.pythonhosted.org/packages/fe/35/f872afbee9c079cc69924d9e9c46f5663adb7da58cba3511db082dd307c1/mlx-0.30.6-cp313-cp313-manylinux_2_35_x86_64.whl", hash = "sha256:47db8b16fcb6f6c5a47c0bdb24ed377b41237017ac93aa6cb6aa206c9bdf82e4", size = 663650, upload-time = "2026-02-06T03:45:30.315Z" }, +] + +[[package]] +name = "mlx-metal" +version = "0.30.6" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f3/85/44406b521f920248fad621334d4dc15e77660a494edf890e7cbee33bf38d/mlx_metal-0.30.6-py3-none-macosx_14_0_arm64.whl", hash = "sha256:ea6d0c973def9a5b4f652cc77036237db3f88c9d0af63701d76b5fddde99b820", size = 38437818, upload-time = "2026-02-06T03:44:56.19Z" }, + { url = "https://files.pythonhosted.org/packages/d0/cb/10a516995f7d0c154b0d7e633c54b51e96977a86a355105b6474cfcbe0d0/mlx_metal-0.30.6-py3-none-macosx_15_0_arm64.whl", hash = "sha256:0f8cb94634d07e06a372d6ad9a090f38a18bab1ff19a140aede60eacf707bb94", size = 38433701, upload-time = "2026-02-06T03:44:59.678Z" }, + { url = "https://files.pythonhosted.org/packages/4c/7d/70cb272f7373c334709f210ed8420511fc9d64d05a7a646c0b3b94c29c04/mlx_metal-0.30.6-py3-none-macosx_26_0_arm64.whl", hash = "sha256:d761ae26304f2c4b454eeea7f612a56919d9e5e57dbb1dc0788f8e34aa6f41c2", size = 47718448, upload-time = "2026-02-06T03:45:03.133Z" }, +] + +[[package]] +name = "mlx-whisper" +version = "0.4.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "huggingface-hub", version = "0.36.2", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.13' and sys_platform != 'linux' and extra == 'extra-14-whisperlivekit-cu129' and extra == 'extra-14-whisperlivekit-diarization-sortformer') or (python_full_version < '3.13' and sys_platform == 'darwin' and extra != 'extra-14-whisperlivekit-diarization-diart' and extra == 'extra-14-whisperlivekit-diarization-sortformer') or (python_full_version < '3.13' and sys_platform == 'darwin' and extra != 'extra-14-whisperlivekit-cu129' and extra == 'extra-14-whisperlivekit-diarization-sortformer') or (python_full_version < '3.13' and sys_platform != 'linux' and extra != 'extra-14-whisperlivekit-cpu' and extra != 'extra-14-whisperlivekit-diarization-diart' and extra == 'extra-14-whisperlivekit-diarization-sortformer') or (python_full_version >= '3.13' and extra == 'extra-14-whisperlivekit-diarization-sortformer' and extra == 'extra-14-whisperlivekit-voxtral-hf') or (python_full_version < '3.13' and extra == 'extra-14-whisperlivekit-diarization-diart' and extra == 'extra-14-whisperlivekit-diarization-sortformer' and extra == 'extra-14-whisperlivekit-voxtral-hf') or (sys_platform == 'linux' and extra == 'extra-14-whisperlivekit-diarization-sortformer' and extra == 'extra-14-whisperlivekit-voxtral-hf') or (extra == 'extra-14-whisperlivekit-cpu' and extra == 'extra-14-whisperlivekit-cu129') or (extra == 'extra-14-whisperlivekit-cu129' and extra == 'extra-14-whisperlivekit-diarization-diart') or (extra == 'extra-14-whisperlivekit-cpu' and extra == 'extra-14-whisperlivekit-diarization-sortformer' and extra == 'extra-14-whisperlivekit-voxtral-hf')" }, + { name = "huggingface-hub", version = "1.4.1", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version >= '3.13' and sys_platform == 'darwin') or (python_full_version >= '3.13' and sys_platform != 'linux' and extra == 'extra-14-whisperlivekit-cu129') or (python_full_version < '3.13' and sys_platform != 'linux' and extra == 'extra-14-whisperlivekit-cu129' and extra == 'extra-14-whisperlivekit-diarization-diart') or (python_full_version < '3.13' and sys_platform != 'linux' and extra == 'extra-14-whisperlivekit-cu129' and extra != 'extra-14-whisperlivekit-diarization-sortformer') or (python_full_version < '3.13' and sys_platform != 'linux' and extra == 'extra-14-whisperlivekit-diarization-sortformer' and extra == 'extra-14-whisperlivekit-voxtral-hf') or (python_full_version >= '3.13' and sys_platform != 'linux' and extra != 'extra-14-whisperlivekit-cpu' and extra != 'extra-14-whisperlivekit-diarization-diart') or (python_full_version < '3.13' and sys_platform != 'linux' and extra != 'extra-14-whisperlivekit-cpu' and extra != 'extra-14-whisperlivekit-diarization-diart' and extra != 'extra-14-whisperlivekit-diarization-sortformer') or (platform_machine != 'x86_64' and sys_platform == 'linux' and extra == 'extra-14-whisperlivekit-cu129' and extra != 'extra-14-whisperlivekit-diarization-diart' and extra != 'extra-14-whisperlivekit-diarization-sortformer') or (sys_platform == 'darwin' and extra != 'extra-14-whisperlivekit-diarization-sortformer') or (sys_platform == 'darwin' and extra == 'extra-14-whisperlivekit-cu129' and extra == 'extra-14-whisperlivekit-diarization-diart') or (sys_platform == 'darwin' and extra == 'extra-14-whisperlivekit-diarization-sortformer' and extra == 'extra-14-whisperlivekit-voxtral-hf') or (sys_platform == 'linux' and extra == 'extra-14-whisperlivekit-cu129' and extra == 'extra-14-whisperlivekit-diarization-diart') or (sys_platform == 'linux' and extra == 'extra-14-whisperlivekit-cu129' and extra == 'extra-14-whisperlivekit-diarization-sortformer' and extra == 'extra-14-whisperlivekit-voxtral-hf') or (sys_platform == 'linux' and extra != 'extra-14-whisperlivekit-diarization-diart' and extra == 'extra-14-whisperlivekit-diarization-sortformer' and extra == 'extra-14-whisperlivekit-voxtral-hf') or (sys_platform == 'linux' and extra != 'extra-14-whisperlivekit-cpu' and extra != 'extra-14-whisperlivekit-cu129' and extra != 'extra-14-whisperlivekit-diarization-diart' and extra != 'extra-14-whisperlivekit-diarization-sortformer') or (extra == 'extra-14-whisperlivekit-cpu' and extra == 'extra-14-whisperlivekit-cu129') or (extra == 'extra-14-whisperlivekit-cpu' and extra == 'extra-14-whisperlivekit-diarization-sortformer' and extra == 'extra-14-whisperlivekit-voxtral-hf') or (extra != 'extra-14-whisperlivekit-cu129' and extra == 'extra-14-whisperlivekit-diarization-diart' and extra == 'extra-14-whisperlivekit-diarization-sortformer' and extra == 'extra-14-whisperlivekit-voxtral-hf')" }, + { name = "mlx", marker = "(platform_machine != 'x86_64' and extra == 'extra-14-whisperlivekit-cu129' and extra != 'extra-14-whisperlivekit-diarization-sortformer') or (platform_machine != 'x86_64' and extra != 'extra-14-whisperlivekit-cpu' and extra != 'extra-14-whisperlivekit-diarization-diart' and extra != 'extra-14-whisperlivekit-diarization-sortformer') or sys_platform == 'darwin' or (sys_platform != 'linux' and extra == 'extra-14-whisperlivekit-cu129') or (sys_platform != 'linux' and extra != 'extra-14-whisperlivekit-cpu' and extra != 'extra-14-whisperlivekit-diarization-diart') or (extra == 'extra-14-whisperlivekit-cpu' and extra == 'extra-14-whisperlivekit-cu129') or (extra == 'extra-14-whisperlivekit-cu129' and extra == 'extra-14-whisperlivekit-diarization-diart') or (extra == 'extra-14-whisperlivekit-diarization-sortformer' and extra == 'extra-14-whisperlivekit-voxtral-hf') or (extra != 'extra-14-whisperlivekit-cpu' and extra != 'extra-14-whisperlivekit-cu129' and extra != 'extra-14-whisperlivekit-diarization-diart' and extra != 'extra-14-whisperlivekit-diarization-sortformer')" }, + { name = "more-itertools", marker = "(platform_machine != 'x86_64' and extra == 'extra-14-whisperlivekit-cu129' and extra != 'extra-14-whisperlivekit-diarization-sortformer') or (platform_machine != 'x86_64' and extra != 'extra-14-whisperlivekit-cpu' and extra != 'extra-14-whisperlivekit-diarization-diart' and extra != 'extra-14-whisperlivekit-diarization-sortformer') or sys_platform == 'darwin' or (sys_platform != 'linux' and extra == 'extra-14-whisperlivekit-cu129') or (sys_platform != 'linux' and extra != 'extra-14-whisperlivekit-cpu' and extra != 'extra-14-whisperlivekit-diarization-diart') or (extra == 'extra-14-whisperlivekit-cpu' and extra == 'extra-14-whisperlivekit-cu129') or (extra == 'extra-14-whisperlivekit-cu129' and extra == 'extra-14-whisperlivekit-diarization-diart') or (extra == 'extra-14-whisperlivekit-diarization-sortformer' and extra == 'extra-14-whisperlivekit-voxtral-hf') or (extra != 'extra-14-whisperlivekit-cpu' and extra != 'extra-14-whisperlivekit-cu129' and extra != 'extra-14-whisperlivekit-diarization-diart' and extra != 'extra-14-whisperlivekit-diarization-sortformer')" }, + { name = "numba", marker = "(platform_machine != 'x86_64' and extra == 'extra-14-whisperlivekit-cu129' and extra != 'extra-14-whisperlivekit-diarization-sortformer') or (platform_machine != 'x86_64' and extra != 'extra-14-whisperlivekit-cpu' and extra != 'extra-14-whisperlivekit-diarization-diart' and extra != 'extra-14-whisperlivekit-diarization-sortformer') or sys_platform == 'darwin' or (sys_platform != 'linux' and extra == 'extra-14-whisperlivekit-cu129') or (sys_platform != 'linux' and extra != 'extra-14-whisperlivekit-cpu' and extra != 'extra-14-whisperlivekit-diarization-diart') or (extra == 'extra-14-whisperlivekit-cpu' and extra == 'extra-14-whisperlivekit-cu129') or (extra == 'extra-14-whisperlivekit-cu129' and extra == 'extra-14-whisperlivekit-diarization-diart') or (extra == 'extra-14-whisperlivekit-diarization-sortformer' and extra == 'extra-14-whisperlivekit-voxtral-hf') or (extra != 'extra-14-whisperlivekit-cpu' and extra != 'extra-14-whisperlivekit-cu129' and extra != 'extra-14-whisperlivekit-diarization-diart' and extra != 'extra-14-whisperlivekit-diarization-sortformer')" }, + { name = "numpy", marker = "(platform_machine != 'x86_64' and extra == 'extra-14-whisperlivekit-cu129' and extra != 'extra-14-whisperlivekit-diarization-sortformer') or (platform_machine != 'x86_64' and extra != 'extra-14-whisperlivekit-cpu' and extra != 'extra-14-whisperlivekit-diarization-diart' and extra != 'extra-14-whisperlivekit-diarization-sortformer') or sys_platform == 'darwin' or (sys_platform != 'linux' and extra == 'extra-14-whisperlivekit-cu129') or (sys_platform != 'linux' and extra != 'extra-14-whisperlivekit-cpu' and extra != 'extra-14-whisperlivekit-diarization-diart') or (extra == 'extra-14-whisperlivekit-cpu' and extra == 'extra-14-whisperlivekit-cu129') or (extra == 'extra-14-whisperlivekit-cu129' and extra == 'extra-14-whisperlivekit-diarization-diart') or (extra == 'extra-14-whisperlivekit-diarization-sortformer' and extra == 'extra-14-whisperlivekit-voxtral-hf') or (extra != 'extra-14-whisperlivekit-cpu' and extra != 'extra-14-whisperlivekit-cu129' and extra != 'extra-14-whisperlivekit-diarization-diart' and extra != 'extra-14-whisperlivekit-diarization-sortformer')" }, + { name = "scipy", marker = "(platform_machine != 'x86_64' and extra == 'extra-14-whisperlivekit-cu129' and extra != 'extra-14-whisperlivekit-diarization-sortformer') or (platform_machine != 'x86_64' and extra != 'extra-14-whisperlivekit-cpu' and extra != 'extra-14-whisperlivekit-diarization-diart' and extra != 'extra-14-whisperlivekit-diarization-sortformer') or sys_platform == 'darwin' or (sys_platform != 'linux' and extra == 'extra-14-whisperlivekit-cu129') or (sys_platform != 'linux' and extra != 'extra-14-whisperlivekit-cpu' and extra != 'extra-14-whisperlivekit-diarization-diart') or (extra == 'extra-14-whisperlivekit-cpu' and extra == 'extra-14-whisperlivekit-cu129') or (extra == 'extra-14-whisperlivekit-cu129' and extra == 'extra-14-whisperlivekit-diarization-diart') or (extra == 'extra-14-whisperlivekit-diarization-sortformer' and extra == 'extra-14-whisperlivekit-voxtral-hf') or (extra != 'extra-14-whisperlivekit-cpu' and extra != 'extra-14-whisperlivekit-cu129' and extra != 'extra-14-whisperlivekit-diarization-diart' and extra != 'extra-14-whisperlivekit-diarization-sortformer')" }, + { name = "tiktoken", marker = "(platform_machine != 'x86_64' and extra == 'extra-14-whisperlivekit-cu129' and extra != 'extra-14-whisperlivekit-diarization-sortformer') or (platform_machine != 'x86_64' and extra != 'extra-14-whisperlivekit-cpu' and extra != 'extra-14-whisperlivekit-diarization-diart' and extra != 'extra-14-whisperlivekit-diarization-sortformer') or sys_platform == 'darwin' or (sys_platform != 'linux' and extra == 'extra-14-whisperlivekit-cu129') or (sys_platform != 'linux' and extra != 'extra-14-whisperlivekit-cpu' and extra != 'extra-14-whisperlivekit-diarization-diart') or (extra == 'extra-14-whisperlivekit-cpu' and extra == 'extra-14-whisperlivekit-cu129') or (extra == 'extra-14-whisperlivekit-cu129' and extra == 'extra-14-whisperlivekit-diarization-diart') or (extra == 'extra-14-whisperlivekit-diarization-sortformer' and extra == 'extra-14-whisperlivekit-voxtral-hf') or (extra != 'extra-14-whisperlivekit-cpu' and extra != 'extra-14-whisperlivekit-cu129' and extra != 'extra-14-whisperlivekit-diarization-diart' and extra != 'extra-14-whisperlivekit-diarization-sortformer')" }, + { name = "torch", version = "2.8.0", source = { registry = "https://pypi.org/simple" }, marker = "(sys_platform == 'darwin' and extra == 'extra-14-whisperlivekit-diarization-diart') or (sys_platform != 'darwin' and extra == 'extra-14-whisperlivekit-diarization-sortformer' and extra == 'extra-14-whisperlivekit-voxtral-hf') or (extra == 'extra-14-whisperlivekit-cu129' and extra == 'extra-14-whisperlivekit-diarization-diart') or (extra == 'extra-14-whisperlivekit-cpu' and extra == 'extra-14-whisperlivekit-cu129') or (extra == 'extra-14-whisperlivekit-cu129' and extra == 'extra-14-whisperlivekit-diarization-sortformer' and extra == 'extra-14-whisperlivekit-voxtral-hf') or (extra != 'extra-14-whisperlivekit-diarization-diart' and extra == 'extra-14-whisperlivekit-diarization-sortformer' and extra == 'extra-14-whisperlivekit-voxtral-hf')" }, + { name = "torch", version = "2.9.1", source = { registry = "https://pypi.org/simple" }, marker = "(platform_machine != 'x86_64' and extra == 'extra-14-whisperlivekit-cu129' and extra != 'extra-14-whisperlivekit-diarization-sortformer') or (platform_machine != 'x86_64' and extra != 'extra-14-whisperlivekit-cpu' and extra != 'extra-14-whisperlivekit-diarization-diart' and extra != 'extra-14-whisperlivekit-diarization-sortformer') or (sys_platform != 'darwin' and sys_platform != 'linux' and extra == 'extra-14-whisperlivekit-cpu' and extra == 'extra-14-whisperlivekit-diarization-sortformer' and extra == 'extra-14-whisperlivekit-voxtral-hf') or (sys_platform != 'linux' and extra == 'extra-14-whisperlivekit-cu129') or (sys_platform == 'darwin' and extra == 'extra-14-whisperlivekit-cu129') or (sys_platform == 'darwin' and extra != 'extra-14-whisperlivekit-diarization-diart') or (sys_platform != 'linux' and extra != 'extra-14-whisperlivekit-cpu' and extra != 'extra-14-whisperlivekit-diarization-diart') or (sys_platform == 'darwin' and extra == 'extra-14-whisperlivekit-diarization-diart' and extra == 'extra-14-whisperlivekit-diarization-sortformer' and extra == 'extra-14-whisperlivekit-voxtral-hf') or (sys_platform == 'linux' and extra == 'extra-14-whisperlivekit-cpu' and extra == 'extra-14-whisperlivekit-diarization-sortformer' and extra == 'extra-14-whisperlivekit-voxtral-hf') or (extra == 'extra-14-whisperlivekit-cpu' and extra == 'extra-14-whisperlivekit-cu129') or (extra == 'extra-14-whisperlivekit-cu129' and extra == 'extra-14-whisperlivekit-diarization-diart') or (extra == 'extra-14-whisperlivekit-cu129' and extra == 'extra-14-whisperlivekit-diarization-sortformer' and extra == 'extra-14-whisperlivekit-voxtral-hf') or (extra != 'extra-14-whisperlivekit-cpu' and extra == 'extra-14-whisperlivekit-diarization-sortformer' and extra == 'extra-14-whisperlivekit-voxtral-hf') or (extra != 'extra-14-whisperlivekit-cpu' and extra != 'extra-14-whisperlivekit-cu129' and extra != 'extra-14-whisperlivekit-diarization-diart' and extra != 'extra-14-whisperlivekit-diarization-sortformer')" }, + { name = "tqdm", marker = "(platform_machine != 'x86_64' and extra == 'extra-14-whisperlivekit-cu129' and extra != 'extra-14-whisperlivekit-diarization-sortformer') or (platform_machine != 'x86_64' and extra != 'extra-14-whisperlivekit-cpu' and extra != 'extra-14-whisperlivekit-diarization-diart' and extra != 'extra-14-whisperlivekit-diarization-sortformer') or sys_platform == 'darwin' or (sys_platform != 'linux' and extra == 'extra-14-whisperlivekit-cu129') or (sys_platform != 'linux' and extra != 'extra-14-whisperlivekit-cpu' and extra != 'extra-14-whisperlivekit-diarization-diart') or (extra == 'extra-14-whisperlivekit-cpu' and extra == 'extra-14-whisperlivekit-cu129') or (extra == 'extra-14-whisperlivekit-cu129' and extra == 'extra-14-whisperlivekit-diarization-diart') or (extra == 'extra-14-whisperlivekit-diarization-sortformer' and extra == 'extra-14-whisperlivekit-voxtral-hf') or (extra != 'extra-14-whisperlivekit-cpu' and extra != 'extra-14-whisperlivekit-cu129' and extra != 'extra-14-whisperlivekit-diarization-diart' and extra != 'extra-14-whisperlivekit-diarization-sortformer')" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/22/b7/a35232812a2ccfffcb7614ba96a91338551a660a0e9815cee668bf5743f0/mlx_whisper-0.4.3-py3-none-any.whl", hash = "sha256:6b82b6597a994643a3e5496c7bc229a672e5ca308458455bfe276e76ae024489", size = 890544, upload-time = "2025-08-29T14:56:13.815Z" }, +] + [[package]] name = "more-itertools" version = "10.8.0" @@ -3989,7 +4045,7 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "attrs" }, { name = "rpds-py" }, - { name = "typing-extensions", marker = "python_full_version < '3.13' or (extra == 'extra-14-whisperlivekit-cpu' and extra == 'extra-14-whisperlivekit-cu129') or (extra == 'extra-14-whisperlivekit-cu129' and extra == 'extra-14-whisperlivekit-diarization-diart')" }, + { name = "typing-extensions", marker = "python_full_version < '3.13' or (extra == 'extra-14-whisperlivekit-cpu' and extra == 'extra-14-whisperlivekit-cu129') or (extra == 'extra-14-whisperlivekit-cu129' and extra == 'extra-14-whisperlivekit-diarization-diart') or (extra == 'extra-14-whisperlivekit-diarization-sortformer' and extra == 'extra-14-whisperlivekit-voxtral-hf')" }, ] sdist = { url = "https://files.pythonhosted.org/packages/22/f5/df4e9027acead3ecc63e50fe1e36aca1523e1719559c499951bb4b53188f/referencing-0.37.0.tar.gz", hash = "sha256:44aefc3142c5b842538163acb373e24cce6632bd54bdb01b21ad5863489f50d8", size = 78036, upload-time = "2025-10-13T15:30:48.871Z" } wheels = [ @@ -6222,6 +6278,10 @@ diarization-diart = [ diarization-sortformer = [ { name = "nemo-toolkit", extra = ["asr"], marker = "(python_full_version < '3.13' and extra != 'extra-14-whisperlivekit-diarization-diart' and extra == 'extra-14-whisperlivekit-diarization-sortformer') or (python_full_version < '3.13' and extra != 'extra-14-whisperlivekit-cu129' and extra == 'extra-14-whisperlivekit-diarization-sortformer') or (extra == 'extra-14-whisperlivekit-cpu' and extra == 'extra-14-whisperlivekit-cu129') or (extra == 'extra-14-whisperlivekit-cu129' and extra == 'extra-14-whisperlivekit-diarization-diart') or (extra == 'extra-14-whisperlivekit-diarization-sortformer' and extra == 'extra-14-whisperlivekit-voxtral-hf')" }, ] +mlx-whisper = [ + { name = "mlx", marker = "(platform_machine == 'arm64' and sys_platform == 'darwin') or (platform_machine != 'arm64' and extra == 'extra-14-whisperlivekit-cpu' and extra == 'extra-14-whisperlivekit-cu129') or (platform_machine != 'arm64' and extra == 'extra-14-whisperlivekit-cu129' and extra == 'extra-14-whisperlivekit-diarization-diart') or (platform_machine != 'arm64' and extra == 'extra-14-whisperlivekit-diarization-sortformer' and extra == 'extra-14-whisperlivekit-voxtral-hf') or (sys_platform != 'darwin' and extra == 'extra-14-whisperlivekit-cpu' and extra == 'extra-14-whisperlivekit-cu129') or (sys_platform != 'darwin' and extra == 'extra-14-whisperlivekit-cu129' and extra == 'extra-14-whisperlivekit-diarization-diart') or (sys_platform != 'darwin' and extra != 'extra-14-whisperlivekit-diarization-diart' and extra == 'extra-14-whisperlivekit-diarization-sortformer' and extra == 'extra-14-whisperlivekit-voxtral-hf') or (sys_platform != 'darwin' and extra != 'extra-14-whisperlivekit-cu129' and extra == 'extra-14-whisperlivekit-diarization-sortformer' and extra == 'extra-14-whisperlivekit-voxtral-hf')" }, + { name = "mlx-whisper", marker = "(platform_machine == 'arm64' and sys_platform == 'darwin') or (platform_machine != 'arm64' and extra == 'extra-14-whisperlivekit-cpu' and extra == 'extra-14-whisperlivekit-cu129') or (platform_machine != 'arm64' and extra == 'extra-14-whisperlivekit-cu129' and extra == 'extra-14-whisperlivekit-diarization-diart') or (platform_machine != 'arm64' and extra == 'extra-14-whisperlivekit-diarization-sortformer' and extra == 'extra-14-whisperlivekit-voxtral-hf') or (sys_platform != 'darwin' and extra == 'extra-14-whisperlivekit-cpu' and extra == 'extra-14-whisperlivekit-cu129') or (sys_platform != 'darwin' and extra == 'extra-14-whisperlivekit-cu129' and extra == 'extra-14-whisperlivekit-diarization-diart') or (sys_platform != 'darwin' and extra != 'extra-14-whisperlivekit-diarization-diart' and extra == 'extra-14-whisperlivekit-diarization-sortformer' and extra == 'extra-14-whisperlivekit-voxtral-hf') or (sys_platform != 'darwin' and extra != 'extra-14-whisperlivekit-cu129' and extra == 'extra-14-whisperlivekit-diarization-sortformer' and extra == 'extra-14-whisperlivekit-voxtral-hf')" }, +] sentence-tokenizer = [ { name = "mosestokenizer" }, { name = "wtpsplit" }, @@ -6238,6 +6298,11 @@ voxtral-hf = [ { name = "mistral-common", extra = ["audio"], marker = "(extra == 'extra-14-whisperlivekit-cpu' and extra == 'extra-14-whisperlivekit-cu129') or (extra == 'extra-14-whisperlivekit-cu129' and extra == 'extra-14-whisperlivekit-diarization-diart') or (extra != 'extra-14-whisperlivekit-diarization-diart' and extra == 'extra-14-whisperlivekit-voxtral-hf') or (extra != 'extra-14-whisperlivekit-cu129' and extra == 'extra-14-whisperlivekit-voxtral-hf')" }, { name = "transformers", version = "5.2.0", source = { registry = "https://pypi.org/simple" } }, ] +voxtral-mlx = [ + { name = "mistral-common", extra = ["audio"] }, + { name = "mlx", marker = "(platform_machine == 'arm64' and sys_platform == 'darwin') or (platform_machine != 'arm64' and extra == 'extra-14-whisperlivekit-cpu' and extra == 'extra-14-whisperlivekit-cu129') or (platform_machine != 'arm64' and extra == 'extra-14-whisperlivekit-cu129' and extra == 'extra-14-whisperlivekit-diarization-diart') or (platform_machine != 'arm64' and extra == 'extra-14-whisperlivekit-diarization-sortformer' and extra == 'extra-14-whisperlivekit-voxtral-hf') or (sys_platform != 'darwin' and extra == 'extra-14-whisperlivekit-cpu' and extra == 'extra-14-whisperlivekit-cu129') or (sys_platform != 'darwin' and extra == 'extra-14-whisperlivekit-cu129' and extra == 'extra-14-whisperlivekit-diarization-diart') or (sys_platform != 'darwin' and extra != 'extra-14-whisperlivekit-diarization-diart' and extra == 'extra-14-whisperlivekit-diarization-sortformer' and extra == 'extra-14-whisperlivekit-voxtral-hf') or (sys_platform != 'darwin' and extra != 'extra-14-whisperlivekit-cu129' and extra == 'extra-14-whisperlivekit-diarization-sortformer' and extra == 'extra-14-whisperlivekit-voxtral-hf')" }, + { name = "mlx-whisper", marker = "(platform_machine == 'arm64' and sys_platform == 'darwin') or (platform_machine != 'arm64' and extra == 'extra-14-whisperlivekit-cpu' and extra == 'extra-14-whisperlivekit-cu129') or (platform_machine != 'arm64' and extra == 'extra-14-whisperlivekit-cu129' and extra == 'extra-14-whisperlivekit-diarization-diart') or (platform_machine != 'arm64' and extra == 'extra-14-whisperlivekit-diarization-sortformer' and extra == 'extra-14-whisperlivekit-voxtral-hf') or (sys_platform != 'darwin' and extra == 'extra-14-whisperlivekit-cpu' and extra == 'extra-14-whisperlivekit-cu129') or (sys_platform != 'darwin' and extra == 'extra-14-whisperlivekit-cu129' and extra == 'extra-14-whisperlivekit-diarization-diart') or (sys_platform != 'darwin' and extra != 'extra-14-whisperlivekit-diarization-diart' and extra == 'extra-14-whisperlivekit-diarization-sortformer' and extra == 'extra-14-whisperlivekit-voxtral-hf') or (sys_platform != 'darwin' and extra != 'extra-14-whisperlivekit-cu129' and extra == 'extra-14-whisperlivekit-diarization-sortformer' and extra == 'extra-14-whisperlivekit-voxtral-hf')" }, +] [package.dev-dependencies] dev = [ @@ -6253,6 +6318,11 @@ requires-dist = [ { name = "huggingface-hub", specifier = ">=0.25.0" }, { name = "librosa" }, { name = "mistral-common", extras = ["audio"], marker = "extra == 'voxtral-hf'" }, + { name = "mistral-common", extras = ["audio"], marker = "extra == 'voxtral-mlx'" }, + { name = "mlx", marker = "platform_machine == 'arm64' and sys_platform == 'darwin' and extra == 'mlx-whisper'", specifier = ">=0.11.0" }, + { name = "mlx", marker = "platform_machine == 'arm64' and sys_platform == 'darwin' and extra == 'voxtral-mlx'", specifier = ">=0.11.0" }, + { name = "mlx-whisper", marker = "platform_machine == 'arm64' and sys_platform == 'darwin' and extra == 'mlx-whisper'", specifier = ">=0.4.0" }, + { name = "mlx-whisper", marker = "platform_machine == 'arm64' and sys_platform == 'darwin' and extra == 'voxtral-mlx'", specifier = ">=0.4.0" }, { name = "mosestokenizer", marker = "extra == 'sentence-tokenizer'" }, { name = "nemo-toolkit", extras = ["asr"], marker = "python_full_version >= '3.10' and python_full_version < '3.13' and extra == 'diarization-sortformer'", specifier = ">2.4" }, { name = "nllw", marker = "extra == 'translation'" }, @@ -6283,7 +6353,7 @@ requires-dist = [ { name = "websockets" }, { name = "wtpsplit", marker = "extra == 'sentence-tokenizer'" }, ] -provides-extras = ["test", "translation", "sentence-tokenizer", "voxtral-hf", "cpu", "cu129", "diarization-sortformer", "diarization-diart"] +provides-extras = ["test", "translation", "sentence-tokenizer", "mlx-whisper", "voxtral-mlx", "voxtral-hf", "cpu", "cu129", "diarization-sortformer", "diarization-diart"] [package.metadata.requires-dev] dev = [{ name = "rich", specifier = ">=14.3.3" }]