
Развёртывание VoxCPM на MacBook с чипом Apple Silicon Link to heading
Данное руководство содержит пошаговые инструкции по установке и запуску VoxCPM на macOS с процессорами Apple Silicon. Игрался на своем ноуте.
Скачиваем репозиторий проекта Link to heading
Переходим в папку, где у вас всё будет аккуратно лежать и скачиваем репу:
git clone https://github.com/OpenBMB/VoxCPM.git
cd VoxCPM
Настройка доступа к Hugging Face Link to heading
Для ускорения загрузки моделей и повышения лимитов запросов рекомендуется настроить токен доступа на Hugging Face
Получение токена Link to heading
- Перейдите на https://huggingface.co/settings/tokens
- Создайте новый токен с правами Read
- Скопируйте токен (формат:
hf_...)
Настройка токена Link to heading
Способ 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 Link to heading
Установка Homebrew (если не установлен, но навряд ли, конечно) Link to heading
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Установка pyenv и зависимостей Link to heading
brew install pyenv openssl readline sqlite3 xz zlib pkgconf autoconf
Настройка окружения оболочки Link to heading
Добавьте следующие строки в ~/.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 Link to heading
pyenv install 3.10.14
Настройка версии для проекта Link to heading
Перейдите в папку проекта, которую мы скачали ранее и указываем локальную версию Python:
cd ~/Documents/ai/VoxCPM
pyenv local 3.10.14
python --version # Должно вывести: Python 3.10.14
Настройка проекта и установка зависимостей Link to heading
Создание виртуального окружения Link to heading
# В папке проекта
python -m venv venv
source venv/bin/activate
pip install --upgrade pip
Установка проекта в режиме разработки Link to heading
pip install -e .
Проверка установки Link to heading
which voxcpm
# Должно указывать на путь внутри venv
voxcpm --help
# Должно отобразить справку по командам и доступным флагам
Скачиваем модель в папку Link to heading
Делаем папку для модели и качаем модель:
mkdir -p models/VoxCPM-2B
hf download openbmb/VoxCPM2 --local-dir ./models/VoxCPM2
Использование через CLI Link to heading
Базовый синтаксис Link to heading
В без все просто:
voxcpm <режим> [параметры]
Но мы пойдём путём клонирования своего голоса для озвучки текста.
Готовим файл для клонирования Link to heading
Я просто записал аудиосообщение в одном голубом мессенджере, сохранил его и перекодировал через ffmpeg в wav. Текст сообщения был такой: Это образец моего голоса. Я говорю здесь целых пять секунд.
Файл с текстом и аудио сохранил в папке ./ref. Т. е. ref.txt и ref.wav
Готовим текст для озвучки Link to heading
Создам папку output и inpit чтобы папку не замусоривать. Создаю текст для озвучки:
vim ./inpit/anime.txt
Накидал туда описание аниме - Ателье колдовских колпаков
Запускаем озвучку с клонированием нашего голоса Link to heading
Запускаем озвучку нашего текста с клонированием голоса в папку 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
Что у нас по параметрам? Link to heading
| Параметр | Значение в команде | Назначение |
|---|---|---|
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 |
Результат Link to heading
На выходе получился файл 35.02. Послушать его можно ниже:
Литература для изучения Link to heading
- GitHub репозиторий: https://github.com/OpenBMB/VoxCPM
- Страница модели на Hugging Face: https://huggingface.co/openbmb/VoxCPM2