Analyser des fichiers vidéo et audio avec Azure Media Services
Site web | AMS Exemples de | code Guide de résolution des problèmes
Important
Comme le décrivent les normes d’IA responsable de Microsoft, Microsoft s’engage à l’équité, à la confidentialité, à la sécurité et à la transparence en ce qui concerne les systèmes IA. Pour s’aligner sur ces normes, Azure Media Services met hors service la présélection Video Analyzer le 14 septembre 2023. La présélection vous permet actuellement d’extraire plusieurs insights vidéo et audio d’un fichier vidéo. Les clients peuvent remplacer leurs flux de travail actuels à l’aide du jeu de fonctionnalités plus avancé proposé par Azure Video Indexer.
Media Services vous permet d’extraire des informations de vos fichiers vidéo et audio à l’aide des présélections de l’analyseur audio et video. Cet article décrit les présélections de l’analyseur utilisées pour extraire des insights. Si vous souhaitez obtenir des informations plus détaillées sur vos vidéos, utilisez le service Azure Video Indexer. Pour comprendre à quel moment utiliser Video Indexer plutôt que les présélections de l’analyseur de Media Services, consultez le document de comparaison.
Il existe deux modes pour le préréglage de l’analyseur audio, de base et standard. Consultez la description des différences dans le tableau ci-dessous.
Pour analyser votre contenu à l’aide des préréglages Media Services v3, vous créez une transformation et envoyez un travail qui utilise l’un de ces préréglages : VideoAnalyzerPreset ou AudioAnalyzerPreset.
Notes
AudioAnalyzerPreset n’est pas pris en charge si le compte de stockage n’a pas d’accès au réseau public.
Conformité, confidentialité et sécurité
Vous devez respecter toutes les lois applicables à votre utilisation de Video Indexer, et vous ne pouvez pas utiliser Video Indexer ou tout autre service Azure d’une manière qui viole les droits d’autrui ou peut nuire à d’autres personnes. Avant de charger des vidéos, y compris des données biométriques, vers le service Video Indexer à des fins de traitement et de stockage, Vous devez disposer de tous les droits appropriés sur les vidéos, y compris avoir obtenu le consentement de chaque personne apparaissant dans les vidéos. Pour découvrir la conformité, la confidentialité et la sécurité dans Video Indexer, consultez les Conditions générales d’utilisation d’Azure Cognitive Services. Pour connaître les obligations de Microsoft en matière de confidentialité et de traitement de vos données, consultez la Déclaration de confidentialité, les Conditions des Services en Ligne (OST) et l’Addendum du traitement des données (« DPA ») de Microsoft. D’autres informations de confidentialité, y compris sur la conservation, la suppression/destruction des données, sont disponibles dans le OST. En utilisant Video Indexer, vous acceptez de vous conformer aux Conditions d’utilisation de Cognitive Services, à l’OST, au DPA et à la Déclaration de confidentialité.
Préréglages intégrés
Actuellement, Media Services prend en charge les préréglages d’analyseur intégrés suivants :
Nom du préréglage | Scénario/Mode | Détails |
---|---|---|
AudioAnalyzerPreset | Analyse du mode audio Standard | Ce préréglage applique un ensemble prédéfini d’opérations d’analyse basée sur l’IA, notamment la transcription de la parole. Actuellement, le préréglage prend en charge le traitement du contenu avec une seule piste audio qui inclut la reconnaissance vocale dans une seule langue. Spécifiez la langue de la charge utile audio de l’entrée en utilisant le format BCP-47 « balise de langue-région ». Consultez la liste des langues prises en charge ci-dessous pour connaître les codes de langue disponibles. La détection automatique de la langue choisit la première langue détectée et continue avec la langue sélectionnée pour l’ensemble du fichier si elle n’est pas définie, ou a la valeur null. Cette fonctionnalité prend actuellement en charge les langues suivantes : allemand, anglais, chinois, espagnol, français, italien, japonais, portugais brésilien et russe. Elle ne prend pas en charge le basculement dynamique d’une langue à l’autre après la détection de la première langue. La fonctionnalité de détection automatique de la langue fonctionne mieux sur des enregistrements audio avec des voix clairement identifiables. Si la détection automatique de la langue ne parvient pas à trouver la langue, la transcription utilise l’anglais. |
AudioAnalyzerPreset | Analyse du mode audio De base | Ce mode prédéfini effectue une transcription de la parole en texte et la génération d’un fichier de sous-titres/CC au format VTT. La sortie de ce mode comprend un fichier JSON Insights incluant uniquement les mots clés, la transcription et les informations relatives au minutage. La détection automatique de la langue et la diarisation de l’orateur ne sont pas incluses dans ce mode. La liste des langues prises en charge est identique à celle du mode Standard ci-dessus. |
VideoAnalyzerPreset | Analyse de contenu audio et vidéo | Extrait des insights (métadonnées enrichies) des contenus audio et vidéo, et génère en sortie un fichier au format JSON. Vous pouvez spécifier si vous voulez extraire seulement des insights audio lors du traitement d’un fichier vidéo. |
FaceDetectorPreset | Détection des visages présents dans la vidéo | Décrit les paramètres à utiliser lors de l’analyse d’une vidéo pour détecter les visages qui y figurent. |
Notes
AudioAnalyzerPreset n’est pas pris en charge si le compte de stockage n’a pas d’accès au réseau public.
Langues prises en charge
- Arabe (’ar-BH’, ’ar-EG’, ’ar-IQ’, ’ar-JO’, ’ar-KW’, ’ar-LB’, ’ar-OM’, ’ar-QA’, ’ar-SA’ et ’ar-SY’)
- Portugais brésilien (’pt-BR’)
- Chinois (’zh-CN’)
- Danois (’da-DK’)
- Anglais (’en-US’, ’en-GB’ et ’en-AU’)
- Finnois (’fi-FI’)
- Français (’fr-FR’ et ’fr-CA’)
- Allemand (’de-DE’)
- Hébreu (’he-IL’)
- Hindi (’hi-IN’), Korean (’ko-KR’)
- Italien (’it-IT’)
- Japonais (’ja-JP’)
- Norvégien (’nb-NO’)
- Persan (’fa-IR’)
- Portugais (Portugal) (’pt-PT’)
- Russe (’ru-RU’)
- Espagnol (’es-ES’ et ’es-MX’)
- Suédois (’sv-SE’)
- Thaï (’th-TH’)
- Turc (’tr-TR’)
Notes
AudioAnalyzerPreset n’est pas pris en charge si le compte de stockage n’a pas d’accès au réseau public.
Mode standard AudioAnalyzerPreset
Le préréglage vous permet d’extraire plusieurs insights audio d’un fichier audio ou vidéo.
La sortie inclut un fichier JSON (avec tous les insights) et un fichier VTT pour la transcription audio. Ce paramètre accepte une propriété qui spécifie la langue du fichier d’entrée sous la forme d’une chaîne BCP47. Les analyses audio sont les suivantes :
- Transcription audio : transcription des mots prononcés avec horodatages. Plusieurs langues sont prises en charge.
- Mots clés : mots clés extraits de la transcription audio.
Mode de base AudioAnalyzerPreset
Le préréglage vous permet d’extraire plusieurs insights audio d’un fichier audio ou vidéo.
La sortie inclut un fichier JSON et un fichier VTT pour la transcription audio. Ce paramètre accepte une propriété qui spécifie la langue du fichier d’entrée sous la forme d’une chaîne BCP47. La sortie comprend les éléments suivants :
- Transcription audio : transcription des mots prononcés avec horodatages. Plusieurs langues sont prises en charge, mais la détection automatique de la langue et la diarisation de l’orateur ne sont pas incluses.
- Mots clés : mots clés extraits de la transcription audio.
VideoAnalyzerPreset
Ce préréglage vous permet d’extraire plusieurs insights audio et vidéo à partir d’un fichier vidéo. La sortie inclut un fichier JSON (avec tous les insights), un fichier VTT pour la transcription audio et une collection de miniatures. Ce paramètre accepte également une chaîne BCP47 (représentant la langue de la vidéo) en tant que propriété. Les insights vidéo incluent tous les insights audio mentionnés ci-dessus en complément des éléments suivants :
- Suivi du visage : durée pendant laquelle des visages sont présentes dans la vidéo. Chaque visage est associé à un identifiant de visage et à une collection de miniatures correspondante.
- Texte visuel : texte détecté par la reconnaissance optique des caractères. Le texte est horodaté et également utilisé pour extraire des mots clés (en plus de la transcription audio).
- Images clés : une collection d’images clés extraites de la vidéo.
- Modération du contenu visuel : La partie des vidéos marquée comme adulte ou osé par nature.
- Annotation : résultat de l’annotation des vidéos sur la base d’un modèle d’objet prédéfini
Éléments insights.json
La sortie inclut un fichier JSON (insights.json) contenant tous les insights trouvés dans le contenu vidéo ou audio. Ce fichier JSON peut contenir les éléments suivants :
transcription
Nom | Description |
---|---|
id | ID de la ligne. |
text | La transcription proprement dite. |
langage | La langue de la transcription. Permet de prendre en charge la transcription lorsque chaque ligne peut avoir une langue différente. |
instances | Liste des intervalles de temps pendant lesquels cette ligne est apparue. Si l’instance est un attribut transcript, il n’y a qu’une seule instance. |
Exemple :
"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
Nom | Description |
---|---|
id | ID de la ligne ROC. |
text | Texte de l’OCR. |
confidence | Degré de confiance de la reconnaissance. |
langage | Langue de l’OCR. |
instances | Liste des intervalles de temps au cours desquels cette OCR est apparue (la même OCR peut apparaître plusieurs fois). |
"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"
}
]
}
],
visages
Nom | Description |
---|---|
id | ID du visage. |
name | Nom du visage. Il peut s'agir de la valeur « Unknown #0 », d’une célébrité identifiée ou d'une personne formée par le client. |
confidence | Degré de confiance de l’identification du visage. |
description | Description de la célébrité. |
thumbnailId | ID de la miniature de ce visage. |
knownPersonId | ID interne (s’il s’agit d’une personne connue). |
referenceId | ID Bing (s’il s’agit d’une célébrité Bing). |
referenceType | Bing uniquement (pour le moment). |
title | Poste (dans le cas d’une célébrité, par exemple « PDG de Microsoft »). |
imageUrl | URL de l’image, s’il s’agit d’une célébrité. |
instances | Instances où le visage est apparu dans l’intervalle de temps donné. Chaque instance possède également un 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"
}]
}]
captures
Nom | Description |
---|---|
id | ID de la capture. |
keyFrames | Liste des images clés au sein de la capture (chacune possède un ID et une liste d’intervalles de temps d’instances). Les instances des images clés comptent un champ thumbnailId pourvu de l’ID de miniature de l’élément keyFrame. |
instances | Liste des intervalles de temps de cette capture (les captures n’ont qu’une seule instance). |
"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"
}
]
}
]
statistiques
Nom | Description |
---|---|
CorrespondenceCount | Nombre de correspondances contenues dans la vidéo. |
WordCount | Nombre de mots par intervenant. |
SpeakerNumberOfFragments | Quantité de fragments de l’intervenant dans une vidéo. |
SpeakerLongestMonolog | Monologue le plus long de l’intervenant. Si le monologue de l’intervenant comporte des silences, ils sont inclus. Les silences du début et de la fin du monologue sont supprimés. |
SpeakerTalkToListenRatio | Le calcul est basé sur le temps passé sur le monologue de l’intervenant (sans les silences intermédiaires) divisé par la durée totale de la vidéo. L’heure est arrondie à la troisième décimale. |
étiquettes
Nom | Description |
---|---|
id | ID de l’étiquette. |
name | Nom de l’étiquette (par exemple, « ordinateur », « TV »). |
langage | Langue du nom de l’étiquette (si traduction). BCP-47 |
instances | Liste des intervalles de temps au cours desquels cette étiquette est apparue (une étiquette peut apparaître plusieurs fois). Chaque instance possède un champ de confiance. |
"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"
}
]
}
]
mots clés
Nom | Description |
---|---|
id | ID du mot clé. |
text | Texte du mot clé. |
confidence | Degré de confiance de la reconnaissance du mot clé. |
langage | Langue du mot clé (si traduction). |
instances | Liste des intervalles de temps pendant lesquels ce mot clé est apparu (un mot clé peut apparaître plusieurs fois). |
"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
Le bloc visualContentModeration contient des intervalles de temps qui sont susceptibles de contenir des éléments pour adultes selon Video Indexer. Si ce bloc est vide, aucun contenu pour adultes n’a donc été identifié.
Les vidéos trouvées qui contiennent des éléments pour adultes ou choquants peuvent être disponibles pour un affichage privé uniquement. Les utilisateurs peuvent soumettre une demande de révision manuelle du contenu, auquel cas l’attribut IsAdult
contient le résultat de la révision manuelle.
Nom | Description |
---|---|
id | ID de modération du contenu visuel. |
adultScore | Degré du contenu pour adultes (d’après Content Moderator). |
racyScore | Degré du contenu choquant (d’après Content Moderator). |
instances | Liste des intervalles de temps où cette modération du contenu visuel est affichée. |
"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"
}
]
}
]
Obtenir de l’aide et du support
Vous pouvez contacter Media Services pour vous poser des questions ou suivre nos mises à jour en suivant l’une des méthodes suivantes :
- Questions et réponses
- Stack Overflow. Balisez les questions avec
azure-media-services
. - @MSFTAzureMedia ou utiliser @AzureSupport pour demander du support.
- Ouvrez un ticket de support via le Portail Azure.