--- license: mit tags: - mlx - audio - pitch-estimation - f0 - voice-conversion - rvc - apple-silicon library_name: mlx pipeline_tag: audio-to-audio --- # MLX-RMVPE MLX implementation of [RMVPE](https://arxiv.org/abs/2306.15412) (Robust Model for Vocal Pitch Estimation) for Apple Silicon. ## Model Description RMVPE extracts **fundamental frequency (F0)** from audio, essential for preserving pitch/melody in voice conversion. Unlike simpler methods (CREPE, pYIN), RMVPE is specifically designed for **polyphonic music**, making it ideal for singing voice conversion where background music may be present. - **Architecture**: Deep U-Net with BiGRU layers - **Parameters**: ~15.4M - **Input**: 16kHz audio - **Output**: F0 in Hz at 100fps (hop_length=160) - **Pitch range**: ~32 Hz to ~1975 Hz (360 bins) ## Usage ```bash pip install mlx-rmvpe ``` ```python import librosa from mlx_rmvpe import RMVPE # Load model (auto-downloads weights) model = RMVPE.from_pretrained() # Load audio at 16kHz audio, sr = librosa.load("singing.wav", sr=16000, mono=True) # Extract F0 f0 = model.infer_from_audio(audio) print(f"F0 shape: {f0.shape} at 100fps") print(f"Pitch range: {f0[f0 > 0].min():.1f} - {f0[f0 > 0].max():.1f} Hz") ``` ## Manual Loading ```python from huggingface_hub import hf_hub_download from mlx_rmvpe import RMVPE weights_path = hf_hub_download( repo_id="lexandstuff/mlx-rmvpe", filename="rmvpe.safetensors" ) model = RMVPE() model.load_weights(weights_path) model.eval() ``` ## Technical Details This implementation is converted from the PyTorch weights and produces numerically similar outputs: | Metric | Value | |--------|-------| | Mean F0 difference | 1.29 Hz | | Correlation | >0.99 | See the [GitHub repository](https://github.com/lexandstuff/mlx-rmvpe) for implementation details and the full API reference. ## Citation ```bibtex @inproceedings{wei2023rmvpe, title={RMVPE: A Robust Model for Vocal Pitch Estimation in Polyphonic Music}, author={Wei, Yongmao and others}, booktitle={ISMIR}, year={2023} } ``` ## License MIT ## Acknowledgments - [RMVPE](https://github.com/Dream-High/RMVPE) - Original implementation - [RVC](https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI) - Voice conversion pipeline - [MLX](https://github.com/ml-explore/mlx) - Apple's machine learning framework