Язык разметки синтеза речи (SSML) — это язык разметки на основе XML, который оборачивает текст в теги, чтобы указать модели синтеза речи, как именно его произносить, включая места для пауз, правила произношения слов и выделение фраз.
Этот уровень управления лежит в основе многих ИИ-голосов, которые вы слышите ежедневно. Интерактивные голосовые меню (IVR), зачитывающие номер подтверждения, и ИИ-рассказчик аудиокниг, делающий паузу в конце главы, — все они используют ту или иную версию SSML. Если вам доводилось настраивать сгенерированную ИИ речь, вы наверняка сталкивались с SSML.
SSML является частью технологии преобразования текста в речь (TTS) уже более двух десятилетий и до сих пор играет важную роль в том, как многие провайдеры предоставляют услуги TTS. В этом руководстве объясняется, что такое SSML и где именно он применяется в линейке моделей ElevenLabs, а также описывается усовершенствованная система аудиотегов, которую используют Eleven v3 и Eleven v4 для создания передового, естественного синтеза речи.
Сводка
- SSML — это W3C-rooted markup language, используемый для управления вокальными паузами, акцентами, произношением и темпом в синтезированной речи.
- Модели ElevenLabs, за исключением Eleven v3 и Eleven v4, поддерживают тег SSML <break> для пауз продолжительностью до 3 секунд.
- Eleven Flash v2 и Eleven Turbo v2 поддерживают тег <phoneme> для настройки английского произношения.
- Eleven v3 и Eleven v4 вообще не поддерживают SSML. Вместо этого они используют аудиотеги (Audio Tags) в квадратных скобках для инструкций на естественном языке, таких как [whispering] (шепот) и [sighs] (вздохи), чтобы управлять потоком синтезированной речи.
- WebSocket API управляет синтаксическим анализом SSML с помощью параметра enable_ssml_parsing и отправляет теги SSML в виде полных сообщений во избежание дополнительной задержки.
- Такие теги, как <prosody>, <say-as>, <sub>, <lang>, <voice> и <audio>, не поддерживаются моделями ElevenLabs, но у каждого из них есть альтернатива: настройки голоса, нормализация текста, словари произношения, многоязычные модели, раздельные голоса и звуковые эффекты.
Что такое SSML?
SSML — это язык разметки, который позволяет аннотировать письменный текст инструкциями о том, как движок синтеза должен его озвучить. Консорциум Всемирной паутины (W3C) разработал его как стандарт, расширяющий возможности моделей преобразования обычного текста в речь. SSML предлагает четкие, машиночитаемые указания по произношению отрывка, а не полагается на модели интерпретации простого текста.
SSML не является уникальной разметкой, привязанной к какому-то одному провайдеру. Amazon Polly и Microsoft Azure Speech используют теги SSML, такие как <break> и <emphasis>, в качестве основного механизма управления. Большинство облачных платформ преобразования текста в речь поддерживают ту или иную версию этого стандарта. SSML был стандартным способом аннотирования речи задолго до появления генеративных голосовых моделей.
SSML остается фундаментальным стандартом, в то время как новые элементы управления, специфичные для конкретных моделей, развиваются параллельно с современными технологиями генеративного голоса. Эта независимая от поставщиков спецификация лежит в основе SSML и позволяет провайдерам реализовывать общие базовые теги. Затем провайдеры могут надстраивать собственные расширения и ограничения поверх этих базовых тегов.
Распространенные теги SSML для улучшения интонации и их функции
Реализации SSML имеют общий набор тегов, которые большинство пользователей ищут при попытке управлять синтезированной речью.
К числу этих распространенных тегов SSML относятся:
- <speak>: корневой тег, который объединяет весь отрывок целиком. Большинство реализаций требуют его наличия для распознавания заключенного внутри содержимого в качестве SSML.
- <break>: вставляет паузу заданной продолжительности, что оказывается полезным для создания естественной фразировки между предложениями или при нагнетании напряжения в тексте.
- <phoneme>: определяет точное произношение слова с использованием фонетического алфавита, такого как IPA или CMU Arpabet, что полезно для аббревиатур, имен или технических терминов.
- <emphasis>: выделяет слово или фразу голосом, имитируя то, как спикер естественным образом усиливает или ослабляет смысловую нагрузку.
Каждый из этих четырех тегов ведет себя по-разному в зависимости от используемой для чтения модели TTS. Некоторые провайдеры поддерживают дополнительные теги для просодии или скорости речи. Скрипт, написанный для одного провайдера TTS, будет вести себя иначе у другого, даже если оба заявляют о поддержке SSML, поскольку охват полного набора тегов различается.
Больше всего различается то, какие именно теги обрабатывает конкретная модель преобразования текста в речь — именно здесь реализация ElevenLabs становится уникальной.
Использование SSML в ElevenLabs
Поддержка SSML в ElevenLabs не является полностью унифицированной. Она зависит от выбранной для генерации аудио модели. Тег <break> поддерживается наиболее широко, в то время как <phoneme> доступен для меньшего числа моделей.
Более старые модели TTS от ElevenLabs, такие как Multilingual v2, поддерживают тег <break> для пауз длительностью до трех секунд. Например, ИИ-агент может сказать: «Подождите, дайте подумать», а затем использовать <break time="2.0s" /> для создания слышимой паузы перед тем, как продолжить: «Хорошо, я знаю, как помочь». Это самый популярный тег во многих рабочих процессах, поскольку он помогает имитировать более естественный стиль разговора.
При использовании тегов SSML лучше ограничиваться небольшим их количеством за раз. Использование большого числа тегов в одном предложении или абзаце может заставить модель неожиданно изменить скорость или добавить различные звуковые артефакты. Разные голоса также по-разному обрабатывают паузы, особенно голоса, обученные на аудиопримерах с такими словами-паразитами, как «эм» или «ух».
SSML на практике с ElevenLabs
Модели ElevenLabs Flash v2 и Turbo v2 идут еще дальше и также поддерживают тег <phoneme> для пользовательского произношения (доступно только для английского языка). Это делает тег phoneme полезным для исправления произношения имен, аббревиатур, технических терминов или другой специфической лексики. Это работает до тех пор, пока скрипт выполняется на одной из этих двух моделей.
С другой стороны, Eleven v3 и Eleven v4 полностью отходят от этого шаблона. Они используют аудиотеги для контроля подачи. Кроме того, Eleven v4 представляет встроенную нативную поддержку IPA, позволяя читать символы IPA, заключенные в косые черты, прямо в тексте. Ниже мы расскажем, чем заменяются тег паузы и элементы управления подачей.
Полную информацию об элементах управления преобразованием текста в речь от ElevenLabs, включая словари произношения и нормализацию текста, см. в руководстве по передовым практикам.
Примеры кода SSML с ElevenLabs
В примерах ниже показано использование SSML в скрипте и в вызове API. Помните, что тег <break> работает на всех моделях, кроме Eleven v4 и Eleven v3, а тег <phoneme> работает только на Flash v2 и Turbo v2 (только для английского языка).
Реализация SSML для управления голосом с целью добавления паузы
Оберните текст и тег в блок <speak> и оставьте кавычки вокруг значения атрибута:
Дополнительную информацию о паузах и тегах фонетического произношения SSML можно найти через ElevenAPI.
Исправление произношения с помощью тега <phoneme>
Используйте IPA или CMU Arpabet, чтобы точно прописать звучание слова. Здесь имя «Шиван» задано с помощью IPA, а «Мэдисон» — с помощью CMU Arpabet:
Генерация речи с помощью SSML в Python
Этот вызов отправляет скрипт, содержащий тег паузы, модели, которая ее поддерживает:
Генерация речи с помощью SSML в JavaScript
Ниже приведен аналогичный пример генерации речи с использованием SSML, но написанный на JavaScript.
SSML и WebSocket API
Передача потокового аудио через WebSocket API ElevenLabs вместо стандартного HTTP-запроса требует явного включения разбора SSML. Эта функция отключена по умолчанию и управляется параметром enable_ssml_parsing.
Для достижения наилучших результатов рекомендуется отправлять каждый тег SSML в виде полностью автономного сообщения, а не разделять его на несколько потоковых фрагментов. Разделение тега внутри сообщения увеличивает задержку, так как парсеру требуется полный тег, прежде чем он сможет его обработать.
Загрузка словаря произношений на основе фонетиков автоматически включает разбор SSML для запроса, даже если параметр enable_ssml_parsing не был задан явно. Подробную информацию о параметрах и форматировании сообщений, доступных для WebSocket API, можно найти в этом руководстве по генерации аудио в реальном времени.
В примере ниже разбор SSML включается в URL-адресе подключения, а полный тег break отправляется в рамках одного сообщения:
Теги SSML, которые не поддерживаются ElevenLabs, и чем их заменить
Благодаря переходу на систему аудиотегов модели синтеза речи ElevenLabs предоставляют пользователям большую гибкость и детальный контроль над генерируемым аудио. Аудиотеги также полностью написаны на естественном языке, что делает их чрезвычайно простыми для использования в ваших скриптах.
Если вы работаете с более ранней моделью ElevenLabs, вам может пригодиться знание того, какие теги SSML поддерживаются. В связи с наличием множества предпочтительных альтернатив, ранние модели ElevenLabs теперь обрабатывают только <break> и <phoneme>, в то время как остальные теги SSML заменены другими методами.
Другие теги SSML, которые могут быть вам известны из спецификации W3C, не считываются как разметка, поэтому для каждого из них требуется иной подход. Вот чем следует заменить другие теги SSML в ElevenLabs:
Тег SSML
Что он делает
Что использовать вместо него
<prosody>
Устанавливает высоту тона, скорость речи и громкость
Настройки голоса скорости и стабильности. В Eleven v3 и Eleven v4 используются аудиотеги подачи, такие как [slowly] или [rushed]
<emphasis>
Выделяет слово или фразу
Заглавные буквы или знаки препинания для выделения. В Eleven v3 и Eleven v4 используются такие теги, как [shouts]
<say-as>
Управляет чтением чисел, дат и аббревиатур
Нормализация текста, посимвольное прочтение слова или правило словаря произношений
<sub>
Заменяет произносимую форму написанного слова
Правило псевдонима словаря произношений
<lang>
Переключает язык фразы
Многоязычная модель с фразой, написанной на целевом языке
<voice>
Переключает спикера посреди скрипта
Отдельная генерация для каждого голоса или многоязычный диалог в Eleven v3 и Eleven v4
<audio>
Вставляет записанный аудиофайл или звук
Аудиотеги звуковых эффектов в Eleven v3 и v4, инструмент звуковых эффектов ElevenLabs или микширование аудио после генерации
Просодия: высота тона, скорость речи и громкость с SSML
Тег <prosody> в SSML регулирует высоту тона, скорость речи и громкость для определенного отрезка текста. В более ранних моделях ElevenLabs вы управляете темпом с помощью настройки голоса «скорость» и выразительностью с помощью настройки «стабильность», причем обе они применяются ко всей генерации целиком, а не к отдельной фразе.
Чтобы изменить темп внутри скрипта, разделите текст на отдельные генерации или добавьте теги <break> между предложениями. В Eleven v3 и v4 используйте аудиотеги из таблицы выше, такие как [slowly], [rushed] и [whispers], размещая их прямо в строке.
Произношение: <phoneme>, <say-as> и <sub> с SSML
ElevenLabs предлагает три пути управления произношением в результатах синтеза речи (TTS).
Вот основные методы, к которым вы можете обратиться:
- Используйте <phoneme> для точечного исправления в Flash v2 или Turbo v2, как в примере выше.
- Используйте словарь произношений для терминов, которые повторяются во многих скриптах. Словарь может содержать правила фонемов и правила псевдонимов, которые ведут себя как <sub>, например, сопоставляя «UN» с «United Nations».
- Для того, с чем справляется <say-as>, например, для чисел, дат, валют и телефонных номеров, полагайтесь на нормализацию текста, которая преобразует написанные значения в произносимые слова. Если значение должно читаться строго определенным образом, например номер подтверждения, пропишите его по буквам или разделите цифры пробелами в скрипте.
Язык и локаль
Тег <lang> в SSML помечает фразу как принадлежащую к другому языку. Модели TTS ElevenLabs не читают этот тег. Вместо этого выберите многоязычную модель и напишите фразу на том языке, на котором она должна быть произнесена.
Flash v2 и Turbo v2 поддерживают только английский язык, поэтому для скриптов, в которых смешиваются языки, требуется многоязычная модель, такая как Multilingual v2, Flash v2.5, Eleven v3 или Eleven v4. Eleven v4 и v3 также поддерживают теги акцента, такие как [French accent], и транскрипцию IPA на более чем 70 языках.
Аудио и звуковые эффекты
Тег <audio> в SSML воспроизводит записанный клип внутри озвученного ответа. Это тег SSML, который ElevenLabs не поддерживает, так как наши модели TTS могут генерировать новые звуковые эффекты на основе ваших подсказок на естественном языке.
Чтобы добавить звук в саму речь, просто напишите тег звукового эффекта, например [applause] или [door slamming], и наблюдайте, как Eleven v4 и Eleven v3 воплощают его в жизнь. Для более сложного или детального саунд-дизайна сгенерируйте звуковой эффект отдельно и смешайте его с голосовой дорожкой в вашем редакторе или производственном рабочем процессе.
Лучшие практики SSML с ElevenLabs
Если вы работаете с одной из старых моделей TTS ElevenLabs, теги SSML все еще частично поддерживаются. Помните, что вы можете в любой момент переключиться на Eleven v4, чтобы в полной мере воспользоваться аудиотегами, благодаря чему вам больше никогда не придется искать точное написание тега SSML.
Но при работе с SSML в ElevenLabs вот несколько советов, которые помогут вам начать:
- Проверьте используемую модель: <break> работает на всех моделях, кроме Eleven v3, <phoneme> работает только на Flash v2 и Turbo v2, а аудиотеги работают только на более новых моделях, таких как Eleven v4 и Eleven v3.
- Используйте паузы экономно: ставьте по одной на каждой естественной границе, а не нагромождайте несколько подряд.
- Пишите теги SSML правильно: заключайте значения атрибутов в кавычки, например <break time="2.0s" />, и закрывайте каждый открытый тег.
- Передавайте теги целиком: отправляйте каждый тег SSML в рамках одного сообщения WebSocket.
- Тестируйте с тем голосом, который будете использовать в продакшне: голоса по-разному обрабатывают паузы, поэтому прослушивайте короткие фрагменты генерации перед запуском полного скрипта. Библиотека голосов ElevenLabs насчитывает более 17 500 голосов.
Помимо этих рекомендаций по использованию SSML, рекомендуется использовать словарь произношений для любых терминов, которые будут часто повторяться. Для разовых исправлений лучшим выбором будет <phoneme>.
Каковы основные варианты использования SSML?
Язык разметки синтеза речи (SSML) в основном используется для управления тем, как движок TTS производит аудиоклип, или для его точной настройки. Это полезный инструмент для вставки пауз или уточнения произношения определенного слова, а также для придания просодии сгенерированной ИИ речи.
Вот несколько сценариев использования SSML, в которых этот стандарт оказывается полезен:
- Системы интерактивного голосового ответа (IVR): полезны, когда система IVR должна сделать паузу между подсказкой и меню или четко прочитать числа.
- Разговорные агенты: добавление короткой паузы перед ответом, чтобы диалог звучал естественно.
- Аудиокниги и длинные повествования: паузы в конце глав и между сценами для демонстрации четкого разграничения моментов до и после их завершения.
- Электронное обучение и тренинги: исправление произношения названий продуктов, технических терминов, аббревиатур и специфических для бизнеса терминов.
- Уведомления и оповещения: управление тем, как читаются даты, время и справочные коды.
Хотя SSML действительно предлагает множество сценариев использования, все они могут быть реализованы без необходимости заучивать и вставлять часто сложные теги SSML в ваши сценарии, благодаря использованию аудиотегов. Модели Eleven v4 и Eleven v3 создали систему аудиотегов, чтобы предоставить пользователям полный контроль над генерируемой ИИ русской речью без лишних сложностей с SSML.
Почему Eleven v4 использует аудиотеги вместо SSML
Eleven v4 использует аудиотеги в качестве альтернативного механизма управления подачей и уточнения произношения. Модель считывает встроенные инструкции в квадратных скобках, поступающие непосредственно из текста сценария, что позволяет вам писать на естественном языке для получения определенного результата. Эти аудиотеги охватывают широкий спектр указаний, в том числе:
- Эмоции или чувства, такие как [sad] или [excited]
- Манера подачи и темп, например [whispers] или [rushed]
- Человеческие реакции, такие как [sighs] или [laughs]
- Акценты и голоса персонажей, например [French accent]
- Звуковые эффекты, включая [applause] или [door shutting]
Причина такого дизайна кроется в том, как эта модель считывает контекст в разговоре. Архитектура Eleven v4 анализирует контекст глубже, чем предыдущие модели, что позволяет ей следовать эмоциональным подсказкам, сбоям тональности, переходам между спикерами и контекстным намекам без использования отдельных параметров или настроек.
SSML дает конкретные инструкции в фиксированной точке текста, из-за чего подача кажется неестественной и скованной. SSML — одна из главных причин, почему сгенерированный ИИ текст звучит как у робота, несмотря на высокое качество лежащих в основе моделей.
Реплика вроде [whisper] дает Eleven v4 интерпретационную задачу, которая применяется ко всей окружающей строке, формируясь под воздействием просодии всего окружающего контекста.
Большинство элементов SSML имеют прямой аналог в v4:
Тег SSML
Что он делает
Аналоги в Eleven v4
<break time="1s">
Вставляет паузу
[pause], многоточие или разрыв строки
<prosody rate="slow">
Замедляет речь
[drawn out] или [slowly]
<prosody rate="fast">
Ускоряет речь
[rushed]
<emphasis>
Выделяет определенное слово
[shouts] или написание слова заглавными буквами
<prosody pitch="high">
Повышает тональность
Эмоциональные теги, такие как [excited]
<prosody pitch="low">
Понижает тональность
Эмоциональные теги, такие как [sorrowful]
Произношение подчиняется тому же шаблону замены. Международный фонетический алфавит (IPA) имеет встроенную поддержку в Eleven v4 с транскрипцией на более чем 90 языков. Это позволяет командам управлять произношением без тегов XML, требуемых при добавлении транскрипции в косых чертах непосредственно в текст.
Начните работу с естественной речью в ElevenCreative
Аудиотеги наделяют сценарии паузами, эмоциями, темпом и вокальным стилем, которые озвучил бы профессиональный актер озвучки, прямо в тексте. Eleven v4 переносит эту выразительность в полноценный рабочий процесс производства, объединяя голосовые модели ElevenLabs с моделями изображений и видео, так что сценарий превращается в готовый аудио- или видеофрагмент в рамках единого рабочего пространства.
Узнайте, как аудиотеги преобразуются в готовое аудио с помощью Eleven v4, или создайте бесплатную учетную запись, чтобы самостоятельно поэкспериментировать с SSML и аудиотегами на собственных сценариях уже сегодня.









