Skip to content

Conversation

@ari-abb
Copy link

@ari-abb ari-abb commented Jan 20, 2026

Mac specific suggestions

Hi! Sharing my experience getting VoxCPM running on my Mac (Apple Silicon). It's an awesome project, but I hit a few bumps with the default setup on macOS.

The main blocker seems to be the MPS (Mac GPU). When running normally, it crashed with:

loc("mps_matmul"...): error: incompatible dimensions
LLVM ERROR: Failed to infer result type(s).

What worked for me:

  1. Forcing CPU & float32: I had to explicitly force the device to cpu and change the dtype to float32 manually in both voxcpm.py and the downloaded model's config.json. My change should be able to detect mac specifically and not enforce this for CUDA devices.

  2. Installing FFmpeg: I needed to run brew install ffmpeg for torchaudio/torchcodec to load correctly (pretty standard, but might be worth noting in the readme).

  3. PyTorch & TorchCodec: I use uv and noticed that edge PyTorch versions (like 2.9.x installed by uv) conflict with torchcodec, throwing: The PyTorch version (2.9.1) is not compatible with this version of TorchCodec. I had to pin back to stable versions (e.g., 2.5.1). The updated pyproject.toml file specifies these versions that worked for me on mac devices.

Just thought I'd drop this hear in case other Mac users run into the same walls! There might be some performance differences of course.

This might not be the best way, but worked for me. Let me know if you have other suggestions.

Thanks for the great work!

@liuxin99
Copy link
Collaborator

liuxin99 commented Jan 24, 2026

@ari-abb Hi! Thanks for the PR! I'm totally on board with points 2 and 3. Regarding point 1, I'm a bit concerned that forcing a fallback to CPU and fp32 on macOS would completely disable MPS acceleration. Since this might impact performance significantly for Mac users, would you mind reconsidering if there’s a way to handle this more gracefully?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants