Error processing file '/Users/runner/work/espeakng-loader/espeakng-loader/espeak-ng/_dynamic/share/espeak-ng-data/phontab': No such file or directory.
Error on a fresh install on M3 Pro 15.4.1.
python3.10 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
pip install mlx-audio
brew list | grep espeak
espeak-ng
Install succeeded without any errors. First try fails:
mlx_audio.tts.generate --text "Hello, world"
Fetching 2 files: 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 2/2 [00:00<00:00, 32768.00it/s]
Model: mlx-community/Kokoro-82M-bf16
Text: Hello, world
Voice: None
Speed: 1.0x
Language: a
Error processing file '/Users/runner/work/espeakng-loader/espeakng-loader/espeak-ng/_dynamic/share/espeak-ng-data/phontab': No such file or directory.
/opt/homebrew/Cellar/[email protected]/3.10.17/Frameworks/Python.framework/Versions/3.10/lib/python3.10/multiprocessing/resource_tracker.py:224: UserWarning: resource_tracker: There appear to be 1 leaked semaphore objects to clean up at shutdown
warnings.warn('resource_tracker: There appear to be %d '
Any ideas? /Users/runner/work/espeakng-loader/... is nothing on my system.
Try with python 3.11 and it should work on latest main
~~Did not try with the package~~
python -m mlx_audio.tts.generate --text "Hello, world" --play
EDIT : tried with the package and it works perfectly on py311
Sorry for my delay. Just tested it again with python3.10-3.13. Same error:
mlx-audio on main [?] via 🐍 v3.12.10 (venv) took 1m0s
❯ mlx_audio.server
INFO: Warming up STT model.
INFO: STT model warmed up.
INFO: Warming up VAD model.
INFO: VAD model warmed up.
Fetching 2 files: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 2/2 [00:00<00:00, 51150.05it/s]
2025-05-20 13:49:10,278 - httpx - INFO - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
INFO: Started server process [37312]
INFO: Waiting for application startup.
INFO: Visit https://fastrtc.org/userguide/api/ for WebRTC or Websocket API docs.
INFO: Application startup complete.
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO: 127.0.0.1:50616 - "GET / HTTP/1.1" 200 OK
Fetching 2 files: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 2/2 [00:00<00:00, 29433.71it/s]
2025-05-20 13:50:56.433 | INFO | mlx_audio.tts.models.kokoro.kokoro:_get_pipeline:261 - Creating new KokoroPipeline for language: a
Error processing file '/Users/runner/work/espeakng-loader/espeakng-loader/espeak-ng/_dynamic/share/espeak-ng-data/phontab': No such file or directory.
/opt/homebrew/Cellar/[email protected]/3.12.10/Frameworks/Python.framework/Versions/3.12/lib/python3.12/multiprocessing/resource_tracker.py:279: UserWarning: resource_tracker: There appear to be 1 leaked semaphore objects to clean up at shutdown
warnings.warn('resource_tracker: There appear to be %d '
Quite sure the issue relates to espeak-ng Error processing file '/Users/runner/work/espeakng-loader/espeakng-loader/espeak-ng/_dynamic/share/espeak-ng-data/phontab': No such file or directory.. But no clue why, it's the latest from https://formulae.brew.sh/formula/espeak-ng#default
I found out the issue. For current espeak-ng on MacOS from Homebrew I needed to add:
export ESPEAK_DATA_PATH=/opt/homebrew/Cellar/espeak-ng/1.52.0/share/espeak-ng-data