使用 Azure 媒体服务分析视频和音频文件
警告
Azure 媒体服务将于 2024 年 6 月 30 日停用。 有关详细信息,请参阅 AMS 停用指南。
重要
正如 Microsoft 负责任 AI 标准所概述的,Microsoft 致力于实现 AI 系统的公平性、隐私性、安全性和透明度。 为了符合这些标准,Azure 媒体服务将于 2023 年 9 月 14 日停用视频分析器预设。 此预设当前允许从视频文件中提取多个视频和音频见解。 客户可以使用 Azure 视频索引器提供的更高级功能集替换其当前工作流。
在媒体服务中,可以使用音频和视频分析器预设从视频和音频文件中提取见解。 本文介绍用于提取见解的分析器预设。
音频分析器预设有两种模式:基本模式和标准模式。 请参阅下表中的差异说明。
若要使用媒体服务 v3 预设分析内容,请创建转换,然后提交使用以下某个预设的作业:VideoAnalyzerPreset 或 AudioAnalyzerPreset。
注意
如果存储帐户没有公用网络访问权限,则不支持 AudioAnalyzerPreset。
符合性、隐私和安全性
在使用视频分析器媒体版时,必须遵守所有适用法律,不得以侵犯他人权利或可能对他人有害的方式使用视频分析器媒体版或任何其他 Azure 服务。 在将任何视频(包括任何生物特征数据)上传到视频分析器媒体版服务进行处理和存储之前,必须拥有所有适当的权利,包括获得视频中个人的所有适当同意。 有关 Azure 的隐私义务和数据处理,请查看 Azure 的隐私声明。
内置预设
媒体服务当前支持以下内置分析器预设:
预设名称 | 方案/模式 | 详细信息 |
---|---|---|
AudioAnalyzerPreset | 分析音频标准模式 | 该预设应用一组基于 AI 的预定义分析操作,其中包括语音听录。 目前,该预设支持处理包含单个音轨的内容且音轨应仅包含一种语言的语音。 使用 BCP-47 格式“language tag-region”为输入中的音频有效负载指定语言。 如需了解可用语言代码,请参阅下面的支持的语言列表。 自动语言检测会选择检测到的第一种语言,然后将所选语言继续用于整个文件(如果尚未设置,或设置为 null)。 自动语言检测功能目前支持英语、中文、法语、德语、意大利语、日语、西班牙语、俄语和巴西葡萄牙语。 它不支持在检测到第一种语言后在各语言之间进行动态切换。 自动语言检测功能最适用于包含清晰可辨的语音的录音。 如果自动语言检测未能找到语言,脚本将回退到英语。 |
AudioAnalyzerPreset | 分析音频基本模式 | 这种预设模式执行语音转文本听录并生成 VTT 字幕文件。 此模式的输出包括一个见解 JSON 文件,该文件仅包含关键字、听录和计时信息。 此模式不包括自动语言检测和说话人分割聚类。 受支持语言的列表与上述标准模式相同。 |
VideoAnalyzerPreset | 分析音频和视频 | 从音频和视频中提取见解(丰富的元数据),并输出 JSON 格式的文件。 可以指定在处理视频文件时是否只想提取音频见解。 |
FaceDetectorPreset | 检测视频中的人脸 | 描述在分析视频时要使用的设置,以便检测出现的所有人脸。 |
注意
如果存储帐户没有公用网络访问权限,则不支持 AudioAnalyzerPreset。
支持的语言
- 阿拉伯语('ar-BH'、'ar-EG'、'ar-IQ'、'ar-JO'、'ar-KW'、'ar-LB'、'ar-OM'、'ar-QA'、'ar-SA' 和 'ar-SY')
- 巴西葡萄牙语 ('pt-BR')
- 中文 ('zh-CN')
- 丹麦语 ('da-DK')
- 英语('en-US'、'en-GB' 和 'en-AU')
- 芬兰语 ('fi-FI')
- 法语('fr-FR' 和 'fr-CA')
- 德语 ('de-DE')
- 希伯来语 (he-IL)
- 印地语 ('hi-IN')、韩语 ('ko-KR')
- 意大利语 ('it-IT')
- 日语 ('ja-JP')
- 挪威语 ('nb-NO')
- 波斯语 ('fa-IR')
- 葡萄牙葡萄牙语 ('pt-PT')
- 俄语 ('ru-RU')
- 西班牙语('es-ES' 和 'es-MX')
- 瑞典语 ('sv-SE')
- 泰语 ('th-TH')
- 土耳其语 ('tr-TR')
注意
如果存储帐户没有公用网络访问权限,则不支持 AudioAnalyzerPreset。
AudioAnalyzerPreset 标准模式
使用此预设,可以从音频或视频文件中提取多个音频见解。
输出包括一个 JSON 文件(包含所有见解)和该音频脚本的 VTT 文件。 此预设接受 BCP47 字符串格式的属性,该属性用于指定输入文件的语言。 音频见解包括:
- 音频听录:带有时间戳的口语脚本。 支持多种语言。
- 关键字:从音频听录内容提取的关键字。
AudioAnalyzerPreset 基本模式
使用此预设,可以从音频或视频文件中提取多个音频见解。
输出包括一个 JSON 文件和该音频脚本的 VTT 文件。 此预设接受 BCP47 字符串格式的属性,该属性用于指定输入文件的语言。 输出包括:
- 音频听录:带有时间戳的口语脚本。 支持多种语言,但不包括自动语言检测和说话人分割聚类。
- 关键字:从音频听录内容提取的关键字。
VideoAnalyzerPreset
使用此预设,可以从视频中提取多个音频和视频见解。 输出包括一个 JSON 文件(包含所有见解)、该视频脚本的 VTT 文件以及视频缩略图集合。 此预设还接受 BCP47 字符串格式的属性,该属性表示视频的语言。 视频见解包括上述所有音频见解,此外还包含以下项:
- 人脸跟踪:视频中出现人脸的时间段。 每张人脸都有一个面部 ID 和对应的视频缩略图集合。
- 视觉文本:通过光学字符识别检测出的文本。 该文本带有时间戳,也用于提取关键字(以及音频脚本)。
- 关键帧:从视频中提取的关键帧集合。
- 视觉内容审核:标记为成人或猥亵性的视频部分。
- 注释:基于预定义对象模型对视频进行注释的结果
insights.json 元素
输出包括一个 JSON 文件 (insights.json),其中包含从音频或视频发现的所有见解。 JSON 可以包含以下元素:
脚本
名称 | 说明 |
---|---|
id | 行 ID。 |
text | 脚本本身。 |
语言 | 脚本语言。 旨在支持每行语言不同的脚本。 |
instances | 出现该行的时间范围列表。 如果实例是脚本,则只有一个实例。 |
示例:
"transcript": [
{
"id": 0,
"text": "Hi I'm Doug from office.",
"language": "en-US",
"instances": [
{
"start": "00:00:00.5100000",
"end": "00:00:02.7200000"
}
]
},
{
"id": 1,
"text": "I have a guest. It's Michelle.",
"language": "en-US",
"instances": [
{
"start": "00:00:02.7200000",
"end": "00:00:03.9600000"
}
]
}
]
ocr
名称 | 说明 |
---|---|
id | OCR 行 ID。 |
text | OCR 文本。 |
confidence | 识别置信度。 |
语言 | OCR 语言。 |
instances | 出现此 OCR 的时间范围列表(同一 OCR 可重复多次出现)。 |
"ocr": [
{
"id": 0,
"text": "LIVE FROM NEW YORK",
"confidence": 0.91,
"language": "en-US",
"instances": [
{
"start": "00:00:26",
"end": "00:00:52"
}
]
},
{
"id": 1,
"text": "NOTICIAS EN VIVO",
"confidence": 0.9,
"language": "es-ES",
"instances": [
{
"start": "00:00:26",
"end": "00:00:28"
},
{
"start": "00:00:32",
"end": "00:00:38"
}
]
}
],
人脸
名称 | 说明 |
---|---|
id | 人脸 ID。 |
name | 人脸姓名。 它可以是“Unknown #0”、公认的名人或经过客户培训的人员。 |
confidence | 人脸识别置信度。 |
description | 名人的说明。 |
thumbnailId | 该人脸的缩略图 ID。 |
knownPersonId | 内部 ID(如果是已知人员)。 |
referenceId | 必应 ID(如果是必应名人)。 |
referenceType | 当前仅限必应。 |
title | 头衔(如果是名人 — 例如“Microsoft CEO”)。 |
imageUrl | 图像 URL(如果是名人)。 |
instances | 在给定时间范围内出现该人脸的实例。 每个实例还具有一个 thumbnailsId。 |
"faces": [{
"id": 2002,
"name": "Xam 007",
"confidence": 0.93844,
"description": null,
"thumbnailId": "00000000-aee4-4be2-a4d5-d01817c07955",
"knownPersonId": "8340004b-5cf5-4611-9cc4-3b13cca10634",
"referenceId": null,
"title": null,
"imageUrl": null,
"instances": [{
"thumbnailsIds": ["00000000-9f68-4bb2-ab27-3b4d9f2d998e",
"cef03f24-b0c7-4145-94d4-a84f81bb588c"],
"adjustedStart": "00:00:07.2400000",
"adjustedEnd": "00:00:45.6780000",
"start": "00:00:07.2400000",
"end": "00:00:45.6780000"
},
{
"thumbnailsIds": ["00000000-51e5-4260-91a5-890fa05c68b0"],
"adjustedStart": "00:10:23.9570000",
"adjustedEnd": "00:10:39.2390000",
"start": "00:10:23.9570000",
"end": "00:10:39.2390000"
}]
}]
截图
名称 | 说明 |
---|---|
id | 截图 ID。 |
keyFrames | 截图内的关键帧列表(每个关键帧都有一个 ID 和实例时间范围列表)。 关键帧实例具有一个 thumbnailId 字段,该字段包含关键帧的缩略图 ID。 |
instances | 此截图的时间范围列表(截图仅有一个实例)。 |
"Shots": [
{
"id": 0,
"keyFrames": [
{
"id": 0,
"instances": [
{
"thumbnailId": "00000000-0000-0000-0000-000000000000",
"start": "00: 00: 00.1670000",
"end": "00: 00: 00.2000000"
}
]
}
],
"instances": [
{
"thumbnailId": "00000000-0000-0000-0000-000000000000",
"start": "00: 00: 00.2000000",
"end": "00: 00: 05.0330000"
}
]
},
{
"id": 1,
"keyFrames": [
{
"id": 1,
"instances": [
{
"thumbnailId": "00000000-0000-0000-0000-000000000000",
"start": "00: 00: 05.2670000",
"end": "00: 00: 05.3000000"
}
]
}
],
"instances": [
{
"thumbnailId": "00000000-0000-0000-0000-000000000000",
"start": "00: 00: 05.2670000",
"end": "00: 00: 10.3000000"
}
]
}
]
statistics
名称 | 说明 |
---|---|
CorrespondenceCount | 视频中对应关系的数目。 |
WordCount | 每个发言人的单词数。 |
SpeakerNumberOfFragments | 发言人在视频中的片段数量。 |
SpeakerLongestMonolog | 发言人的最长独白。 如果说话人在独白中有沉默,则会将沉默期包含在内。 删除独白开头和结尾的沉默期。 |
SpeakerTalkToListenRatio | 计算方式为将发言人的独白时间(开头和结尾之间没有沉默期)除以视频总时间。 时间将四舍五入为三位小数。 |
标签
名称 | 说明 |
---|---|
id | 标签 ID。 |
name | 标签名称(例如“计算机”、“电视”)。 |
语言 | 标签名称语言(转换后)。 BCP-47 |
instances | 出现此标签的时间范围列表(一个标签可重复多次出现)。 每个实例都有置信度字段。 |
"labels": [
{
"id": 0,
"name": "person",
"language": "en-US",
"instances": [
{
"confidence": 1.0,
"start": "00: 00: 00.0000000",
"end": "00: 00: 25.6000000"
},
{
"confidence": 1.0,
"start": "00: 01: 33.8670000",
"end": "00: 01: 39.2000000"
}
]
},
{
"name": "indoor",
"language": "en-US",
"id": 1,
"instances": [
{
"confidence": 1.0,
"start": "00: 00: 06.4000000",
"end": "00: 00: 07.4670000"
},
{
"confidence": 1.0,
"start": "00: 00: 09.6000000",
"end": "00: 00: 10.6670000"
},
{
"confidence": 1.0,
"start": "00: 00: 11.7330000",
"end": "00: 00: 20.2670000"
},
{
"confidence": 1.0,
"start": "00: 00: 21.3330000",
"end": "00: 00: 25.6000000"
}
]
}
]
关键字
名称 | 说明 |
---|---|
id | 关键字 ID。 |
text | 关键字文本。 |
confidence | 关键字的识别置信度。 |
语言 | 关键字语言(转换后)。 |
instances | 出现此关键字的时间范围列表(一个关键字可重复多次出现)。 |
"keywords": [
{
"id": 0,
"text": "office",
"confidence": 1.6666666666666667,
"language": "en-US",
"instances": [
{
"start": "00:00:00.5100000",
"end": "00:00:02.7200000"
},
{
"start": "00:00:03.9600000",
"end": "00:00:12.2700000"
}
]
},
{
"id": 1,
"text": "icons",
"confidence": 1.4,
"language": "en-US",
"instances": [
{
"start": "00:00:03.9600000",
"end": "00:00:12.2700000"
},
{
"start": "00:00:13.9900000",
"end": "00:00:15.6100000"
}
]
}
]
visualContentModeration
visualContentModeration 块包含视频分析器媒体版找到的、可能具有成人内容的时间范围。 如果 visualContentModeration 为空,则表示未识别到成人内容。
被确定包含成人或不雅内容的视频可能仅可供私人观看。 用户可以请求人工审查内容,在这种情况下,IsAdult
属性将包含人工审查的结果。
名称 | 说明 |
---|---|
id | 视觉内容审核 ID。 |
adultScore | 成人内容评分(由内容审核员提供)。 |
racyScore | 不雅内容评分(由内容审核员提供)。 |
instances | 显示此视觉内容审核的时间范围列表。 |
"VisualContentModeration": [
{
"id": 0,
"adultScore": 0.00069,
"racyScore": 0.91129,
"instances": [
{
"start": "00:00:25.4840000",
"end": "00:00:25.5260000"
}
]
},
{
"id": 1,
"adultScore": 0.99231,
"racyScore": 0.99912,
"instances": [
{
"start": "00:00:35.5360000",
"end": "00:00:35.5780000"
}
]
}
]