Поделиться через


Настройка голоса и звука с помощью SSML

Вы можете использовать язык разметки синтеза речи (SSML), чтобы указать текст для голоса, языка, имени, стиля и роли для выходных данных речи. Вы также можете использовать несколько голосов в одном документе SSML и настроить акцент, скорость речи, шаг и громкость. Кроме того, SSML позволяет вставлять предварительно подготовленный звук, например звуковые эффекты или музыкальные заметки.

В статье показано, как использовать элементы SSML для указания голоса и звука. Дополнительные сведения о синтаксисе SSML см. в статье о структуре и событиях документов SSML.

Использование элементов голосовой связи

В каждом элементе SSML voice должен быть указан по крайней мере один элемент. Этот элемент определяет голос, используемый для преобразования текста в речь.

Можно включить несколько voice элементов в один документ SSML. Каждый voice элемент может указать другой голос. Вы также можете использовать один и тот же голос несколько раз с разными параметрами, например при изменении длительности молчания между предложениями.

В следующей voice таблице описывается использование атрибутов элемента:

Атрибут Описание Обязательно или необязательно
name Голос, используемый для озвучивания текстовой речи. Полный список поддерживаемых стандартных голосов см. в разделе "Поддержка языков". Обязательное поле
effect Обработчик звуковых эффектов, используемый для оптимизации качества синтезированных выходных данных речи для определенных сценариев на устройствах.

Для некоторых сценариев в рабочих средах зрительный опыт может быть понижен из-за искажения воспроизведения на определенных устройствах. Например, синтезированная речь из динамика автомобиля может звучать тусклой и приглушённой из-за эксплуатационных факторов, таких как отклик динамиков, эхо и фоновый шум. Пассажиру, возможно, придется включить громкость, чтобы услышать более четко. Чтобы избежать ручных операций в таком сценарии, обработчик звуковых эффектов может сделать звук более понятным, компенсируя искажение воспроизведения.

Поддерживаются следующие значения:
  • eq_car — Оптимизируйте зрительный опыт при обеспечении высокой точности речи в автомобилях, автобусах и других закрытых автомобилях.
  • eq_telecomhp8k — Оптимизируйте зрительный опыт для узкой речи в сценариях телекоммуникаций или телефонов. Следует использовать частоту выборки 8 кГц. Если частота выборки не составляет 8 кГц, качество вывода речи не оптимизировано.

Если значение отсутствует или недопустимо, этот атрибут игнорируется и эффект не применяется.
Необязательно

Примеры голосовой связи

Сведения о поддерживаемых значениях атрибутов voice элемента см. в разделе "Использование голосовых элементов".

Пример единого голоса

В этом примере используется голос en-US-AvaMultilingualNeural.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-AvaMultilingualNeural">
        This is the text that is spoken.
    </voice>
</speak>

Пример нескольких голосов

В элементе speak можно указать несколько голосов для озвучивания текста. Эти голоса могут быть на разных языках. Для каждого голоса текст необходимо заключить в элемент voice.

Этот пример чередуется между en-US-AvaMultilingualNeural голосами и en-US-AndrewMultilingualNeural голосами. Нейронные многоязычные голоса могут говорить на разных языках на основе входного текста.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-AvaMultilingualNeural">
        Good morning!
    </voice>
    <voice name="en-US-AndrewMultilingualNeural">
        Good morning to you too Ava!
    </voice>
</speak>

Пример пользовательской голосовой связи

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

В этом примере используется пользовательский голос с именем my-custom-voice.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="my-custom-voice">
        This is the text that is spoken.
    </voice>
</speak>

Пример звуковых эффектов

Атрибут используется effect для оптимизации зрительного опыта для таких сценариев, как автомобили и телекоммуникации. В следующем примере SSML используется атрибут effect с конфигурацией в автомобильных сценариях.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-AvaMultilingualNeural" effect="eq_car">
        This is the text that is spoken.
    </voice>
</speak>

Пример голосовой связи с несколькими разговорами

Голосовая связь с несколькими разговорами позволяет естественным, динамическим беседам с несколькими отдельными ораторами. Это инновация повышает реалистичность синтезированных диалогов, сохраняя контекстный поток, эмоциональную согласованность и естественные шаблоны речи.

Используйте эту возможность для создания привлекательных, подкаст-стилей речи или обмена беседами с простыми переходами между докладчиками. В отличие от моделей с одним разговором, которые синтезирует каждый поворот в изоляции, многоязычные голоса поддерживают согласованность в диалоге, обеспечивая более аутентичный и иммерсивный опыт прослушивания.

en-US-MultiTalker-Ava-Andrew:DragonHDLatestNeural Для <mstts:dialog>элемента можно указать каждый поворот для вывода речи текста в речь, используя следующий формат, чтобы переключиться между динамиком ava и andrew для каждого поворота.

<speak version='1.0' xmlns='http://www.w3.org/2001/10/synthesis' xmlns:mstts='https://www.w3.org/2001/mstts' xml:lang='en-US'>
    <voice name='en-US-MultiTalker-Ava-Andrew:DragonHDLatestNeural'>
        <mstts:dialog>
            <mstts:turn speaker="ava">Hello, Andrew! How's your day going?</mstts:turn>
            <mstts:turn speaker="andrew">Hey Ava! It's been great, just exploring some AI advancements in communication.</mstts:turn>
            <mstts:turn speaker="ava">That sounds interesting! What kind of projects are you working on?</mstts:turn>
            <mstts:turn speaker="andrew">Well, we've been experimenting with text-to-speech applications, including turning emails into podcasts.</mstts:turn>
            <mstts:turn speaker="ava">Wow, that could really improve content accessibility! Are you looking for collaborators?</mstts:turn>
            <mstts:turn speaker="andrew">Absolutely! We're open to testing new ideas and seeing how AI can enhance communication.</mstts:turn>
        </mstts:dialog>
    </voice>
</speak>

Сведения о поддерживаемых голосах см. в документации по поддержке языка .

Использование стилей и ролей речи

По умолчанию нейронные голоса имеют нейтральный стиль речи. Стиль речи, степень стиля и роль можно настроить на уровне предложения.

Примечание.

Служба "Речь" поддерживает стили, степень стиля и роли для подмножества нейронных голосов, как описано в документации по стилям голоса и ролям . Чтобы определить поддерживаемые стили и роли для каждого голоса, можно также использовать API голосов списка и веб-приложение для создания аудиоконтентов.

В следующей mstts:express-as таблице описывается использование атрибутов элемента:

Атрибут Описание Обязательно или необязательно
style Стиль речи, характерный для конкретного голоса. Вы можете выразить эмоции, как веселость, сочувствие и спокойствие. Можно также оптимизировать использование голоса для различных сценариев, таких как обслуживание клиентов, чтение новостей и реализация голосового помощника. Если значение стиля отсутствует или недопустимо, весь mstts:express-as элемент игнорируется, а служба использует нейтральную речь по умолчанию. Пример пользовательского стиля голосовой связи см. в примере пользовательского стиля голоса. Обязательное поле
styledegree Интенсивность стиля речи. Вы можете указать более строгий или мягкий стиль, чтобы сделать речь более экспрессивной или подчиненной. Диапазон принятых значений: 0.01 включительно 2 . Значение по умолчанию — 1, что означает предопределенную интенсивность стиля. Минимальная единица — это 0.01, что приводит к небольшой склонности к целевому стилю. Значение 2 приводит к удвоению интенсивности стиля по умолчанию. Если параметр степени стиля отсутствует или не поддерживается для вашего голоса, этот атрибут игнорируется. Необязательно
role Роль-игра с говорением. Голос может имитировать другой возраст и пол, но имя голоса не изменяется. Например, мужской голос может поднять тон и изменить интонацию, чтобы имитировать женский голос, но имя голоса не меняется. Если роль отсутствует или не поддерживается для вашего голоса, этот атрибут игнорируется. Необязательно

В следующей таблице описывается каждый поддерживаемый style атрибут:

Стиль Описание
style="advertisement_upbeat" Выражает увлеченный и энергичный тон для продвижения продукта или услуги.
style="affectionate" Выражает теплый и нежный тон, более высокий и энергичный. Говорящий находится в состоянии привлечения внимания слушателя. Личность говорящего часто располагает к себе.
style="angry" В тоне голоса слышится злость и раздражение.
style="assistant" Теплый и непринужденный тон для цифровых помощников.
style="calm" Выражает прохладное, собранное и невозмутимое отношение говорящего. Тон, высота тона и интонация более однообразны по сравнению с другими типами речи.
style="chat" Тон воспринимается как неформальный и непринужденный.
style="cheerful" Тон выражает позитивное и радостное настроение.
style="customerservice" Дружелюбный тон, в котором звучит готовность помочь, для поддержки клиентов.
style="depressed" Меланхоличный и унылый тон, менее высокий и энергичный.
style="disgruntled" Выражает пренебрежительный и недовольный тон. Речь с этой эмоцией выражает неудовольствие и презрение.
style="documentary-narration" Повещает документальные фильмы в расслабленном, интересном и информативном стиле, подходящем для документальных фильмов, экспертных комментариев и аналогичного содержимого.
style="embarrassed" Тон выражает неуверенность и колебания, как будто говорящий испытывает дискомфорт.
style="empathetic" Тон выражает чувство заботы и понимания.
style="envious" Тон выражает восхищение, когда вы хотите что-то, что есть у другого человека.
style="excited" Выражает оптимистичный тон и надежду. Это звучит как что-то замечательное происходит, и говорящий этому рад.
style="fearful" Выражает испуганный и нервный тон с более высоким тоном голоса, большей вокальной энергией и более быстрым темпом речи. Говорящий напряжен и испытывает беспокойство.
style="friendly" Выражает приятный, привлекательный и теплый тон. Это звучит искренне и заботливо.
style="gentle" Мягкий, вежливый и приятный тон, с более низким тембром и меньшей вокальной энергией.
style="hopeful" Выражает теплый и сочувствующий тон. Ожидается, что с говорящим случится что-то хорошее.
style="lyrical" Выражает эмоции мелодичным и чувственным образом.
style="narration-professional" Передает профессиональный, объективный тон для восприятия контента.
style="narration-relaxed" Выражает успокаивающий и мелодичный тон для чтения текстов.
style="newscast" Официальный и профессиональный тон для повествования новостей.
style="newscast-casual" Гибкий и неформальный тон для передачи новостей общего характера.
style="newscast-formal" Официальный, уверенный и авторитетный тон для передачи новостей.
style="poetry-reading" Выражает эмоциональный и ритмический тон при чтении стихотворения.
style="sad" В голосе звучит печаль.
style="serious" Выражает строгий и командный тон. Говорящий часто звучит более жестко и гораздо менее расслабленно, с твердым ритмом.
style="shouting" Выражает тон, который звучит так, как будто голос находится далеко или в другом месте и старается быть четко услышанным.
style="sports_commentary" Выражает расслабленный и заинтересованный тон для трансляции спортивного мероприятия.
style="sports_commentary_excited" Выражает интенсивный и энергичный тон для трансляции захватывающих моментов в спортивном мероприятии.
style="whispering" Выражает мягкий тон, стремящийся издавать спокойный и нежный звук.
style="terrified" Выражает испуганный тон, с более быстрым темпом и дрожащим голосом. Кажется, что говорящий находится в неустойчивом положении и в отчаянии.
style="unfriendly" Выражает холодный и равнодушный тон.

В следующей таблице приведены описания каждого поддерживаемого role атрибута:

Роль Описание
role="Girl" Голос подражает девушке.
role="Boy" Голос подражает мальчику.
role="YoungAdultFemale" Голос подражает молодой взрослой женщине.
role="YoungAdultMale" Голос имитирует молодого взрослого мужчину.
role="OlderAdultFemale" Голос имитирует старую старую женщину.
role="OlderAdultMale" Голос подражает старшему взрослому мужчине.
role="SeniorFemale" Голос подражает старшей женщине.
role="SeniorMale" Голос подражает старшему мужчине.

Примеры mstts express-as

Сведения о поддерживаемых значениях атрибутов mstts:express-as элемента см. в разделе "Использование стилей и ролей речи".

Пример стиля и степени

Элемент mstts:express-as используется для выражения эмоций, таких как жизнерадостность, сочувствие, невозмутимость. Можно также оптимизировать использование голоса для различных сценариев, таких как обслуживание клиентов, чтение новостей и реализация голосового помощника.

В следующем примере SSML используется элемент <mstts:express-as> с sad степенью стиля 2.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="zh-CN">
    <voice name="zh-CN-XiaomoNeural">
        <mstts:express-as style="sad" styledegree="2">
            快走吧,路上一定要注意安全,早去早回。
        </mstts:express-as>
    </voice>
</speak>

Пример роли

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

Этот фрагмент SSML демонстрирует, как атрибут role используется для изменения разыгрываемой роли zh-CN-XiaomoNeural.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="zh-CN">
    <voice name="zh-CN-XiaomoNeural">
        女儿看见父亲走了进来,问道:
        <mstts:express-as role="YoungAdultFemale" style="calm">
            “您来的挺快的,怎么过来的?”
        </mstts:express-as>
        父亲放下手提包,说:
        <mstts:express-as role="OlderAdultMale" style="calm">
            “刚打车过来的,路上还挺顺畅。”
        </mstts:express-as>
    </voice>
</speak>

Пример пользовательского стиля голоса

Вы можете обучить пользовательский голос, чтобы говорить с некоторыми предустановленными стилями, такими как cheerful, sadи whispering. Вы также можете точно настроить профессиональный голос, чтобы говорить в пользовательском стиле, созданным на основе ваших данных обучения. Чтобы использовать пользовательский стиль голоса в SSML, укажите имя стиля, введенное ранее в Speech Studio.

В этом примере используется пользовательский голос с именем my-custom-voice. Пользовательский голос говорит с cheerful предустановленным стилем и степенью стиля 2, а затем с пользовательским стилем с именем my-custom-style и степенью стиля 0.01.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="en-US">
    <voice name="my-custom-voice">
        <mstts:express-as style="cheerful" styledegree="2">
            That'd be just amazing!
        </mstts:express-as>
        <mstts:express-as style="my-custom-style" styledegree="0.01">
            What's next?
        </mstts:express-as>
    </voice>
</speak>

Идентификатор профиля говорящего

Вы используете элемент mstts:ttsembedding для указания свойства speakerProfileId для личного голоса. Личный голос — это персонализированный голос, основанный на вашем собственном голосе или голосе вашего клиента. Дополнительные сведения см. в статье о создании личного голоса.

В следующем примере SSML используется <mstts:ttsembedding> элемент с именем голоса и идентификатором профиля говорящего.

<speak version='1.0' xmlns='http://www.w3.org/2001/10/synthesis' xmlns:mstts='http://www.w3.org/2001/mstts' xml:lang='en-US'>
    <voice xml:lang='en-US' xml:gender='Male' name='PhoenixV2Neural'> 
    <mstts:ttsembedding speakerProfileId='your speaker profile ID here'> 
    I'm happy to hear that you find me amazing and that I have made your trip planning easier and more fun. 我很高兴听到你觉得我很了不起,我让你的旅行计划更轻松、更有趣。Je suis heureux d'apprendre que vous me trouvez incroyable et que j'ai rendu la planification de votre voyage plus facile et plus amusante.  
    </mstts:ttsembedding> 
    </voice> 
</speak> 

Настройка языков речи

По умолчанию многоязычные голоса могут автоматически вводить язык входного текста и говорить на языке языкового стандарта по умолчанию входного текста без использования SSML. При необходимости можно использовать <lang xml:lang> элемент для настройки языка речи для этих голосов, чтобы задать предпочтительный акцент, en-GB например для британского английского языка. Вы можете настроить язык речи как на уровне предложения, так и на уровне слова. Сведения о поддерживаемых языках для многоязычного голоса см. в разделе "Многоязычные голоса" с элементом lang для таблицы <lang> с определениями синтаксиса и атрибутов.

В следующей <lang xml:lang> таблице описывается использование атрибутов элемента:

Атрибут Описание Обязательно или необязательно
xml:lang Язык, который вы хотите, чтобы нейронный голос говорил. Необходимо настроить язык речи для нейронного голоса. Если вы используете lang xml:lang, необходимо указать локаль.

Примечание.

Элемент <lang xml:lang> несовместим с элементами prosody и break. В этом элементе нельзя настраивать паузы и интонацию, например шаг, профиль, скорость или громкость.

Немультиязычные голоса по замыслу не поддерживают элемент <lang xml:lang>.

Многоязычные голоса с элементом lang

Используйте раздел многоязычных голосов, чтобы определить, какие языки, поддерживаемые службой "Речь" для каждого нейронного голоса, как показано в следующей таблице. Если голос не говорит на языке входного текста, служба "Речь" не выводит синтезированный звук.

Голосовая связь Номер языка автоматического обнаружения Автоматически определённый язык (региональные настройки) Все языковые параметры Все языки (локали), поддерживаемые SSML
en-US-AndrewMultilingualNeural 1 (мужчина)
en-US-AvaMultilingualNeural 1 (женщина)
en-US-BrianMultilingualNeural 1 (мужчина)
en-US-EmmaMultilingualNeural 1 (женщина)
77 африкаанс (af-ZA), албанский (sq-AL), амхарский (am-ET), арабский (ar-EG), армянский (hy-AM), азербайджанский (az-AZ), индонезийский (id-ID), бенгальский (bn-BD), баскский (eu-ES), боснийский (bn-IN), болгарский (bs-BA), бирманский (bg-BG), каталонский (my-MM), китайский кантонский (ca-ES), китайский мандарин (zh-HK), китайский тайваньский (zh-CN), хорватский (zh-TW), чешский (hr-HR), датский (cs-CZ), нидерландский (da-DK), английский (nl-NL), эстонский (en-US), филиппинский (et-EE), финский (fil-PH), французский (fi-FI), галиcийский (fr-FR), грузинский (gl-ES), немецкий (ka-GE), греческий (de-DE), иврит (el-GR), хинди (he-IL), венгерский (hi-IN), исландский (hu-HU), ирландский (is-IS), итальянский (ga-IE), японский (it-IT), яванский (ja-JP), каннада (jv-ID), казахский (kn-IN), кхмерский (kk-KZ), корейский (km-KH), лаосский (ko-KR), латышский (lo-LA), литовский (lv-LV), македонский (lt-LT), малайский (mk-MK), малаялам (ms-MY), мальтийский (ml-IN), монгольский (mt-MT), непальский (mn-MN), норвежский Bokmål (ne-NP), пушту (nb-NO), персидский (ps-AF), польский (fa-IR), португальский (pl-PL), румынский (pt-BR), русский (ro-RO), сербский (ru-RU), сингальский (sr-RS), словацкий (si-LK), словенский (sk-SK), сомалийский (sl-SI), испанский (so-SO), сунданский (es-ES), суахили (su-ID), шведский (sw-KE), тамильский (sv-SE), телугу (ta-IN), тайский (te-IN), турецкий (th-TH), украинский (tr-TR), урду (uk-UA), узбекский (ur-PK), вьетнамский (uz-UZ), валлийский (vi-VN), зулу (cy-GB) 91 Afrikaans (Южная Африка) (af-ZA), Албанский (Албания) (sq-AL), Амхарский (Эфиопия) (am-ET), Арабский (Египет) (ar-EG), Арабский (Саудовская Аравия) (ar-SA), Армянский (Армения) (hy-AM), Азербайджанский (Азербайджан) (az-AZ), Баскский (Страна Басков) (eu-ES), Бенгальский (Индия) (bn-IN), Боснийский (Босния и Герцеговина) (bs-BA), Болгарский (Болгария) (bg-BG), Бирманский (Мьянма) (my-MM), Каталонский (Испания) (ca-ES), Китайский (Кантонский, Традиционный) (zh-HK), Китайский (Мандарин, Упрощённый) (zh-CN), Китайский (Тайваньский мандарин) (zh-TW), Хорватский (Хорватия) (hr-HR), Чешский (Чехия) (cs-CZ), Датский (Дания) (da-DK), Нидерландский (Бельгия) (nl-BE), Нидерландский (Нидерланды) (nl-NL), Английский (Австралия) (en-AU), Английский (Канада) (en-CA), Английский (Гонконг ОАР) (en-HK), Английский (Индия) (en-IN), Английский (Ирландия) (en-IE), Английский (Соединённое Королевство) (en-GB), Английский (США) (en-US), Эстонский (Эстония) (et-EE), Филиппинский (Филиппины) (fil-PH), Финский (Финляндия) (fi-FI), Французский (Бельгия) (fr-BE), Французский (Канада) (fr-CA), Французский (Франция) (fr-FR), Французский (Швейцария) (fr-CH), Галиcийский (Галиcия) (gl-ES), Грузинский (Грузия) (ka-GE), Немецкий (Австрия) (de-AT), Немецкий (Германия) (de-DE), Немецкий (Швейцария) (de-CH), Греческий (Греция) (el-GR), Иврит (Израиль) (he-IL), Хинди (Индия) (hi-IN), Венгерский (Венгрия) (hu-HU), Исландский (Исландия) (is-IS), Индонезийский (Индонезия) (id-ID), Ирландский (Ирландия) (ga-IE), Итальянский (Италия) (it-IT), Японский (Япония) (ja-JP), Яванский (Индонезия) (jv-ID), Каннадский (Индия) (kn-IN), Казахский (Казахстан) (kk-KZ), Кхмерский (Камбоджа) (km-KH), Корейский (Корея) (ko-KR), Лаосский (Лаос) (lo-LA), Латышский (Латвия) (lv-LV), Литовский (Литва) (lt-LT), Македонский (Северная Македония) (mk-MK), Малайский (Малайзия) (ms-MY), Малаялам (Индия) (ml-IN), Мальтийский (Мальта) (mt-MT), Монгольский (Монголия) (mn-MN), Непальский (Непал) (ne-NP), Норвежский (Букмол, Норвегия) (nb-NO), Пушту (Афганистан) (ps-AF), Персидский (Иран) (fa-IR), Польский (Польша) (pl-PL), Португальский (Бразилия) (pt-BR), Португальский (Португалия) (pt-PT), Румынский (Румыния) (ro-RO), Русский (Россия) (ru-RU), Сербский (Кириллица, Сербия) (sr-RS), Сингальский (Шри-Ланка) (si-LK), Словацкий (Словакия) (sk-SK), Словенский (Словения) (sl-SI), Сомалийский (Сомали) (so-SO), Испанский (Мексика) (es-MX), Испанский (Испания) (es-ES), Суданский (Индонезия) (su-ID), Суахили (Кения) (sw-KE), Шведский (Швеция) (sv-SE), Тамильский (Индия) (ta-IN), Телугу (Индия) (te-IN), Тайский (Таиланд) (th-TH), Турецкий (Турция) (tr-TR), Украинский (Украина) (uk-UA), Урду (Пакистан) (ur-PK), Узбекский (Узбекистан) (uz-UZ), Вьетнамский (Вьетнам) (vi-VN), Валлийский (Соединённое Королевство) (cy-GB), Зулу (Южная Африка) (zu-ZA)

1 Это нейронные многоязычные голоса в службе "Речь ИИ Azure". Все многоязычные голоса могут говорить на языке, установленном по умолчанию для входного текста, без использования SSML. Тем не менее, вы по-прежнему можете использовать <lang xml:lang> элемент для настройки акцента на каждом языке, чтобы задать предпочтительный акцент, например британский акцент (en-GB) для английского языка. Префикс в каждом имени голоса указывает основную локализацию; например, основная локализация для en-US-AndrewMultilingualNeuralen-US.

Примечание.

Многоязычные голоса не полностью поддерживают некоторые элементы SSML, такие как break, emphasisи silencesub.

Примеры Lang

Сведения о поддерживаемых значениях атрибутов lang элемента см. в разделе "Настройка языка речи".

en-US необходимо указать как язык по умолчанию в элементе speak независимо от того, настроен ли язык где-либо еще. В этом примере основным языком является en-US-AvaMultilingualNeuralen-US.

В этом фрагменте SSML показано, как использовать <lang xml:lang> для воспроизведения de-DE с помощью нейронного голоса en-US-AvaMultilingualNeural.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="en-US">
    <voice name="en-US-AvaMultilingualNeural">
        <lang xml:lang="de-DE">
            Wir freuen uns auf die Zusammenarbeit mit Ihnen!
        </lang>
    </voice>
</speak>

В элементе speak можно указать несколько языков, включая en-US для озвучивания текста. Для каждого настроенного языка текст должен соответствовать языку и быть заключен в элемент voice. В этом фрагменте SSML показано, как использовать <lang xml:lang> для изменения языков речи на es-MX, en-US и fr-FR.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="en-US">
    <voice name="en-US-AvaMultilingualNeural">
        <lang xml:lang="es-MX">
            ¡Esperamos trabajar con usted!
        </lang>
        <lang xml:lang="en-US">
           We look forward to working with you!
        </lang>
        <lang xml:lang="fr-FR">
            Nous avons hâte de travailler avec vous!
        </lang>
    </voice>
</speak>

Регулировка просодии

С помощью элемента prosody можно указать изменения в высоте тона, контуре, диапазоне, скорости и громкости для вывода текстовой речи. Элемент prosody может содержать текст и следующие элементы: audio, break, p, phoneme, prosody, say-as, sub и s.

Поскольку значения атрибутов интонации могут варьироваться в широком диапазоне, распознаватель речи интерпретирует присвоенные значения как рекомендацию в отношении фактических значений интонации выбранного голоса. Синтез речи ограничивает или заменяет значения, которые не поддерживаются. Примеры неподдерживаемых значений: высота тона 1 МГц или громкость 120.

В следующей prosody таблице описывается использование атрибутов элемента:

Атрибут Описание Обязательно или необязательно
contour Контур обозначает изменения высоты тона. Эти изменения представлены в виде массива целевых объектов в определенных моментах времени в выходных данных речи. Наборы пар параметров определяют каждый целевой объект. Например:

<prosody contour="(0%,+20Hz) (10%,-2st) (40%,+10Hz)">

Первое значение в каждом наборе параметров указывает расположение изменения высоты тона как процентную долю продолжительности текста. Второе значение задает величину повышения или понижения тона с помощью относительного значения или значения перечисления для высоты тона (см pitch). Контур высоты тона не работает на одиночных словах и коротких фразах. Рекомендуется настроить контур высоты тона по целым предложениям или длинным фразам.
Необязательно
pitch Задает базовую высоту тона для текста. Изменения высоты тона могут применяться на уровне предложений. Изменения высоты тона должны быть в пределах от 0,5 до 1,5 раз от исходной высоты тона аудио. Вы можете следующим образом выразить высоту тона:
  • Абсолютное значение, выраженное в виде числа, за которым следует "Hz" (Hertz). Например, <prosody pitch="600Hz">some text</prosody>.
  • Относительное значение:
    • Как относительное число: выражено в виде числа, начинающегося с "+" или "–" и заканчивающегося на "Hz" или st, что указывает величину изменения высоты тона. Пример: <prosody pitch="+80Hz">some text</prosody> или <prosody pitch="-2st">some text</prosody>. St означает, что базовая единица — полутон, то есть половина тона (половина шага) в стандартном диатоническом звукоряде.
    • Как процент: выражено в виде числа, начинающегося с "+" (необязательно) или "-" и за которым следует "%", указывающее относительное изменение. Пример: <prosody pitch="50%">some text</prosody> или <prosody pitch="-50%">some text</prosody>.
  • Постоянное значение
    • x-low (эквивалентно 0,55,-45%)
    • low (эквивалентно 0,8, -20%)
    • medium (эквивалентно 1, значение по умолчанию)
    • high (эквивалентно 1,2, +20%)
    • x-high (эквивалентно 1,45, +45%)
Необязательно
range Значение, представляющее диапазон высоты тона для текста. range можно выражать с помощью тех же абсолютных значений, относительных значений или значений перечисления, которые использовались для описания pitch. Необязательно
rate Указывает скорость произнесения текста. Скорость речи может быть применена на уровне слов или предложений. Изменения скорости должны находиться в пределах 0.52 времени исходного звука. Вы можете выразить rate следующим образом:
  • Относительное значение:
    • Как относительное число: выражено в виде числа, которое выступает в качестве множителя по умолчанию. Например, значение 1 не приводит к изменению исходной ставки. Значение 0.5 приводит к уменьшению исходного уровня вдвое. Значение 2 приводит к увеличению исходного значения в два раза.
    • Как процент: выражено в виде числа, начинающегося с "+" (необязательно) или "-" и за которым следует "%", указывающее относительное изменение. Пример: <prosody rate="50%">some text</prosody> или <prosody rate="-50%">some text</prosody>.
  • Постоянное значение
    • x-slow (эквивалентно 0,5, -50%)
    • slow (эквивалентно 0,64, -46%)
    • medium (эквивалентно 1, значение по умолчанию)
    • fast (эквивалентно 1,55, +55%)
    • x-fast (эквивалентно 2, +100%)
Необязательно
volume Указывает уровень громкости речи. Изменения громкости могут применяться на уровне предложений. Громкость можно выразить следующим образом:
  • Абсолютное значение: выражено как число в диапазоне от 0.0 до 100.0, от самых тихих до самых громких, таких как . Значение по умолчанию — 100.0.
  • Относительное значение:
    • Как относительное число: выражено в виде числа, начинающегося с "+" или "–", что указывает величину изменения громкости. Например, можно указать +10 или -5.5.
    • Как процент: выражено в виде числа, начинающегося с "+" (необязательно) или "-" и за которым следует "%", указывающее относительное изменение. Пример: <prosody volume="50%">some text</prosody> или <prosody volume="+3%">some text</prosody>.
  • Постоянное значение
    • silent (эквивалентно 0)
    • x-soft (эквивалентно 0.2)
    • soft (эквивалентно 0.4)
    • medium (эквивалентно 0.6)
    • loud (эквивалентно 0.8)
    • x-loud (эквивалентно 1, значение по умолчанию)
Необязательно

Примеры просодии

Сведения о поддерживаемых значениях атрибутов prosody элемента см. в разделе "Настройка просодии".

Пример изменения скорости речи

В этом фрагменте кода SSML показано, как rate атрибут используется для изменения скорости речи на 30 % больше, чем частота по умолчанию.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-AvaMultilingualNeural">
        <prosody rate="+30.00%">
            Enjoy using text to speech.
        </prosody>
    </voice>
</speak>

Пример изменения громкости

В этом фрагменте SSML показано, как атрибут volume используется для увеличения громкости на 20 % по сравнению с громкостью по умолчанию.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-AvaMultilingualNeural">
        <prosody volume="+20.00%">
            Enjoy using text to speech.
        </prosody>
    </voice>
</speak>

Пример изменения высоты тона

В этом фрагменте кода SSML показано, как используется атрибут pitch, чтобы голос говорил в высоком тоне.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-AvaMultilingualNeural">
        Welcome to <prosody pitch="high">Enjoy using text to speech.</prosody>
    </voice>
</speak>

Пример изменения контура высоты тона

В этом фрагменте SSML показано, как contour атрибут используется для изменения контура.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-AvaMultilingualNeural">
        <prosody contour="(60%,-60%) (100%,+80%)" >
            Were you the only person in the room?
        </prosody>
    </voice>
</speak>

Настройка акцента

Необязательный элемент emphasis можно использовать для добавления или удаления ударения на уровне слов в тексте. Этот элемент может содержать только текст и следующие элементы: audio, break, emphasis, lang, phoneme, prosody, say-as, sub и voice.

Примечание.

Настройка акцента на уровне слова доступна только для следующих нейронных голосов: en-US-GuyNeural, en-US-DavisNeural и en-US-JaneNeural.

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

В следующей таблице описаны атрибуты элемента emphasis.

Атрибут Описание Обязательно или необязательно
level Указывает уровень акцента, который необходимо применить:
  • reduced
  • none
  • moderate
  • strong

Если атрибут level не указан, используется уровень по умолчанию moderate. Дополнительные сведения о каждом атрибуте см. в разделе "Элемент выделения".
Необязательно

Примеры выделения

Сведения о поддерживаемых значениях атрибутов emphasis элемента см. в разделе "Настройка выделения".

В этом фрагменте SSML показано, как использовать элемент emphasis для добавления умеренного уровня выделения слова "собрания".

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="en-US">
    <voice name="en-US-AndrewMultilingualNeural">
    I can help you join your <emphasis level="moderate">meetings</emphasis> fast.
    </voice>
</speak>

Добавление записанного аудио

Элемент audio необязательный. Его можно использовать для вставки предварительно созданной аудиозаписи в документ SSML. Текст audio элемента может содержать обычный текст или разметку SSML, если звуковой файл недоступен или недоступен для воспроизведения. Элемент audio может содержать текст и следующие элементы: audio, break, p, s, phoneme, prosody, say-as и sub.

Все аудио, входящие в документ SSML, должны соответствовать следующим требованиям.

  • Звуковой файл должен быть допустимым *.mp3, *.wav, *.opus, *.ogg, *.flac или *.wma файлами.
  • Суммарное общее время для всех текстовых и звуковых файлов в одном ответе не может превышать 600 секунд.
  • Звуковой файл не должен содержать сведения, имеющие отношение к пользователю, или иные конфиденциальные сведения.

Примечание.

Элемент audio не поддерживается API Long Audio. Вместо этого используйте API синтеза пакетного синтеза для длинной формы.

В следующей audio таблице описывается использование атрибутов элемента:

Атрибут Описание Обязательно или необязательно
src Расположение URI звукового файла. Звуковой файл должен быть размещен на доступной в Интернете конечной точке HTTPS. Требуется ПРОТОКОЛ HTTPS. Домен, на котором размещен файл, должен представлять действительный доверенный TLS/SSL-сертификат. Чтобы свести к минимуму задержку, необходимо поместить аудиофайл в хранилище Blob в том же регионе Azure, что и конечная точка преобразования текста в речь. Обязательное поле

Примеры звука

Сведения о поддерживаемых значениях атрибутов audio элемента см. в разделе "Добавление записанного звука".

В этом фрагменте SSML показано, как использовать src атрибут для вставки звука из двух файлов .wav.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-AvaMultilingualNeural">
        <p>
            <audio src="https://contoso.com/opinionprompt.wav"/>
            Thanks for offering your opinion. Please begin speaking after the beep.
            <audio src="https://contoso.com/beep.wav">
                Could not play the beep, please voice your opinion now.
            </audio>
        </p>
    </voice>
</speak>

Настройка длительности звука

mstts:audioduration Используйте элемент, чтобы задать длительность выходного звука. Используйте этот элемент для синхронизации времени завершения вывода звука. Длительность звука может быть уменьшена или увеличена между 0.52 временем частоты исходного звука. Исходный звук — это звук без других параметров скорости. Скорость речи замедляется или увеличивается соответствующим образом на основе заданного значения.

Параметр длительности звука применяется ко всем входным текстам в его заключающем элементе voice. Чтобы снова сбросить или изменить параметр длительности звука, необходимо использовать новый voice элемент с тем же голосом или другим голосом.

В следующей mstts:audioduration таблице описывается использование атрибутов элемента:

Атрибут Описание Обязательно или необязательно
value Запрошенная длительность выходного звука в секундах, например 2sв миллисекундах, например 2000ms.

Максимальное значение для продолжительности выходного звука составляет 300 секунд. Это значение должно находиться в пределах 0.52 времени исходного звука без каких-либо других параметров скорости. Например, если запрошенная продолжительность звука составляет 30s, исходный звук должен быть в противном случае — от 15 до 60 секунд. Если задать значение вне этих границ, длительность устанавливается в соответствии с минимальным или максимальным множителем. Для выходного звука, превышающего 300 секунд, сначала создайте исходный звук без других параметров скорости, а затем вычислите частоту для настройки с помощью скорости просодии, чтобы достичь требуемой длительности.
Обязательное поле

Примеры длительности аудио в mstts

Сведения о поддерживаемых значениях атрибутов mstts:audioduration элемента см. в разделе "Настройка длительности звука".

В этом примере исходный звук составляет около 15 секунд. Элемент mstts:audioduration используется для задания продолжительности звука в 20 секунд или 20s.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:mstts="http://www.w3.org/2001/mstts" xml:lang="en-US">
<voice name="en-US-AvaMultilingualNeural">
<mstts:audioduration value="20s"/>
If we're home schooling, the best we can do is roll with what each day brings and try to have fun along the way.
A good place to start is by trying out the slew of educational apps that are helping children stay happy and smash their schooling at the same time.
</voice>
</speak>

Добавление фонового звука

Вы можете использовать элемент mstts:backgroundaudio, чтобы добавлять фоновый звук в SSML-документы или объединять аудиофайл с преобразованием текста в речь. С помощью mstts:backgroundaudio, вы можете циклировать звуковой файл в фоновом режиме, исчезать в начале текста в речь и исчезать в конце текста в речь.

Если предоставляемый фоновый звук короче, чем текст, преобразуемый в речь, или чем затухание, он циклируется. Если текст длиннее, чем допустимо для преобразования в речь, процесс останавливается, когда завершается затухание.

Для каждого документа SSML можно использовать только один фоновый звуковой файл. Можно вставить теги audio в элемент voice, чтобы добавить дополнительный звук в документ SSML.

Примечание.

Элемент mstts:backgroundaudio должен быть помещен перед всеми voice элементами. Если задано, оно должно быть первым дочерним элементом speak элемента.

Элемент mstts:backgroundaudio не поддерживается API Long Audio. Вместо этого используйте API пакетного синтеза (предварительная версия).

В следующей mstts:backgroundaudio таблице описывается использование атрибутов элемента:

Атрибут Описание Обязательно или необязательно
src Расположение URI фонового звукового файла. Обязательное поле
volume Том фонового звукового файла. Принятые значения: от 0 до 100 включительно. Значение по умолчанию — 1. Необязательно
fadein Длительность фонового звука исчезает в миллисекундах. Значение по умолчанию — 0, что эквивалентно отсутствию постепенного усиления. Принятые значения: от 0 до 10000 включительно. Необязательно
fadeout Продолжительность затухания фонового звука в миллисекундах. Значение по умолчанию — 0, что эквивалентно отсутствию исчезновения. Принятые значения: от 0 до 10000 включительно. Необязательно

Примеры использования mstss и backgroundaudio

Сведения о поддерживаемых значениях атрибутов элемента см. в разделе "Добавление фонового mstts:backgroundaudi звука".

<speak version="1.0" xml:lang="en-US" xmlns:mstts="http://www.w3.org/2001/mstts">
    <mstts:backgroundaudio src="https://contoso.com/sample.wav" volume="0.7" fadein="3000" fadeout="4000"/>
    <voice name="en-US-AvaMultilingualNeural">
        The text provided in this document are spoken over the background audio.
    </voice>
</speak>

Элемент Viseme

Viseme — это визуальное описание фонемы в разговорном языке. Он определяет положение лица и рта в то время как человек говорит. В SSML можно использовать элемент mstts:viseme для запроса на получение выходных данных viseme. Дополнительные сведения см. в разделе Получение сведений о положении лица с помощью виземы.

Параметр viseme применяется ко всем входным текстам в его заключающем элементе voice. Чтобы снова сбросить или изменить параметр viseme, необходимо использовать новый voice элемент с тем же голосом или другим голосом.

viseme Использование атрибутов элемента описано в следующей таблице.

Атрибут Описание Обязательно или необязательно
type Тип выходных данных viseme.
  • redlips_front — синхронизация губ с идентификатором viseme и выходными данными смещения звука
  • FacialExpression — смешивание выходных данных фигур
Обязательное поле

Примечание.

В настоящее время redlips_front поддерживает только нейронные голоса в локали en-US, а FacialExpression поддерживает нейронные голоса в локалях en-US и zh-CN.

Примеры Viseme

viseme поддерживаемые значения атрибутов элемента.

В этом фрагменте SSML показано, как запрашивать блендшейпы с вашей синтезируемой речью.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:mstts="http://www.w3.org/2001/mstts" xml:lang="en-US">
  <voice name="en-US-AvaNeural">
    <mstts:viseme type="FacialExpression"/>
    Rainbow has seven colors: Red, orange, yellow, green, blue, indigo, and violet.
  </voice>
</speak>

Элемент преобразования голоса

Преобразование голоса (версия в предварительном доступе) — это процесс преобразования характеристик голоса заданного аудио в целевой голос. После преобразования голоса получившийся звук сохраняет лингвистическое содержимое и просодию исходного аудио, а тембр голоса похож на голос целевого диктора. Дополнительные сведения см. в разделе "Преобразование голоса".

<mstts:voiceconversion> Используйте тег с помощью языка разметки синтеза речи (SSML), чтобы указать исходный звуковой URL-адрес и целевой голос для преобразования. Полный список поддерживаемых целевых голосов см. в разделе поддерживаемых голосов для преобразования голоса.

В следующей mstts:voiceconversion таблице описывается использование атрибутов элемента:

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

Это url должно быть доступно по HTTPS URL. Например: https://example.com/source.wav

Аудиофайл должен быть не больше 100 МБ.
Обязательное поле

Вот как работает преобразование голоса:

  • Исходный звук — это предварительно подготовленный аудиофайл, содержащий слова и просодию.
    • Текстовое содержимое: последняя синтезированная речь следует речевым словам в исходном звуке.
    • Просодия и ритм: речь сохраняет ритмику и интонацию оригинала.
  • Тег <voice> указывает целевой голос, используемый для выходного звука. Сведения о поддерживаемых целевых голосах см. в разделе поддерживаемые голоса для преобразования голоса.
  • Выходной звук сохраняет тембр (тон и качество голоса) целевого голоса, но следует тексту и стилю исходного звука.

Примечание.

Все элементы SSML, связанные с просодией и произношением, например <prosody> или <mstts:express-as> игнорируются.

Ввод текста необязателен, а любой текст, включенный в SSML, игнорируется во время отрисовки.

Примеры преобразования голоса mstss

В следующем примере показано, как <mstts:voiceconversion> синтезировать речь с помощью целевого нейронного голоса при сопоставлении содержимого и просодии заданного исходного звука:

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="en-US">
    <voice xml:lang="en-US" xml:gender="Female" name="en-US-AvaMultilingualNeural">
        <mstts:voiceconversion url="https://your.blob.core.windows.net/sourceaudio.wav"/>
    </voice>
</speak>

Следующие шаги