Свойства пакетного синтеза для текстово-речевого аватара

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

Некоторые свойства в формате JSON требуются при создании нового задания пакетного синтеза. Другие свойства являются необязательными. Ответ пакетного синтеза содержит другие свойства для предоставления сведений о состоянии синтеза и результатах. Например, outputs.result свойство содержит расположение, из которого можно скачать видеофайл, содержащий видео аватар. В outputs.summaryэтом разделе можно получить доступ к сводке и сведениям об отладке.

Свойства аватара

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

Свойство Описание
аватарКонфигурация.говорящийАватарПерсонаж Имя персонажа говорящего аватара.

Для стандартного аватара поддерживаемые символы аватара можно найти здесь.
Для пользовательского аватара укажите имя модели аватара.

Это обязательное свойство.
avatarConfig.talkingAvatarStyle Имя стиля говорящего аватара.

Для стандартного аватара поддерживаемые стили аватара можно найти здесь.
Для пользовательского аватара это свойство должно быть опущено.

Это свойство требуется для стандартного аватара.
Настройка аватара. индивидуализированная Логическое значение, указывающее на то, является ли используемый аватар настроенным или нет. Значение «true» для аватара с настройками и «false» для стандартного аватара.

Это свойство является необязательным, а значение по умолчанию — false.
аватарНастройки.видеоформат Формат выходного видеофайла может быть mp4 или webm.

Формат webm необходим для прозрачного фона.

Это свойство является необязательным, а значение по умолчанию — mp4.
avatarConfig.videoCodec Кодек для выходного видео может быть h264, hevc, vp9 или av1.

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

Это свойство является необязательным, а значение по умолчанию — hevc.
avatarConfig.bitrateKbps Битрейт выходного видео, представляющий собой целочисленное значение, в единицах кбит/с.

Это свойство является необязательным, а значение по умолчанию — 2000.
аватарConfig.videoCrop Это свойство позволяет обрезать выходное видео, чтобы вывести прямоугольную область исходного видео. Это свойство содержит два поля, определяющие верхнюю левую вершину и вершину прямоугольника в правом нижнем углу.

Это свойство является необязательным, и поведение по умолчанию — вывод полного видео.
avatarConfig.videoCrop.topLeft Верхняя левая вершина прямоугольника для кадрирования видео. Это свойство имеет два поля x и y, чтобы определить горизонтальную и вертикальную позицию вершины.

Это свойство требуется, если задано свойство properties.videoCrop.
аватарConfig.videoCrop.bottomRight Точка в правом нижнем углу прямоугольника для обрезки видео. Это свойство имеет два поля x и y, чтобы определить горизонтальную и вертикальную позицию вершины.

Это свойство требуется, если задано свойство properties.videoCrop.
avatarConfig.типСубтитра Тип субтитра для видеофайла аватара может быть external_file, soft_embeddedhard_embeddedили none.

external_file: субтитры создаются в виде отдельных файлов субтитров (например, SRT или VTT). Они не включены в видео и должны загружаться проигрывателем отдельно.

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

hard_embedded: Субтитры встраиваются непосредственно в кадры видео и всегда видны. Их нельзя отключить или удалить.

none: субтитры не создаются. Выходное видео содержит только звук без включенных данных субтитров.

Примечание: Создание субтитров не поддерживается, если useBuiltInVoice задано значение true. Это свойство игнорируется, и субтитры не создаются.

Это свойство является необязательным, а значение по умолчанию — soft_embedded.
avatarConfig.backgroundImage Добавьте фоновое изображение с помощью avatarConfig.backgroundImage свойства. Значение свойства должно быть URL-адресом, указывающим на нужное изображение. Это необязательное свойство.
avatarConfig.цвет фона Цвет фона видео аватара, который является строкой в формате #RRGGBBAA. В этой строке: RR, GG, BB и AA означают красный, зеленый, синий и альфа-каналы с шестнадцатеричным диапазоном значений 00~FF. Альфа-канал управляет прозрачностью со значением 00 для прозрачного, со значением FF для непрозрачного, и со значением от 00 до FF для полупрозрачного.

Это свойство является необязательным, а значение по умолчанию — #FFFFFFFF (белый).
avatarConfig.useBuiltInVoice // использовать встроенный голос Логическое значение, указывающее, следует ли использовать голосовую синхронизацию для аватара в качестве голоса синтеза. Это свойство можно использовать только при использовании пользовательского аватара, обученного с помощью голосовой синхронизации для аватара. Если задать значение true, другие голоса, указанные в synthesisConfig или SSML, игнорируются.

Примечание: Жесты и субтитры не поддерживаются, если для этого свойства задано значение true. Свойство subtitleType игнорируется, и субтитры не создаются.

Это свойство является необязательным, а значение по умолчанию — false.
выводы.результат Расположение итогового файла пакетного синтеза, представляющего собой видеофайл, содержащий синтезированный аватар.

Это свойство доступно только для чтения.
свойства.ДлительностьВМиллисекундах Длительность вывода видео в миллисекундах.

Это свойство доступно только для чтения.

Свойства задания пакетного синтеза

В следующей таблице описаны свойства задания пакетного синтеза.

Свойство Описание
дата и время создания Дата и время создания задачи пакетного синтеза.

Это свойство доступно только для чтения.
описание Описание пакетного синтеза.

Это необязательное свойство.
Идентификатор Идентификатор задачи синтеза пакетной обработки.

Это свойство доступно только для чтения.
дата_и_время_последнего_действия Последняя дата и время изменения значения свойства состояния.

Это свойство доступно только для чтения.
свойства Определенный набор необязательных параметров конфигурации пакетного синтеза.
свойства.destinationContainerUrl Результаты пакетного синтеза можно хранить в контейнере для записи в хранилище BLOB-объектов Azure. Если вы не указываете URI контейнера с токеном подписей общего доступа (SAS), служба синтеза речи сохраняет результаты в контейнере, управляемом корпорацией Майкрософт. SAS с хранимыми политиками доступа не поддерживается. При удалении задания синтеза данные результатов также удаляются.

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

Это свойство не включается в ответ при получении задания синтеза.
properties.destinationPath (свойства.путьНазначения) Путь с префиксом для хранения результатов пакетного синтеза. Если не указан путь префикса, будет использоваться созданный системой путь.

Это свойство является необязательным и может быть задано только при указании destinationContainerUrl свойства.
свойства.timeToLiveInHours Длительность в часах после создания задания синтеза, когда результаты синтеза будут автоматически удалены. Максимальное время жизни — 744 часа. Дата и время автоматического удаления для заданий синтеза с состоянием "Успешно" или "Сбой" вычисляется как сумма свойств lastActionDateTime и timeToLive.

В противном случае можно вызвать метод удаления синтеза, чтобы удалить задачу раньше.
статус Состояние обработки пакетного синтеза.

Состояние должно прогрессировать от «Не начато» до «В процессе», и, наконец, до состояний «Успешно» или «Сбой».

Это свойство доступно только для чтения.

Свойства преобразования текста в речь

В следующей таблице описаны свойства преобразования текста в речь.

Свойство Описание
пользовательскиеГолоса Настраиваемый голос связан с именем и его идентификатором развертывания, например "customVoices": {"your-custom-voice-name": "502ac834-6537-4bc3-9fd6-140114daa66d"}

Вы можете использовать имя голоса в вашем synthesisConfig.voice, если inputKind установлено как "PlainText", или в SSML-тексте входных данных, если inputKind установлено как SSML.

Это свойство требуется для использования пользовательского голоса. Если вы пытаетесь использовать пользовательский голос, который не определен здесь, служба возвращает ошибку.
входные данные Обычный текст или SSML для синтеза.

Если для объекта inputKind задано "PlainText"значение , укажите обычный текст, как показано ниже: "inputs": [{"content": "The rainbow has seven colors."}].
Если для объекта inputKind задано "SSML"значение , укажите текст на языке разметки синтеза речи (SSML), как показано ниже: "inputs": [{"content": "<speak version='1.0' xml:lang='en-US'><voice xml:lang='en-US' xml:gender='Female' name='en-US-AvaMultilingualNeural'>The rainbow has seven colors.</voice></speak>"}].

Включите до 1000 текстовых объектов, если требуется несколько выходных файлов видео. Ниже приведен пример входного текста, который должен быть синтезирован в два выходных файла видео: "inputs": [{"content": "synthesize this to a file"}, {"content": "synthesize this to another file"}]
Чтобы создать несколько видео, выходные данные должны храниться в контейнере хранилища BLOB-объектов Azure, указав properties.destinationContainerUrl.

Для новых абзацев не требуются отдельные текстовые входные данные. В любом из текстовых входных данных (до 1000) можно указать новые абзацы с помощью строки "\r\n" (newline). Ниже приведен пример входного текста с двумя абзацами, которые должны быть синтезированы в один и тот же звуковой выходной файл: "inputs": [{"content": "synthesize this to a file\r\nsynthesize this to another paragraph in the same file"}]

Это свойство необходимо при создании нового задания пакетного синтеза. Это свойство не включается в ответ при запросе задачи синтеза.
properties.Детали оплаты Количество слов, которые были обработаны и выставлены на счет customNeural (настраиваемый голос) по сравнению с neural (стандартный голос).

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

Это свойство применимо только в том случае, если inputKind имеет значение "PlainText".
synthesisConfig.pitch (настройка высоты звука) Тональность аудиовыхода.

Сведения о принятых значениях см. в таблице корректировки просодии в документации по языку разметки синтеза речи (SSML). Недопустимые значения игнорируются.

Это необязательное свойство применимо только в том случае, если inputKind имеет значение "PlainText".
synthesisConfig.скорость Частота аудиовыхода.

Для получения информации о допустимых значениях см. таблицу «корректировка просодии» в документации по языку разметки синтеза речи (SSML). Недопустимые значения игнорируются.

Это необязательное свойство применимо только в том случае, если inputKind имеет значение "PlainText".
synthesisConfig.style Для некоторых голосов вы можете настроить стиль речи, чтобы выразить различные эмоции, такие как веселость, сочувствие и спокойствие. Можно оптимизировать использование голоса для различных сценариев, таких как обслуживание клиентов, чтение новостей и реализация голосового помощника.

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

Это необязательное свойство применимо только в том случае, если inputKind имеет значение "PlainText".
synthesisConfig.voice Голос, который воспроизводит звуковой выход.

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

Это свойство требуется, если inputKind имеет значение "PlainText".
synthesisConfig.volume Громкость звука.

См. таблицу поправке просодии в документации по языку разметки синтеза речи (SSML) для получения информации о принятых значениях. Недопустимые значения игнорируются.

Это необязательное свойство применимо только в том случае, если inputKind имеет значение "PlainText".
тип ввода Указывает, должно ли входное текстовое свойство быть обычным текстом или SSML. Возможные регистронезависимые значения: "PlainText" и "SSML". Если для inputKind задано значение "PlainText", необходимо также задать свойство synthesisConfig voice.

Это обязательное свойство.

Изменение фона

API пакетного синтеза аватара в настоящее время не поддерживает настройку фоновых видео; он поддерживает только статические фоновые изображения. Но если вы хотите добавить фон для видео во время последующей работы, вы можете создавать видео с прозрачным фоном.

Чтобы задать статическое фоновое изображение, используйте avatarConfig.backgroundImage свойство и укажите URL-адрес, указывающий на нужное изображение. Кроме того, можно задать цвет фона видео аватара с помощью avatarConfig.backgroundColor свойства.

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

Свойство Обязательные значения для прозрачности фона
properties.videoFormat webm
properties.videoCodec vp9
свойства.цвет_фона #00000000 (или transparent)

Clipchamp является одним из примеров средства редактирования видео, поддерживающего прозрачный фоновый видео, созданный API пакетного синтеза.

Некоторые программы для редактирования видео не поддерживают формат webm напрямую и поддерживают только прозрачный фоновый вход формата .mov, например, Adobe Premiere Pro. В таких случаях сначала необходимо преобразовать формат видео из webm в .mov с помощью средства, такого как FFMPEG.

Командная строка FFMPEG:

ffmpeg -vcodec libvpx-vp9 -i <input.webm> -vcodec png -pix_fmt rgba metadata:s:v:0 alpha_mode="1" <output.mov>

FFMPEG можно скачать с ffmpeg.org. Замените <input.webm> на локальный путь и <output.mov> на имя файла в командной строке.

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