VoiceCard
VoiceCard
Клонируйте свой голос и превращайте его в видео с волновой формой, которым можно поделиться, — всё управляется через MCP. Без GUI. Только Apple Silicon.
Клонирование голоса теперь стало обычным делом. Отличие — доставка: короткий MP4 с красивой волновой формой, реагирующей на звук, воспроизводится прямо в WhatsApp, iMessage, Signal и Slack, где сырые аудиофайлы зависают, не автовоспроизводятся или не работают на iOS/Android. Каждый отправленный клип — это также реклама инструмента. В этом вся идея.
Фронтенд это MCP. Вы общаетесь с ним из Claude Code, Cursor или любого MCP-совместимого агента:
«Клонируй мой голос из
~/Desktop/me.mov(вот транскрипт), затем сделай 15-секундный клип в палитре Miami, говорящий „с днём рождения“, с моим фото в центре.»
Как это работает
Полностью автономно. Речь генерируется локально с помощью mlx-audio (Qwen3-TTS через MLX), видео с волновой формой рендерится с помощью MLX / Pillow и мультиплексируется с ffmpeg. Никакого облака, никакого Voicebox, никакого десктопного приложения.
Клонирование — это zero-shot обучение в контексте: оно обрезает ваш референс до ~12 секунд и использует его как условие. Нет этапа обучения и нет отдельной модели для каждого голоса.
Related MCP server: Rheo MCP Server
Требования
Mac на Apple Silicon (arm64). Проверяется при запуске.
Больше ничего устанавливать вручную не нужно.
ffmpegпоставляется в комплекте (статический бинарник черезimageio-ffmpeg); системныйffmpegиз PATH используется автоматически, если он есть.
Первый запуск — самый медленный
Сама установка быстрая, но она не скачивает модели ИИ. При первом вызове clone_voice / make_clip VoiceCard лениво подтягивает их в общий кэш Hugging Face (~/.cache/huggingface/hub/):
Qwen3-TTS веса (~несколько ГБ) — синтез речи.
Whisper (
large-v3-turbo, ~1.5 ГБ) — используется для автоматической транскрипции референсов и для синхронизации субтитров.
Обе модели кэшируются, так что это происходит только один раз. Заложите несколько минут, немного трафика и ~несколько ГБ диска на первый вызов.
Аккаунт или токен Hugging Face не требуется — обе модели публичные и скачиваются анонимно. Hugging Face используется только как хостинг для загрузки. Однако анонимные загрузки ограничены по скорости; если первая загрузка медленная или ограничена, установите бесплатный токен для более быстрых/высокоскоростных загрузок (совершенно необязательно):
export HF_TOKEN=hf_xxx # optional — only speeds up / de-throttles the first downloadУстановка
Требуется uv (brew install uv или однострочный установщик с этой страницы). Больше ничего — ffmpeg встроен, модели скачиваются сами.
Одной строкой, прямо с GitHub:
uv tool install git+https://github.com/JasonMakes801/voicecard-mcpЗатем зарегистрируйте его в Claude Code (команда voicecard теперь в вашем PATH):
claude mcp add -s user voicecard -- voicecardВот и всё. Попросите вашего агента выполнить clone_voice и make_clip.
git clone https://github.com/JasonMakes801/voicecard-mcp
cd voicecard-mcp
uv tool install . # or: uv run voicecard
# register the in-place checkout
claude mcp add -s user voicecard -- uv --directory "$PWD" run voicecardИнструменты
Инструмент | Что делает |
| Перечисляет сохранённые голоса, каждый в паре со своим |
| Перечисляет доступные палитры (имя + цвета) и отображает визуальный лист образцов (возвращает |
| Клонирует из аудио- или видеофайла. Обрезает референс до ~12 секунд и сохраняет профиль. |
| Генерирует речь клонированным голосом; возвращает путь к wav-файлу. |
| Генерирует речь и рендерит доступный для обмена mp4 с волновой формой. Субтитры (всплывающие пузыри, синхронизированные с произнесением) включены по умолчанию; аватар берётся из сохранённого |
Палитры: Noir (по умолчанию), 70s Gold, Miami, Aurora, Sunset, Mint, Blueprint
Соотношение сторон: square (1080², по умолчанию), portrait (9:16)
Раскладка: linear (по умолчанию — круглое фото + компактная градиентная волновая форма ниже, в стиле Dynamic Island) · circle (центрированное кольцо спектра, реагирующее на звук)
Дуга (только для раскладки circle): full (по умолчанию, зеркальное кольцо) · top (пики над верхней половиной)
Конфигурация (env)
Переменная | По умолчанию |
|
|
|
|
|
|
| переопределяет бинарник ffmpeg (иначе системный PATH, иначе встроенный) |
| QR-цель, печатаемая на каждом клипе |
| слоган, печатаемый на каждом клипе |
Тестирование
uv pip install -e ".[test]"
pytest tests/test_fast.py tests/test_mcp.py -q # fast: no model, no network (~1s)
VOICECARD_RUN_MODEL_TESTS=1 pytest tests/test_integration.py -q # real Qwen+Whisper (downloads GBs)
bash scripts/virgin_install_test.sh # fresh-venv install + smoke, from scratchБыстрые (
test_fast.py,test_mcp.py): целостность палитр, выравнивание субтитров (входные слова, тайминги STT), проверка аргументов и поверхность протокола MCP.Интеграционные (
test_integration.py, с ограничением): clone → speak → make_clip от начала до конца, проверяя, что mp4 содержит аудио+видео и ненулевую длительность.Чистая установка (
scripts/virgin_install_test.sh): устанавливает во временное виртуальное окружение и проверяет импорты, запасной вариант со встроенным ffmpeg (без brew), консольный скрипт и наборы тестов без моделей для установленного пакета.
Примечания
Выходной файл — стерео,
+faststart, профиль H.264 High — настроен для автовоспроизведения прямо в мессенджерах.Волновая форма стилизована так, чтобы всегда выглядеть живой, а не как диагностический анализатор спектра.
Выгрузка авторегрессионного декодера на Core ML / ANE не планируется (динамические формы + KV-кэш + последовательное декодирование плохо подходят для ANE). Единственное, что стоит изучить в будущем, — это выгрузка вокодера на Core ML.
Дорожная карта
Субтитры без Whisper (использование собственного выравнивания Qwen). Qwen3-TTS работает на 12 Гц и уже знает тайминги слов внутри через cross-attention (монотонная гряда от текстовых токенов к аудиокадрам). Сегодня мы восстанавливаем тайминги, запуская Whisper на выходе — надёжно, но это целая вторая модель. Вместо этого нужно пропатчить декодирование mlx-audio, чтобы извлечь cross-attention для целевой области (обрезав ICL-референс спереди), извлечь монотонное выравнивание и сопоставить текстовые токены со словами. Это уберёт Whisper из горячего пути для каждого клипа: в сочетании с передачей
transcriptпри клонировании Whisper вообще не будет запускаться (или скачиваться) для обычного пользователя. Риск: внутреннее декодирование mlx-audio не является стабильным API, поэтому зафиксируйте версию и добавьте тест на расхождение (тайминги, полученные из Qwen, против Whisper на фикстуре; тест должен падать при расхождении). Примечание: выравнивать нечего — только BPE-токены текста → аудиокадры.
Лицензия
MIT. Вы несёте ответственность за клонирование только тех голосов, которыми владеете или на использование которых у вас есть разрешение.
This server cannot be deployed
Maintenance
Related MCP Connectors
Turn documents and photos into narrated AI videos from Claude, ChatGPT, Codex or any MCP client.
AI voice generation: text-to-speech and voice cloning from any MCP client.
Generate and edit images, video, voice, lip-sync and 3D models from your AI agent.
Direct AI video, image, music and storyboard production from any MCP client.
Related MCP Servers
AlicenseNot gradedqualityDmaintenanceEnables text-to-speech generation, voice cloning, dialogue creation, and other TTS operations through natural language in MCP-compatible AI assistants.7 npmMIT- AlicenseNot gradedqualityBmaintenanceEnables AI agents to access local voice synthesis, zero-shot cloning, and voice catalog tools through native MCP tool calls for applications like Claude and Cursor.17 npmAGPL 3.0
- AlicenseNot gradedqualityAmaintenanceEnables MCP-compatible clients to generate images and videos, synthesize speech, clone and design voices, and create related media outputs.188 npmMIT
- AlicenseNot gradedqualityAmaintenanceEnables MCP-compatible clients to generate images and videos, synthesize text-to-speech audio, and clone or design custom voices. It also supports flexible output handling (URLs or local files) and multiple transport modes including stdio, REST, and SSE.188 npmMIT