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


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

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

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

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

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

Свойство Description
avatarConfig.talkingAvatarCharacter Имя символа говорящая аватара.

Поддерживаемые символы аватара можно найти здесь.

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

Поддерживаемые стили аватара можно найти здесь.

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

Это свойство является необязательным, а значение по умолчанию — false.
аватарConfig.videoFormat Формат выходного видеофайла может быть 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.subtitleType Тип субтитра для видеофайла аватара может быть external_file, soft_embeddedhard_embeddedили none.

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

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

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

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

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

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

Свойство Description
createdDateTime Дата и время создания задания синтеза пакетной службы.

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

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

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

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

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

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

Состояние должно выполняться с "NotStarted" на "Выполнение" и, наконец, до "Успешно" или "Сбой".

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

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

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

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

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

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

Если для inputKind задано значение "PlainText", укажите обычный текст, как показано здесь: "inputs": [{"content": "Радуга имеет семь цветов".}]. Если для 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'Радуга> имеет семь цветов."}].

Включите до 1000 текстовых объектов, если требуется несколько выходных файлов видео. Ниже приведен пример входного текста, который должен быть синтезирован в два выходных файла видео: "inputs": [{"content": "синтезировать это в файл"},{"content": "синтезировать это в другой файл"}].

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Свойство Обязательные значения для прозрачности фона
properties.videoFormat webm
properties.videoCodec vp9
properties.backgroundColor #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. <output.mov> Замените <input.webm> локальный путь и имя файла в командной строке.

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