agentleFS
artemmarketologartemmarketolog/elevenlabs-voice/SKILL.md

elevenlabs-voice

Skill0 starsChanged 43 days agoMITView on GitHub

Озвучка через ElevenLabs: основная модель Eleven v4 (v3 — запасная). Один голос, рекламные и продающие подачи (ad, pitch), диктор, истории, диалоги нескольких голосов одним запросом, тайминги каждого слова для субтитров, audio-теги эмоций, произношение брендов через IPA, личный реестр голосов, создание голоса по описанию (Voice Design), журнал платных запросов и защита от двойной оплаты. На этом ядре работает озвучка скилла motion-video. Триггеры: «озвучь», «сделай озвучку», «голос», «TTS», «ElevenLabs», «озвучка рекламы», «питч голосом», «диалог голосами», «audio tags», «добавь голос», «создай голос». Text-to-speech, dialogue, word timings.

  • Reads credentials

1 other project uses a version of this.

Adopted by

Most recently taken up by

  • Other versions1 project uses a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 1

    1. vellum-ai/vellum-assistant★ 1.5ksame name

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • In this repositoryOne other file it gives its agents.

The file

Files
SKILL.md

ElevenLabs — озвучка (Eleven v4)

Одно ядро: scripts/eleven.py. Модель по умолчанию eleven_v4 — выбрана по слепому сравнению с v3 на четырёх голосах: естественнее интонация, лучше держит язык текста. eleven_v3 не удалена, но включается только явным --model eleven_v3 — когда v4 недоступна или конкретный голос звучит в ней хуже.

Ниже SKILL — абсолютный путь к папке этого файла, PY="$SKILL/.venv/bin/python" (создаётся setup.py). Установка и ключ: README.md.

Точки входа

ЗадачаКоманда
Озвучить текст + тайминги слов"$PY" "$SKILL/scripts/eleven.py" say --voice narrator --file t.txt --out o.mp3 --timings o.words.json
Текст прямо в команде"$PY" "$SKILL/scripts/eleven.py" say --voice narrator --text "…" --out o.mp3
Диалог нескольких голосов"$PY" "$SKILL/scripts/eleven.py" dialogue --file dialog.txt --out d.mp3 (строки алиас: реплика)
Реестр голосов / проверка ID"$PY" "$SKILL/scripts/eleven.py" voices [--check]
Голоса вашего аккаунта"$PY" "$SKILL/scripts/eleven.py" voices --account (бесплатно)
Добавить голос в реестр"$PY" "$SKILL/scripts/eleven.py" voices --add алиас VOICE_ID
Клонировать голос из записей"$PY" "$SKILL/scripts/eleven.py" voices --clone алиас rec1.mp3 [rec2.m4a …] [--remove-noise]
Новый голос по описанию"$PY" "$SKILL/scripts/voice_design.py" --description "…" --file demo.txt --out-dir /abs/vd
Озвучка внутри ролика (кэш, темп, микс)скилл motion-video → scripts/voice.py tts

say и dialogue принимают --text или --file, --timings пишет JSON со временем начала и конца каждого слова (для субтитров и синхронизации анимации), --model, --seed, --stability, --language, --no-normalize. Полный список: eleven.py say --help.

Подготовка текста

Хороший результат v4 даёт текст с правильной пунктуацией и редкими audio-тегами там, где подача меняется. Готовьте текст сами по правилам ниже и references/v4-prompting.md, затем озвучивайте как есть. Если пользователь дал утверждённый текст — не менять ни слова.

Автоматическая подготовка (необязательно): --style ad|pitch|narrator|story|calm прогоняет текст через Claude CLI (claude -p, должен быть установлен и авторизован): расставляет пунктуацию и теги под подачу, слова не меняет. По умолчанию --style none — текст уходит как есть. Подготовленный текст печатается в stderr — проверьте его до выдачи.

--styleПодача
adреклама: живо, энергия к выгоде, уверенный призыв
pitchпродающий питч: уверенно, пауза перед главным аргументом
narratorдиктор объясняющего ролика: спокойно, тепло, ровно
storyистория от первого лица: вздохи, смешки, живые паузы
calmмягко, доверительно, медленно
noneбез подготовки (по умолчанию; то же, что --no-preprocess)

Как писать текст под v4

Подробно с примерами: references/v4-prompting.md. Коротко:

  • v4 сама читает эмоцию и темп из контекста. Тег нужен там, где подача меняется: примерно один на 1–2 предложения.
  • Тег — ремарка режиссёра по-английски в […], можно несколько указаний через запятую: [casual, curious], [Quiet, measured narration], [Gradually building energy], [lower, thoughtful].
  • Звуки — сразу после фразы: Мы тоже через это прошли. [sighs].
  • Паузы: ..., [short pause], [long pause], [Brief pause]. SSML <break> не работает.
  • Только слышимые теги. [smiling], [standing], [music] модель может превратить в звуковой эффект.
  • Темп задаётся тегами ([measured pace], [Quick, light, playful pace]) и пунктуацией. Ускорение готового файла — через ffmpeg atempo (в motion-video: voice.py tts --tempo 1.15). Реклама в Reels обычно звучит лучше на ×1.1–1.15.
  • Произношение брендов и редких слов: IPA прямо в тексте в виде "/ˈbrænd/" (слеши внутри двойных кавычек). Размечайте только проблемные слова и проверяйте на конкретном голосе. Альтернатива — написать слово так, как оно звучит, или словарь произношения ElevenLabs.
  • Слова другого языка внутри русской речи (например, казахские) пишите для озвучки русскими буквами по произношению, ударение — знаком: «солай ғой» → «солай хой», «акша́». На экране оставляйте правильное написание (отдельный файл текста). Распознавание такие слова не проверяет: озвучку отдайте на слух человеку, знающему язык.
  • В --timings слова идут так, как написаны в тексте для озвучки, включая IPA и фонетическое написание: перед субтитрами замените их на экранное написание.
  • Бренд первым словом фразы часто «проглатывается». Начинайте фразу с действия: «Дарим iPhone каждому…», а не «Бренд дарит…».
  • Цифры, даты, валюты пишите словами, если важна форма: «до пятидесяти процентов», «двадцать пятого мая».

Настройки моделей

МодельПо умолчаниюЧего нет
eleven_v4stability 0.5, similarity 0.75style, speed, speaker boost, SSML
eleven_v4_turboто же; в 2 раза дешевле, для агентов и реального временито же
eleven_v3 (запасная)stability 0.0, similarity 0.75, style 0, speaker boost—
eleven_multilingual_v2stability 0.5, similarity 0.75, style 0, speaker boost—
  • stability: ниже — выразительнее, но шире разброс между дублями; выше — ровнее. Диктор 0.6–0.7, эмоциональная реклама 0.3–0.4.
  • Если передать v4 speed или style, ядро остановится с ошибкой, а не будет молча их игнорировать: API такие поля принимает, но на звук они не влияют.
  • v4 отдаёт звук на 2–5 LUFS тише v3. say и dialogue выравнивают громкость до −16 LUFS (нужен ffmpeg); отключается --no-normalize. Видеопайплайны нормализуют звук сами на миксе.
  • --seed N даёт повторяемый дубль. --previous-text и --next-text передают соседний текст, чтобы на стыках сцен не менялась интонация.
  • --language ru|kk|en… — только при сбоях языка. v4 говорит на языке текста без акцента эталона голоса.
  • Если у конкретного проекта голос звучит лучше на другой модели — закрепите это в его брифе и передавайте --model явно.

Голоса

Личный реестр: ~/.config/media-skills/voices.json (или ELEVENLABS_VOICES_FILE), формат алиас → voice_id. setup.py кладёт туда пример с двумя общедоступными голосами библиотеки ElevenLabs (narrator, host). Замените их своими:

"$PY" "$SKILL/scripts/eleven.py" voices --account            # что есть в аккаунте
"$PY" "$SKILL/scripts/eleven.py" voices --add brand_voice ID  # записать алиас
"$PY" "$SKILL/scripts/eleven.py" voices --check               # все ID живы

Вместо алиаса можно передать voice_id напрямую (--voice 21m00Tcm4TlvDq8ikWAM). Реестр личный и в git не попадает.

Создание голосов:

  • Voice Design (scripts/voice_design.py): по текстовому описанию (по-английски точнее) делает 3 превью, сохраняет mp3 + previews.json. Отдельной модели дизайна под v4 нет (eleven_multilingual_ttv_v2, eleven_ttv_v3), но созданный голос работает в v4. По документации ElevenLabs голоса Voice Design в v4 звучат менее живо, чем клоны и голоса библиотеки: перед продакшеном прослушать и сравнить с готовым голосом из библиотеки. Сохранить выбранный: voice_design.py --create-voice <generated_voice_id> --name "Warm host" --description "…" --alias warm_host.
  • Клон (IVC): v4 даёт хорошее качество уже от 10 секунд, но лучше 1–2 минуты чистой записи в одной манере. v4 копирует и шумы исходника. Чистую речь клонируйте без --remove-noise (на чистой записи шумоподавление портит голос); запись под музыкой — сначала через Voice Isolator или с --remove-noise, а если музыка всё равно слышна, такую запись в клон не берите. Клонировать можно только свой голос или голос с письменного согласия владельца. Команда: eleven.py voices --clone алиас запись1.mp3 [запись2.m4a …] [--name "Имя"] [--remove-noise] — создаёт голос в аккаунте (нужен платный тариф ElevenLabs, символы не тратит, занимает слот голоса) и пишет его в реестр. Голосовое из Telegram (ogg) подходит как есть. После клона — одна короткая проба say и прослушать.
  • PVC: поддерживается; чтобы голос дообучился под v4, в My Voices нажмите «+» напротив Eleven v4.

Деньги и защита от лишних трат

  • v4 стоит около $0.08 за 1000 символов (как v3), turbo — $0.04; цены и скидки смотрите на elevenlabs.io/pricing.
  • Каждый платный запрос пишется в журнал ~/.local/share/elevenlabs-voice/ledger.jsonl ДО отправки (статус started), затем success / failed / unknown_billed.
  • Ядро никогда не повторяет платный запрос автоматически. unknown_billed (таймаут, обрыв, 5xx) — сначала проверить History в кабинете ElevenLabs, только потом новая попытка. Кэш озвучки в motion-video резервирует дубль до вызова.
  • Лимиты: 10 000 символов на запрос в v4 (у v3 — 5 000); диалог — до 2 000 символов и до 10 голосов на запрос. Длинный текст режьте по абзацам и передавайте --previous-text / --next-text.

Проверка результата

  1. Файл непустой, длительность правдоподобна: ffprobe -show_entries format=duration o.mp3.
  2. Не пропали ли слова и не прочитаны ли теги вслух: --timings + сравнение со сценарием, или ASR (в motion-video: voice.py asr file.mp3 --text script.txt, платный OpenAI, копейки).
  3. Интонацию и ударения распознавание не проверяет: важную озвучку отдавайте человеку на прослушивание и честно говорите, если сами не слушали.

Ключ и ссылки

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.