Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Возможности многомодального анализа azure Content Understanding помогают преобразовать неструктурированные звуковые и видеоданные в структурированные, читаемые компьютером сведения. Точно идентифицируя и извлекая аудиовизуальные элементы при сохранении их темпоральных связей, можно создавать мощные рабочие процессы обработки мультимедиа для широкого спектра приложений.
Объект contents с kind: "audioVisual" поддерживает как только аудиовходы, так и видеовходы, с разными возможностями, которые зависят от типа ввода.
Поддерживаемые типы контента включают:
- Аудиофайлы: распространенные форматы звука
- Видеофайлы: распространенные форматы видео
Полные сведения о поддерживаемых типах файлов, ограничениях размера файла и других ограничениях см. в разделе " Квоты и ограничения службы".
Структура ответа JSON
API распознавания содержимого возвращает результат анализа в структурированном формате JSON. В этом документе основное внимание уделяется элементу в массиве contents с kind заданным значением audioVisual. Ниже приведена общая структура контейнера ответа:
{
"id": "73719670-2326-40c3-88ca-197c52deab2c",
"status": "Succeeded",
"result": {
"analyzerId": "my-analyzer",
"contents": [
{
"markdown": "# Video: 00:00.000 => 23:16.997\nWidth: 854\nHeight: 480\n...",
"fields": {
"Summary": {
"type": "string",
"valueString": "..."
}
},
"kind": "audioVisual",
"startTimeMs": 0,
"endTimeMs": 1000000,
"transcriptPhrases": [/* ... */],
"width": 854,
"height": 480,
"keyFrameTimesMs": [/* ... */],
"cameraShotTimesMs": [/* ... */]
}
]
}
}
Элементы аудиовизуальные
Можно извлечь следующие аудиовизуальные элементы:
| Элемент | Поддержка звука | Поддержка видео | Требуются детали возврата |
|---|---|---|---|
| Содержимое Markdown | ✓ | ✓ | нет |
| Коллекция содержимого | ✓ | ✓ | нет |
| Фразы расшифровки | ✓ | ✓ | Да |
| Сведения о времени | ✓ | ✓ | нет |
| Ключевые кадры | ✗ | ✓ | нет |
| Снимки камеры | ✗ | ✓ | Да |
| Извлечение полей | ✓ | ✓ | нет |
Технология распознавания лиц также требует enableFace: true в конфигурации анализатора и ограниченной регистрации доступа.
Элементы содержимого Markdown
Дополнительные сведения о формате markdown для аудиовизуального содержимого см. в разделе AudioVisual Markdown.
Коллекция содержимого
Коллекция содержимого содержит один или несколько объектов содержимого, содержащих данные, извлеченные из файла. Если сегментация включена (enableSegment = true), объект содержимого возвращается для каждого сегмента, найденного в содержимом.
Фразы расшифровки
Элемент transcriptPhrases содержит полную транскрибирование звука, разделенную на отдельные фразы с идентификацией говорящего и точной информацией о времени. Этот элемент доступен как для аудио, так и для видео входных данных. Система понимания контента поддерживает многоязычное транскрибирование и диаризацию говорящего. Эти выходные данные включаются, когда пользователь задает "returnDetails": true в определении анализатора. Дополнительные сведения см. в разделе "Обработка языка аудио".
Пример JSON:
{
"transcriptPhrases": [
{
"speaker": "Speaker 1",
"startTimeMs": 280,
"endTimeMs": 3560,
"text": "Welcome to this first session",
"words": []
},
{
"speaker": "Speaker 2",
"startTimeMs": 4640,
"endTimeMs": 5440,
"text": "Thanks for having me. Excited to be here.",
"words": []
}
]
}
Сведения о времени
Сведения о времени предоставляют общие временные границы аудиовизуального содержимого:
-
startTimeMs: время начала содержимого в миллисекундах (обычно 0) -
endTimeMs: время окончания содержимого в миллисекундах -
width: ширина видео в пикселях (только видео) -
height: высота видео в пикселях (только видео)
Пример JSON:
{
"kind": "audioVisual",
"startTimeMs": 0,
"endTimeMs": 1396997,
"width": 854,
"height": 480
}
Ключевые кадры
Элемент keyFrameTimesMs представляет метки времени для визуальных кадров, извлеченных из видео в ключевые моменты. Метки времени представлены в миллисекундах с начала видео. Эти кадры интеллектуально выбираются на основе таких сигналов, как обнаружение выстрелов. Эти кадры используются в качестве входных данных для создания настраиваемых полей.
Поведение выборки ключевых кадров:
- Ключевые кадры равномерно выбираются на каждом снимке камеры
- Каждый кадр содержит как минимум один выделенный ключевой кадр, даже для коротких сцен (менее одной секунды)
- Количество ключевых кадров одинаково в разных запусках
- Значения метки времени могут иметь незначительные числовые различия между запусками, но эти различия минимальны и не должны существенно влиять на содержимое выбранных кадров.
Пример JSON:
{
"keyFrameTimesMs": [
660,
1320,
2970,
3927,
4884,
5841,
6798,
7755,
8712,
9669
]
}
Снимки камеры
Элемент cameraShotTimesMs определяет точки в видео, где снимки камеры изменяются, указывая на сокращения, переходы или значительные изменения угла камеры или перспективы. Это помогает понять структуру редактирования видео. Значения — метки времени в миллисекундах с начала видео. Эти выходные данные включаются, когда пользователь задает "returnDetails": true в определении анализатора.
Поведение обнаружения снимков камеры:
-
cameraShotTimesMsхранит метки времени переходов между кадрами камеры - Значения массива указывают время начала всех снимков камеры, за исключением первого выстрела (который всегда начинается с 0 мс)
- Выходные данные детерминированы и совпадают в разных запусках
- Эта модель может пропустить визуально постепенные переходы.
Пример JSON:
{
"cameraShotTimesMs": [
2002,
22356,
26960,
53353,
71071,
76210,
78111,
113487,
148882,
152953
]
}
Кастомные элементы
Извлечение полей
Извлечение настраиваемых полей позволяет определять и извлекать определенные сведения из аудиовизуального содержимого на основе бизнес-требований. Поля определяются в конфигурации анализатора. Поля можно заполнить для всего содержимого по умолчанию или для каждого сегмента, если сегментация включена.
Пример извлечения полей JSON:
{
"fields": {
"Summary": {
"type": "string",
"valueString": "The conversation revolves around an introduction to Microsoft Foundry's latest features."
},
"Sentiment": {
"type": "string",
"valueString": "Positive"
}
}
}
Полный пример JSON
В следующем примере показана полная структура ответа JSON из анализа обучающего видео Xbox. Json, включенный здесь, представляет полные выходные данные из Content Understanding при обработке видео с несколькими типами элементов:
{
"id": "cca7cf12-7b2c-46db-9d9a-d7c2dc78c120",
"status": "Succeeded",
"result": {
"analyzerId": "auto-labeling-model-1750376726735-970",
"apiVersion": "2025-11-01",
"createdAt": "2025-06-19T23:45:31Z",
"stringEncoding": "utf8",
"warnings": [],
"contents": [
{
"markdown": "# Video: 00:00.000 => 00:42.520\nWidth: 640\nHeight: 360\n\nTranscript\n```\nWEBVTT\n\n00:02.480 --> 00:04.720\n<Speaker 1>Need help redeeming a code on your Xbox?\n\n00:05.440 --> 00:06.840\n<Speaker 1>Follow these quick steps.\n\n00:08.960 --> 00:15.680\n<Speaker 1>Press the Xbox button on your controller to open the guide while signed into the console with the account you want to apply the code to.\n```\n\nKey Frames\n- 00:00.400 \n- 00:01.800 \n- 00:02.840 \n- 00:08.040 \n- 00:16.360 ",
"fields": {
"ProductOrFeature": {
"type": "string",
"valueString": "Xbox code redemption"
},
"Problem": {
"type": "string",
"valueString": "How to redeem a code on Xbox"
},
"Steps": {
"type": "array",
"valueArray": [
{
"type": "object",
"valueObject": {
"StepTitle": {
"type": "string",
"valueString": "Open the Guide"
},
"Instructions": {
"type": "string",
"valueString": "Press the Xbox button on your controller to open the guide while signed into the console with the account you want to apply the code to."
},
"Timestamp": {
"type": "string",
"valueString": "00:00:08.960"
}
}
},
{
"type": "object",
"valueObject": {
"StepTitle": {
"type": "string",
"valueString": "Enter Code"
},
"Instructions": {
"type": "string",
"valueString": "Enter the 25-character code without the hyphens, then follow steps to finish redeeming."
},
"Timestamp": {
"type": "string",
"valueString": "00:00:26.960"
}
}
}
]
},
"FinalOutcome": {
"type": "string",
"valueString": "Successfully redeem a code on Xbox and access the associated content or service."
}
},
"kind": "audioVisual",
"startTimeMs": 0,
"endTimeMs": 42520,
"width": 640,
"height": 360,
"keyFrameTimesMs": [
400,
1800,
2840,
3880,
4920,
5960,
7000,
8040,
9080,
10120,
16360,
17400,
26760,
27800,
30920,
31960,
40280,
41040,
41800
],
"transcriptPhrases": [
{
"speaker": "Speaker 1",
"startTimeMs": 2480,
"endTimeMs": 4720,
"text": "Need help redeeming a code on your Xbox?",
"words": []
},
{
"speaker": "Speaker 1",
"startTimeMs": 5440,
"endTimeMs": 6840,
"text": "Follow these quick steps.",
"words": []
},
{
"speaker": "Speaker 1",
"startTimeMs": 8960,
"endTimeMs": 15680,
"text": "Press the Xbox button on your controller to open the guide while signed into the console with the account you want to apply the code to.",
"words": []
},
{
"speaker": "Speaker 1",
"startTimeMs": 26960,
"endTimeMs": 29840,
"text": "Enter the 25-character code without the hyphens.",
"words": []
},
{
"speaker": "Speaker 1",
"startTimeMs": 33600,
"endTimeMs": 34640,
"text": "Game on.",
"words": []
}
],
"cameraShotTimesMs": [
760,
33240,
39520
]
}
]
}
}
В этом полном примере показано, как content Understanding извлекает и структурирует все различные типы элементов из звука или видео, предоставляя как необработанное содержимое, так и подробные темпоральные и структурные сведения, позволяющие расширенным рабочим процессам обработки видео.
Дальнейшие шаги
- Попробуйте проанализировать видео в Content Understanding Studio.
- Ознакомьтесь с кратким руководством по Content Understanding Studio.
- Дополнительные сведения об анализе видеосодержимого с помощью шаблонов анализаторов.
- Просмотрите пример кода: анализ видео с сегментами.
- Просмотрите пример кода: шаблоны видеоанализатора.