yovoice CLI

Локальный синтез речи для агентов: команда и скилл озвучивают текст, клонируют голос по записи и собирают музыку из партитуры без облака и платы за символы

  • 1 968 ★ репозитория
  • Последний коммит
  • Apache-2.0
CLI

Расширенный доступ

Почему такой уровень

  • Скачивает из сети движок и модели размером в гигабайты и запускает их на вашем компьютере
  • Читает ваши записи голоса и пишет аудио и данные в `~/.yovoice`
  • Режим `yovoice serve --listen 0.0.0.0:8080` открывает сервис по сети, один общий токен дает доступ ко всем сохраненным голосам и аудио
Все причины и проверки

leemysw/yovoice

Установка

Ручная установка

yovoice setup

Скачивает движок audio.cpp v0.9.1: на Mac с Metal, в Windows и Linux на процессоре. Другой вариант выбирается ключом `--backend`.

Доступ и проверки

Как мы проверяем

Расширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.

  • Скачивает из сети движок и модели размером в гигабайты и запускает их на вашем компьютере
  • Читает ваши записи голоса и пишет аудио и данные в `~/.yovoice`
  • Режим `yovoice serve --listen 0.0.0.0:8080` открывает сервис по сети, один общий токен дает доступ ко всем сохраненным голосам и аудио

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

yovoice — открытая локальная студия озвучки и музыки, и для агентов в ней есть автономная команда `yovoice` и скилл `skills/yovoice`. Команда работает без настольного приложения на macOS с Apple Silicon, Windows x64 и Linux x64. `yovoice setup` скачивает движок audio.cpp v0.9.1, `yovoice models download` ставит выбранную модель, а `yovoice generate` превращает текст из `--text` или `--text-file` в файл WAV. Голос задается записью-образцом (`--reference`, от 1 до 60 секунд, до 20 МБ) или сохраненным голосом (`--voice`); часть моделей умеет собирать голос по текстовому описанию и держит встроенные голоса. Скилл учит агента порядку работы: проверить `yovoice --help` и `yovoice status --json`, узнать настоящие идентификаторы моделей и голосов через `yovoice models list --json` и `yovoice voices list --json`, положить длинный текст в файл UTF-8 и запустить генерацию. Результат приходит JSON-строкой в стандартный вывод с абсолютным путем и длительностью, ход работы идет в поток ошибок. Текст скилла написан по-китайски. Те же возможности агент получает по MCP: `yovoice mcp` запускается подпроцессом по stdio, а `yovoice serve` поднимает HTTP API и MCP-сервис для других машин с токеном не короче 32 символов. Отдельная команда `yovoice score render` собирает музыку из JSON-партитуры или MIDI с помощью звукового банка General MIDI и сохраняет общий файл и дорожки по отдельности.

Для кого. Для разработчиков и авторов контента, которым нужно озвучить текст, сделать закадровый голос или фоновую музыку из агента, не отправляя тексты и записи голоса в облачный сервис.

Подходит, если

  • Агенту поручено озвучить статью или сценарий из текстового файла голосом из записи-образца
  • Нужен голос по словесному описанию без записи образца (модели VoxCPM2 и Qwen3-TTS VoiceDesign)
  • Из заметок нужно собрать фоновую музыку: партитура в JSON или MIDI превращается в WAV и отдельные дорожки
  • Генерацию нужно вынести на другую машину с видеокартой и подключать к ней агента по HTTP или MCP

Не подходит, если

  • Нужна озвучка в реальном времени потоком: каждая модель сначала создает файл целиком, потокового режима нет
  • Нужны песни со словами через команду `generate`: модели музыки ACE-Step и YuE2 работают только в настольном приложении
  • Компьютер не подходит: поддерживаются macOS на Apple Silicon, Windows x64 и Linux x64, пакета для Linux ARM64 нет
  • Модель нужно подставить свою: ставятся только модели из списка yovoice, импорта локального GGUF нет

Пример запроса к агенту

Озвучь текст из narration.txt голосом из записи voice.wav, спокойным тоном, и сохрани результат как narration.wav

Ограничения

  • Лицензия Apache-2.0 относится к коду, у моделей свои условия: веса OmniVoice, YuE2 и Breeze TTS 2 разрешено использовать только в некоммерческих целях, OmniVoice выпущена под CC-BY-NC. Клонируйте только голоса, на использование которых у вас есть разрешение.
  • Каталог данных `~/.yovoice` в каждый момент занимает одно приложение, одна команда или один сервер; при открытом приложении используйте `--data-dir` или его локальный API. Сервер выполняет одну загрузку или генерацию за раз, при занятости отвечает 409 без очереди и хранит записи о последних 100 задачах только в памяти.
  • Результат сохраняется только в WAV и не перезаписывает существующий файл; каждая команда `generate` заново загружает модель.
  • Модели занимают от 1,35 до 8,08 ГБ и по умолчанию скачиваются с ModelScope, источники `--source huggingface` и `--source mirror` выбираются отдельно. Для Windows и Linux движок по умолчанию работает на процессоре, видеокартам нужны совместимые драйверы.
  • Автор не обещает фиксированный результат: эмоции зависят от модели, текста и образца. Скилл просит не заявлять, что качество проверено, пока озвучка не прослушана.

Как отключить. Команды удаления в документации нет. Уберите папку скилла из каталога скиллов агента и запись `yovoice` из MCP-настроек, затем удалите папку, куда распаковали архив команды, и ее путь из PATH. Модели, голоса и аудио остаются в `~/.yovoice` и удаляются вручную.

Частые вопросы

Нужно ли настольное приложение, чтобы озвучить текст из агента?

Нет. Команда `yovoice` автономна, в архив входит конвертер звука, поэтому отдельные FFmpeg, Python и Go не нужны. Движок и модели скачиваются отдельно командами `yovoice setup` и `yovoice models download`.

Какие записи подходят как образец голоса?

Длиной от 1 до 60 секунд и размером до 20 МБ. Принимаются WAV, MP3, M4A/AAC, FLAC, OGG/Opus, AIFF, WMA и WebM, конвертация идет автоматически. Голос можно сохранить командой `yovoice voices import voice.wav --name Narrator` и дальше брать по `--voice`.

Умеет ли yovoice озвучивать на русском?

У моделей Qwen3-TTS параметр языка принимает значение ru, VoxCPM2 определяет язык по тексту среди 30 поддерживаемых. IndexTTS 2.5 заявляет китайский, английский, японский, испанский и арабский, русского в этом списке нет.

Как подключить yovoice к Claude Code или Cursor как MCP-сервер?

Добавьте в настройки MCP запись `{"mcpServers": {"yovoice": {"command": "yovoice", "args": ["mcp"]}}}`. Клиент сам запустит подпроцесс по stdio, токен и порт не нужны. Если исполняемого файла нет в PATH, укажите полный путь.

Что делает `yovoice serve` и как его защитить?

Команда поднимает HTTP API и MCP на адресе `127.0.0.1:8080` по умолчанию. Токен берется из переменной `YOVOICE_API_TOKEN` и должен быть не короче 32 символов. Вне доверенной сети включайте HTTPS ключами `--tls-cert` и `--tls-key`. Описание запросов лежит на странице `/docs/` запущенного сервера.

Можно ли получить песню командой генерации?

Нет. ACE-Step и YuE2 работают только в настольном приложении, `generate` их не поддерживает. Для музыки в командной строке служит `yovoice score render`, которая рендерит партитуру через звуковой банк `musescore-general-sf2`.

Обсуждение

Вопросов и отзывов пока нет.

Официальный

Десять скиллов от ElevenLabs: озвучка текста, расшифровка, голосовые агенты, звуковые эффекты, музыка, дубляж и очистка голоса через API

СкиллРасширенный доступ516Звезды репозитория

Скилл учит агента собирать видео с закадровой озвучкой через narrator-ai-cli: поиск ролика, шаблон, музыка, голос, текст и монтаж

СкиллРасширенный доступ3,1 тыс.Звезды репозитория
Официальный

MCP-сервер голосового API SaluteSpeech от Сбера: записывает речь с микрофона, распознает ее и озвучивает ответ агента

MCP-серверРасширенный доступ9Звезды репозитория

Скилл пишет промпты для генерации видео, картинок и музыки на 14 платформах и по желанию отправляет их в браузере

СкиллШирокий доступ265Звезды репозитория

Набор скиллов, CLI и MCP-сервер, чтобы Claude Code или Codex делали видео по описанию: монтаж, графика, озвучка и субтитры

СкиллРасширенный доступ331Звезды репозитория

Скилл для Cursor, Claude Code и Codex: по названию продукта или ссылке собирает 4K-ролик с музыкой, озвучкой и проверкой

СкиллРасширенный доступ407Звезды репозитория

Сравнение с похожими

Записи с тем же главным запросом: чем они отличаются.

ЗаписьОфициальныйАвторизацияЗвезды репозиторияГлавное отличие
yovoice (эта запись)нет1 968
VoiceModeдане нужна1 427голосовой разговор с Claude Code: распознавание и синтез речи, локально или через облако
ElevenLabs Skillsда516озвучка, расшифровка и музыка через облачный API ElevenLabs
MCP SaluteSpeechдаAPI-ключ9MCP-сервер облачного голосового API SaluteSpeech от Сбера

Из блога

Коротко о README

В репозитории лежат настольное приложение (папки `desktop` и `web`), сервис на Go (`cmd` и `internal`), скилл `skills/yovoice` со справочниками по моделям, аудио, партитурам и удаленному доступу, документация по команде, API, моделям, партитурам и разработке, журнал изменений и список сторонних лицензий. Описание на английском и китайском перечисляет возможности, таблицу моделей, пакеты установки для macOS и Windows и пример запроса агенту.

Бейдж для README

Исходный SKILL.md

---
name: yovoice
description: 使用 yovoice 本地 CLI 或远程 HTTP API/MCP 生成语音,用于配音、旁白、朗读、声音设计和音色克隆;也可写乐谱渲染配乐。无需桌面 App。
---

# yovoice 配音

## 选择运行方式

- 用户指定远程服务或已有可用的 yovoice MCP 连接时,优先复用该服务,阅读[远程调用参考](references/remote.md)。客户端无需安装 CLI、引擎或模型。
- 使用本地推理时,按下方流程准备 CLI。用户明确选择的运行方式优先;远程连接失败时先核对地址和认证,不擅自改用本地或安装模型。
- 模型与音色 ID 来自所选服务或本地实例,不能跨实例直接复用。

## 本地 CLI

使用 `yovoice --help` 检查命令是否可用,再运行 `yovoice status --json`。CLI 独立运行,无需安装桌面应用或开发环境。

## 安装 CLI

命令不可用时,从 [GitHub Releases](https://github.com/leemysw/yovoice/releases) 下载对应平台的独立 CLI 压缩包。文件名中的 `<版本>` 为 Release 标签,例如 `v0.1.0`。

| 平台 | 安装包 | 可执行文件 |
| --- | --- | --- |
| macOS · Apple Silicon | `yovoice-<版本>-cli-macos-arm64.zip` | `yovoice` |
| Windows · x64 | `yovoice-<版本>-cli-windows-x64.zip` | `yovoice.exe` |
| Linux · x64 | `yovoice-<版本>-cli-linux-x64.zip` | `yovoice` |

完整解压并保留同级 `tools/` 目录,将可执行文件所在目录加入用户 PATH,重新启动 Agent,再执行 `yovoice --version` 验证安装。也可通过可执行文件的绝对路径调用。压缩包包含本 Skill;安装 Skill 不会自动安装 CLI、引擎或模型。

## 准备

- 仅支持 Apple Silicon macOS、Windows x64 和 Linux x64。所有命令的选项放在命令及位置参数之后。
- 默认数据目录与 App 相同(`~/.yovoice`,App 中迁移过则为迁移后的位置)。如果被 App 或另一个 CLI 占用,不终止用户任务;使用用户指定的独立 `--data-dir`,所有后续命令保持同一路径。新目录需要独立准备运行时和登记模型。
- `yovoice models list --json` 查看真实模型 ID 和安装状态;`yovoice voices list --json` 查看可用音色 ID。
- 安装引擎、选择 CPU/GPU、下载或登记模型时,阅读[引擎与模型参考](references/setup.md)。
- 用户提供参考文件时用 `--reference`。常见音频格式内部自动转换;格式、时长限制和复用方式见[音频参考](references/audio.md)。IndexTTS 需要参考音色;VoxCPM2 可无需参考音频进行声音设计,模式与参数见同一参考文档。

- 选择模型变体、内置音色、设计属性或高级生成参数时,阅读[模型能力参考](references/models.md)。Qwen Base、CustomVoice、VoiceDesign 的输入不同,不混用参考音频、内置说话人和设计描述。

## 生成

把长正文写入 UTF-8 文件,避免 shell 转义和命令行长度问题。例如:

```sh
yovoice generate --text-file narration.txt --reference voice.wav --model index-2.5-q8 --language zh --speed 1 --output narration.wav --json
```

已有音色改用 `--voice ID`,与 `--reference` 互斥。IndexTTS 需要情绪指导时添加 `--emotion-text "温柔、平静"`;效果受模型、文本和参考音频影响,不承诺固定效果。仅在用户需要时调节参数,默认沿用参考音色。不要使用不存在的预设参数。

命令阻塞到完成,进度在 stderr,stdout 只有最终 JSON;失败返回非零退出码,错误 JSON 在 stderr。Ctrl-C 取消当前命令并清理引擎,不提供跨进程取消命令。不要因首次模型加载慢反复启动任务。

成功后使用 JSON 的绝对 `path` 和 `duration` 交付音频;能够播放时展示播放器。没有实际试听,不宣称音质验证通过。参数错误先修正,下载或推理失败保留错误和日志线索,不无条件循环重试。输出文件默认拒绝覆盖,重新生成使用新文件名。

## 编曲配乐

用户需要配乐、垫底音乐或把 MIDI 渲染为音频时,阅读[编曲参考](references/score.md):写乐谱 JSON,用 `yovoice score render` 渲染混音和分轨。

Сообщить о проблеме

Foxx AIyovoice
Foxx AI

Я Foxx AI и уже разобрал этот инструмент. Спросите про установку, настройку или что угодно еще, отвечу простыми словами.