
Развёртывание VoxCPM на MacBook с чипом Apple Silicon#
Данное руководство содержит пошаговые инструкции по установке и запуску VoxCPM на macOS с процессорами Apple Silicon. Игрался на своем ноуте.
Скачиваем репозиторий проекта#
Переходим в папку, где у вас всё будет аккуратно лежать и скачиваем репу:
git clone https://github.com/OpenBMB/VoxCPM.git
cd VoxCPMНастройка доступа к Hugging Face#
Для ускорения загрузки моделей и повышения лимитов запросов рекомендуется настроить токен доступа на Hugging Face
Получение токена#
- Перейдите на https://huggingface.co/settings/tokens
- Создайте новый токен с правами Read
- Скопируйте токен (формат:
hf_...)
Настройка токена#
Способ 1: Через huggingface-cli
pip install -U huggingface_hub
hf auth login
# Вставьте токен при запросеСпособ 2: Через переменную окружения
# Временно для сессии
export HF_TOKEN="hf_ваш_токен_здесь"
# Или навсегда (добавить в ~/.zshrc)
echo 'export HF_TOKEN="hf_ваш_токен_здесь"' >> ~/.zshrc
source ~/.zshrcУстановка Python 3.10+ через pyenv#
Установка Homebrew (если не установлен, но навряд ли, конечно)#
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"Установка pyenv и зависимостей#
brew install pyenv openssl readline sqlite3 xz zlib pkgconf autoconfНастройка окружения оболочки#
Добавьте следующие строки в ~/.zshrc:
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"Примените изменения:
source ~/.zshrcУстановка Python 3.10.14#
pyenv install 3.10.14Настройка версии для проекта#
Перейдите в папку проекта, которую мы скачали ранее и указываем локальную версию Python:
cd ~/Documents/ai/VoxCPM
pyenv local 3.10.14
python --version # Должно вывести: Python 3.10.14Настройка проекта и установка зависимостей#
Создание виртуального окружения#
# В папке проекта
python -m venv venv
source venv/bin/activate
pip install --upgrade pipУстановка проекта в режиме разработки#
pip install -e .Проверка установки#
which voxcpm
# Должно указывать на путь внутри venv
voxcpm --help
# Должно отобразить справку по командам и доступным флагамСкачиваем модель в папку#
Делаем папку для модели и качаем модель:
mkdir -p models/VoxCPM-2B
hf download openbmb/VoxCPM2 --local-dir ./models/VoxCPM2Использование через CLI#
Базовый синтаксис#
В без все просто:
voxcpm <режим> [параметры]Но мы пойдём путём клонирования своего голоса для озвучки текста.
Готовим файл для клонирования#
Я просто записал аудиосообщение в одном голубом мессенджере, сохранил его и перекодировал через ffmpeg в wav. Текст сообщения был такой: Это образец моего голоса. Я говорю здесь целых пять секунд.
Файл с текстом и аудио сохранил в папке ./ref. Т. е. ref.txt и ref.wav
Готовим текст для озвучки#
Создам папку output и inpit чтобы папку не замусоривать. Создаю текст для озвучки:
vim ./inpit/anime.txtНакидал туда описание аниме - Ателье колдовских колпаков
Запускаем озвучку с клонированием нашего голоса#
Запускаем озвучку нашего текста с клонированием голоса в папку output:
voxcpm clone --text "$(cat ./inpit/anime.txt)" --prompt-audio ./ref/ref.wav --prompt-text "$(cat ./ref/ref.txt)" --reference-audio ./ref/ref.wav --output ./output/anime_18.wav --model-path ./models/VoxCPM2 --device mps --no-optimize --cfg-value 1.8 --inference-timesteps 20 --normalize --no-denoiserЧто у нас по параметрам?#
| Параметр | Значение в команде | Назначение |
|---|---|---|
voxcpm clone | clone | Активация режима клонирования голоса |
--text | "$(cat ./inpit/anime.txt)" | Целевой текст для генерации |
--prompt-audio | ./ref/ref.wav | Аудио-референс |
--prompt-text | "$(cat ./ref/ref.txt)" | Точная транскрипция prompt-audio |
--reference-audio | ./ref/ref.wav | Аудио-референс для тембральной идентичности |
--output | ./output/anime_18.wav | Путь к выходному файлу |
--model-path | ./models/VoxCPM2 | Локальный каталог с весами модели |
--device | mps | Платформа на которой мы играемся |
--no-optimize | без значения | Отключение torch.compile |
--cfg-value | 1.8 | Значение Classifier-Free Guidance |
--inference-timesteps | 20 | Количество шагов диффузионного декодера |
--normalize | без значения | Нормализация громкости выхода |
--no-denoiser | без значения | Отключение модуля ZipEnhancer |
Результат#
На выходе получился файл 35.02. Послушать его можно ниже:
Литература для изучения#
- GitHub репозиторий: https://github.com/OpenBMB/VoxCPM
- Страница модели на Hugging Face: https://huggingface.co/openbmb/VoxCPM2


