RVC-Project / RVC-Project/Retrieval-based-Voice-Conversion-WebUI

Cannot Infer on M4 Mac

Open
#2,496 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
38.4k
Forks
5.3k
PR merge metrics
No merged PRs in 30d

Description

Hello I've gone through the installation steps countless times in countless ways but keep getting errors. Seems like RVC is incompatible with M chip macs. I've tried installing with python3.8 and python3.10 and even python3.10 with conda as someone else mentioned but all are causing errors. Please can someone look into this?

Python 3.8 and Python 3.10 Error:
Running on local URL: http://0.0.0.0:7865 2025-02-22 15:46:21 | INFO | infer.modules.vc.modules | Get sid: TravisScott_Utopia.pth 2025-02-22 15:46:21 | INFO | infer.modules.vc.modules | Loading: assets/weights/TravisScott_Utopia.pth 2025-02-22 15:46:22 | INFO | infer.modules.vc.modules | Select index: logs/travisutopia/added_IVF1221_Flat_nprobe_1_TravisScott_Utopia_v2.index 2025-02-22 15:46:26 | INFO | fairseq.tasks.hubert_pretraining | current directory is /Users/mishaeljacob/Documents/RVC/Retrieval-based-Voice-Conversion-WebUI 2025-02-22 15:46:26 | INFO | fairseq.tasks.hubert_pretraining | HubertPretrainingTask Config {'_name': 'hubert_pretraining', 'data': 'metadata', 'fine_tuning': False, 'labels': ['km'], 'label_dir': 'label', 'label_rate': 50.0, 'sample_rate': 16000, 'normalize': False, 'enable_padding': False, 'max_keep_size': None, 'max_sample_size': 250000, 'min_sample_size': 32000, 'single_target': False, 'random_crop': True, 'pad_audio': False} 2025-02-22 15:46:26 | INFO | fairseq.models.hubert.hubert | HubertModel Config: {'_name': 'hubert', 'label_rate': 50.0, 'extractor_mode': default, 'encoder_layers': 12, 'encoder_embed_dim': 768, 'encoder_ffn_embed_dim': 3072, 'encoder_attention_heads': 12, 'activation_fn': gelu, 'layer_type': transformer, 'dropout': 0.1, 'attention_dropout': 0.1, 'activation_dropout': 0.0, 'encoder_layerdrop': 0.05, 'dropout_input': 0.1, 'dropout_features': 0.1, 'final_dim': 256, 'untie_final_proj': True, 'layer_norm_first': False, 'conv_feature_layers': '[(512,10,5)] + [(512,3,2)] * 4 + [(512,2,2)] * 2', 'conv_bias': False, 'logit_temp': 0.1, 'target_glu': False, 'feature_grad_mult': 0.1, 'mask_length': 10, 'mask_prob': 0.8, 'mask_selection': static, 'mask_other': 0.0, 'no_mask_overlap': False, 'mask_min_space': 1, 'mask_channel_length': 10, 'mask_channel_prob': 0.0, 'mask_channel_selection': static, 'mask_channel_other': 0.0, 'no_mask_channel_overlap': False, 'mask_channel_min_space': 1, 'conv_pos': 128, 'conv_pos_groups': 16, 'latent_temp': [2.0, 0.5, 0.999995], 'skip_masked': False, 'skip_nomask': False, 'checkpoint_activations': False, 'required_seq_len_multiple': 2, 'depthwise_conv_kernel_size': 31, 'attn_type': '', 'pos_enc_type': 'abs', 'fp16': False} zsh: segmentation fault python infer-web.py /Users/mishaeljacob/.pyenv/versions/3.10.16/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 '

Python 3.10 with CONDA Error:
2025-02-22 16:12:57 | WARNING | infer.modules.vc.modules | Traceback (most recent call last): File "/Users/mishaeljacob/Documents/RVC/Retrieval-based-Voice-Conversion-WebUI/infer/modules/vc/modules.py", line 188, in vc_single audio_opt = self.pipeline.pipeline( File "/Users/mishaeljacob/Documents/RVC/Retrieval-based-Voice-Conversion-WebUI/infer/modules/vc/pipeline.py", line 375, in pipeline self.vc( File "/Users/mishaeljacob/Documents/RVC/Retrieval-based-Voice-Conversion-WebUI/infer/modules/vc/pipeline.py", line 219, in vc logits = model.extract_features(**inputs) File "/opt/anaconda3/envs/env/lib/python3.10/site-packages/fairseq/models/hubert/hubert.py", line 535, in extract_features res = self.forward( File "/opt/anaconda3/envs/env/lib/python3.10/site-packages/fairseq/models/hubert/hubert.py", line 437, in forward features = self.forward_features(source) File "/opt/anaconda3/envs/env/lib/python3.10/site-packages/fairseq/models/hubert/hubert.py", line 392, in forward_features features = self.feature_extractor(source) File "/opt/anaconda3/envs/env/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1736, in _wrapped_call_impl return self._call_impl(*args, **kwargs) File "/opt/anaconda3/envs/env/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1747, in _call_impl return forward_call(*args, **kwargs) File "/opt/anaconda3/envs/env/lib/python3.10/site-packages/fairseq/models/wav2vec/wav2vec2.py", line 895, in forward x = conv(x) File "/opt/anaconda3/envs/env/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1736, in _wrapped_call_impl return self._call_impl(*args, **kwargs) File "/opt/anaconda3/envs/env/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1747, in _call_impl return forward_call(*args, **kwargs) File "/opt/anaconda3/envs/env/lib/python3.10/site-packages/torch/nn/modules/container.py", line 250, in forward input = module(input) File "/opt/anaconda3/envs/env/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1736, in _wrapped_call_impl return self._call_impl(*args, **kwargs) File "/opt/anaconda3/envs/env/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1747, in _call_impl return forward_call(*args, **kwargs) File "/opt/anaconda3/envs/env/lib/python3.10/site-packages/torch/nn/modules/conv.py", line 375, in forward return self._conv_forward(input, self.weight, self.bias) File "/opt/anaconda3/envs/env/lib/python3.10/site-packages/torch/nn/modules/conv.py", line 370, in _conv_forward return F.conv1d( NotImplementedError: Output channels > 65536 not supported at the MPS device. As a temporary fix, you can set the environment variable PYTORCH_ENABLE_MPS_FALLBACK=1 to use the CPU as a fallback for this op. WARNING: this will be slower than running natively on MPS.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with infer-web.py and the reported paths infer/modules/vc/modules.py and infer/modules/vc/pipeline.py, then reproduce inference on an M4 using the Python and conda setups described. Trace the HuBERT convolution failure and the MPS fallback warning. Done means inference completes reliably on the reported hardware without the segmentation fault or unsupported MPS operation.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, pytorch
Domain
machine-learning
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.