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
- vellum-ai/vellum-assistanttheir own version, first seen Jul 8, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 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.
- AGENTS.mdAGENTS.md
The file
Files
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_v4 | stability 0.5, similarity 0.75 | style, speed, speaker boost, SSML |
eleven_v4_turbo | то же; в 2 раза дешевле, для агентов и реального времени | то же |
eleven_v3 (запасная) | stability 0.0, similarity 0.75, style 0, speaker boost | — |
eleven_multilingual_v2 | stability 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.
Проверка результата
- Файл непустой, длительность правдоподобна:
ffprobe -show_entries format=duration o.mp3. - Не пропали ли слова и не прочитаны ли теги вслух:
--timings+ сравнение со сценарием, или ASR (в motion-video:voice.py asr file.mp3 --text script.txt, платный OpenAI, копейки). - Интонацию и ударения распознавание не проверяет: важную озвучку отдавайте человеку на прослушивание и честно говорите, если сами не слушали.
Ключ и ссылки
ELEVEN_API_KEY— из окружения или~/.config/media-skills/elevenlabs-voice.env. Значение нигде не печатается.- Документация: https://elevenlabs.io/docs/overview/capabilities/text-to-speech · промптинг v4: https://elevenlabs.io/docs/overview/capabilities/text-to-speech/best-practices
- Связанные скиллы: motion-video (ролики с озвучкой), image-gen (картинки).
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
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.

