Свойства пакетного синтеза для текста в аватар речи
Свойства пакетного синтеза можно сгруппировать как: связанные с аватаром свойства, свойства, связанные с пакетным заданием, и текст для связанных с речью свойств, которые описаны в следующих таблицах.
Некоторые свойства в формате 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_embedded hard_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>
локальный путь и имя файла в командной строке.