Microsoft (MS) Azure est un service de cloud computing fourni par Microsoft, qui compte plus de 600 services. Dans cet article, nous allons parler de l’un d’entre eux : les services cognitifs MS Azure.
Qu’est-ce que les services cognitifs Azure ?
Laissez-nous vous en dire un peu plus sur ce qu’ils sont. Les services cognitifs Azure sont des API, des SDK et des services développés pour permettre de créer des applications avec des algorithmes intelligents sans avoir à les construire à partir de zéro. Le meilleur, c’est que vous pouvez les utiliser gratuitement, bien qu’avec certaines limitations.
Si vous jouez simplement avec ces services afin d’en trouver un approprié pour vous, vous serez heureux d’apprendre que vous pouvez essayer presque tous ces services sur le site web MS Azure – et c’est une excellente opportunité !
Il existe cinq catégories de ces services : vision, parole, langage, connaissances et recherche, comme le montre le schéma ci-dessous.

Ces cinq piliers résument la variété des fonctionnalités proposées et contiennent d’autres catégories et sous-catégories. Dans cet article, nous partagerons quelques détails supplémentaires sur chacune d’elles pour vous donner un aperçu des services cognitifs Azure et des opportunités qu’ils offrent.
Vision
Commençons par la vision. Cet ensemble d’API offre la capacité d’identifier et d’analyser précisément le contenu des images et/ou des vidéos, et il répond à divers besoins. Les catégories incluses sont la vision par ordinateur, la détection de visages, l’indexation vidéo, le modérateur de contenu et la vision personnalisée. Nous allons tous les décrire en détail et vous montrer comment cela fonctionne dans un scénario réel.
En utilisant l’API vision par ordinateur, vous pourrez analyser vos images et obtenir des informations sur l’image elle-même et son contenu visuel : balises et descriptions dans quatre langues, scores de contenu adulte et suggestif, etc. De plus, il existe deux API qui vous permettent de reconnaître des mots et même du texte manuscrit à partir de ces images. Quant aux vidéos, vous pouvez les analyser en temps quasi réel en extrayant des images de la vidéo de votre appareil et obtenir une description textuelle du contenu vidéo.
Si vous avez toujours voulu utiliser la détection et/ou la vérification de visages dans vos applications, alors l’API Visage est faite pour vous. Avec elle, vous pourrez vérifier la probabilité que deux visages appartiennent à la même personne, détecter des visages sur l’image avec quelques descriptions de l’apparence de leurs propriétaires ou détecter des émotions comme la colère, le mépris, le dégoût, la peur, le bonheur, la neutralité, la tristesse et la surprise.
Azure Video Indexer est une application cloud construite sur Azure Media Analytics, Azure Search et plusieurs services cognitifs tels que l’API Visage, Microsoft Translator, l’API Vision par ordinateur et le service Speech personnalisé. Elle contient de nombreuses fonctionnalités et pour l’utiliser, vous n’avez pas besoin d’être un développeur ; vous pouvez utiliser le portail web Video Indexer pour utiliser le service sans écrire une seule ligne de code. Pour l’instant, elle peut convertir la parole en texte dans 10 langues, vous donner des statistiques sur les ratios de parole des locuteurs, identifier des sentiments et des émotions comme la joie, la tristesse, la colère ou la peur, modérer le contenu en détectant des visuels adultes et/ou suggestifs, identifier des effets audio comme le silence, les applaudissements, etc. Vous pouvez également utiliser cette API pour déclencher des flux de travail ou automatiser des tâches en détectant certaines phrases ou effets visuels.
L’API Azure Content Moderator est un service cognitif qui offre la possibilité de vérifier le contenu textuel, visuel et vidéo pour découvrir du contenu indésirable. Dans ce cas, si un tel matériel est trouvé, le contenu est marqué avec des étiquettes que votre application doit ensuite gérer. Outre la détection automatique, vous pouvez également choisir un processus de modération de contenu hybride appelé « Outil de revue humaine » si la prédiction doit être complétée par un contexte réel.
La dernière d’entre elles est Custom Vision (veuillez noter qu’au moment de la rédaction, cette fonctionnalité est en mode préversion). L’API Azure Custom Vision est un peu plus complexe que la vision par ordinateur et vous permet de créer vos propres classifications. Cela signifie que vous devrez entraîner l’algorithme sur votre ensemble d’images avec leurs étiquettes correctes. Pendant l’entraînement, l’algorithme calcule sa propre précision en se testant sur ces mêmes données. Après cela, vous pouvez tester, réentraîner, et enfin l’utiliser pour classer de nouvelles images selon les besoins de votre application, ou exporter le modèle pour une utilisation hors ligne. Cet entraînement peut être effectué soit via une interface web, soit à l’aide d’un ensemble de SDK.
La deuxième catégorie dont nous allons parler est la parole, qui offre des fonctionnalités populaires telles que la parole au texte (également appelée reconnaissance vocale ou transcription), le texte à la parole (synthèse vocale) et la traduction vocale. Vous pouvez utiliser la transcription vocale pour convertir l’audio parlé en texte, soit à partir de fichiers enregistrés, soit en temps réel. Le service peut vous renvoyer des résultats intermédiaires des mots qui ont été reconnus et détecter automatiquement la fin de la parole. La reconnaissance vocale vous permet de créer des applications intelligentes déclenchées par la voix, ainsi que d’assurer la vérification de la personnalité ou l’identification du locuteur.
L’API texte-à-parole permet de traduire votre texte en audio, de manière quasi indiscernable par rapport à une vraie voix humaine. Elle prend en charge plus de 75 voix dans plus de 45 langues et locales.
L’API Speech Service vous permet d’ajouter la traduction vocale à vos applications, tant pour la traduction de la parole vers la parole que de la parole vers le texte. Comme mentionné dans la documentation de Microsoft, l’API Speech Translation utilise les mêmes technologies qui alimentent divers produits et services Microsoft. Ce service est déjà utilisé par des milliers d’entreprises dans le monde dans leurs applications et flux de travail.
Langage
Le langage comprend des API telles que Text Analytics, Translator Text, Bing Spell Check, Content Moderator (qui fait également partie de « Vision ») et Language Understanding.
Avec l’API Text Analytics, vous pouvez analyser votre texte pour en identifier la langue, le sentiment, les phrases clés et les entités. L’API Translator est un service de traduction automatique neuronale qui vous offre la capacité de traduction texte-à-texte dans plus de 60 langues.
Besoin d’une correction orthographique dans votre application en tenant compte du contexte ? Alors, vous serez heureux d’apprendre que l’API Bing Spell Search vous offre cette option, y compris l’utilisation de corrections spécifiques pour les documents (ajoute la capitalisation, la ponctuation de base, etc. pour la création de documents) et la recherche web (est plus “agressive” afin de renvoyer de meilleurs résultats de recherche).
Et le Language Understanding (LUIS) : c’est un service API basé sur le cloud qui peut vous aider à analyser le texte conversationnel naturel d’un utilisateur et à en fournir le sens général et des informations détaillées. Une application client courante pour LUIS est un chatbot, mais il peut également être utilisé pour des applications de médias sociaux, des chatbots, des applications de bureau à commande vocale, etc.
Connaissances
L’API Connaissances ne comprend que Q&A Maker, un service API basé sur le cloud qui offre une grande fonctionnalité pour créer un service de questions-réponses à partir de contenu semi-structuré tel que des documents FAQ, des URL et des manuels de produits. Vous pouvez l’utiliser via un bot ou une application pour offrir à vos utilisateurs la possibilité d’obtenir des réponses instantanées sans avoir à lire les FAQ ou à attendre que quelqu’un réponde. Le service répondra en faisant correspondre une question avec la meilleure réponse possible parmi les Q&R de votre base de connaissances.
Recherche
Cet ensemble d’API permet de créer des applications offrant une recherche puissante à l’échelle du web sans publicité. Toutes les API ont leurs propres catégories comme la recherche vidéo ou la recherche web, et ainsi de suite, et en fonction de cela, elles fournissent différents types de recherches qui peuvent même rendre votre application étroitement axée sur vos besoins. Parmi elles, vous pouvez trouver des types de recherche tels que l’actualité, la vidéo, la recherche d’images, la recherche web complète sans publicité, l’autocomplétion ou même la recherche visuelle par le contenu visuel de l’image.

Absolument, chacun de ces services peut, et sans aucun doute, ils le méritent tous, être décrit dans un article indépendant avec un aperçu approfondi et des exemples. Cependant, compte tenu de la nature inductive de cet article, nous avons décidé d’en sélectionner deux et de montrer quelques exemples d’utilisation. Alors, pratiquons un peu avec la reconnaissance d’émotions et l’API de transcription vocale.
Reconnaissance d’émotions
Si vous avez déjà essayé de traiter ce sujet vous-même, vous avez probablement entendu parler de l’API Azure Emotion, qui était utilisée auparavant pour la reconnaissance d’émotions. Le 15 février 2019, cette API sera dépréciée, c’est pourquoi dans ce paragraphe, nous passerons en revue cette capacité dans le cadre de l’API de détection de visages, qui la remplacera.
Prérequis :
- Clé d’abonnement à l’API Visage. Il y a plusieurs façons de l’obtenir : l’une d’elles consiste à utiliser la clé d’essai, que vous pouvez obtenir sur la page « Essayez les services cognitifs » de Microsoft ou créer un compte de service cognitif. Pour cette dernière option, vous aurez également besoin d’un abonnement Azure. Ne vous laissez pas effrayer, Azure offre une excellente opportunité de créer un compte gratuit et d’utiliser des plans gratuits pour les besoins des développeurs.
- Dans l’exemple donné, un .NET Core sera utilisé, vous pouvez donc appliquer n’importe quel IDE à votre goût. Vous pouvez également créer un projet avec .NET Framework, dans ce cas, vous aurez besoin de Visual Studio 2015 ou 2017.
- Une image au format JPEG, PNG, GIF (le premier cadre sera utilisé) ou BMP avec une taille de fichier de 1 Ko à 6 Mo. Jusqu’à 64 visages peuvent être retournés pour une image si leur taille est comprise entre 36×36 et 4096×4096 pixels. Il existe des cas où les visages peuvent ne pas être détectés en raison de grands angles de visage ou d’une mauvaise orientation de l’image – tenez-en compte lorsque vous choisissez une image à analyser.
Dans l’IDE, créez une nouvelle application console (.NET Core) et nommez-la « CognitiveServicesEx » (ou tout ce que vous voulez, gardez-la à l’esprit, puis vous copierez le code de l’exemple). Nous utiliserons le package NuGet « Newtonsoft.Json » pour afficher la réponse, alors faites un clic droit sur le nom du projet et sélectionnez dans le menu contextuel « Gérer les packages NuGet… ». Recherchez ce package dans la liste et installez-le. Après cela, remplacez le contenu du fichier de projet créé « Program.cs » par le code suivant :
using Newtonsoft.Json.Linq;
using System;
using System.IO;
using System.Net.Http;
using System.Net.Http.Headers;
namespace CognitiveServicesEx {
class Program {
static void Main(string[] args) {
GetEmotionsFromLocalImage();
Console.ReadLine();
}
static async void GetEmotionsFromLocalImage() {
string imageFilePath =
@"D:practiseCognitiveServicesExampleCognitiveServicesExResourcesIMG_1556.jpg";
if (File.Exists(imageFilePath)) {
try {
Console.WriteLine("nAnalyzing....n");
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key",
"25eb4c2f2d0e41eda1985b8a13c56e30");
string requestParameters = "returnFaceId=true" +
"&returnFaceLandmarks=false" +
"&returnFaceAttributes=smile,emotion";
string uri =
$"https://westcentralus.api.cognitive.microsoft.com" +
$"/face/v1.0/detect?{requestParameters}";
HttpResponseMessage response;
using (FileStream fileStream = new FileStream(imageFilePath,
FileMode.Open,
FileAccess.Read)) {
BinaryReader binaryReader = new BinaryReader(fileStream);
byte[] byteData = binaryReader.ReadBytes((int)fileStream.Length);
using (ByteArrayContent content = new ByteArrayContent(byteData)) {
content.Headers.ContentType =
new MediaTypeHeaderValue("application/octet-stream");
response = await client.PostAsync(uri, content);
string contentString = await response.Content.ReadAsStringAsync();
Console.WriteLine("nResponse:n");
Console.WriteLine(JToken.Parse(contentString).ToString());
Console.WriteLine($"nPress any key to exit...n");
}
}
}
catch (Exception e) {
Console.WriteLine($"n{e.Message}nPress any key to exit...n");
}
}
else {
Console.WriteLine("nFile does not exist.nPress any key to exit...n");
}
}
}
}
Dans l’IDE, créez une nouvelle application console (.NET Core) et nommez-la « CognitiveServicesEx » (ou tout ce que vous voulez, gardez-la à l’esprit, puis vous copierez le code de l’exemple). Nous utiliserons le package NuGet « Newtonsoft.Json » pour afficher la réponse, alors faites un clic droit sur le nom du projet et sélectionnez dans le menu contextuel « Gérer les packages NuGet… ». Recherchez ce package dans la liste et installez-le. Après cela, remplacez le contenu du fichier de projet créé « Program.cs » par le code suivant :
Avant d’exécuter cet exemple, nous allons décomposer ce morceau de code pour vous. Cet exemple fonctionne avec l’image stockée localement, dont le chemin est défini dans la variable imageFilePath. Vous pouvez également travailler avec des URL d’images et nous examinerons cet exemple un peu plus tard.
Dans la variable « requestParameters », nous définissons les informations exactes dont nous avons besoin. Via ces paramètres optionnels, nous pouvons également obtenir l’âge, le sexe, la pose de la tête (paramètre headPose), la pilosité faciale (paramètre facialHair), les lunettes, les cheveux, le maquillage, l’occlusion, les accessoires, le flou, l’exposition et le bruit. Chacun de ces paramètres peut être ajouté à la variable « requestParameters », séparé par une virgule. Nous examinerons l’exemple des paramètres uniquement émotions et sourire.
Quant au lien vers l’API, veuillez noter que vous devez utiliser la même région que celle que vous avez utilisée pour obtenir une clé d’abonnement. Les clés d’abonnement d’essai gratuit sont toujours générées dans la région « westus », donc si vous utilisez de telles clés actuellement, vous n’avez pas à vous inquiéter.
Lancez maintenant l’application. Pour chaque type d’émotion, vous verrez un nombre de 0 à 1, plus ce nombre est élevé, plus cette émotion est fortement manifestée par une personne. Pour tester, nous utiliserons la photo de notre fête d’entreprise d’Halloween :

Les résultats de l’analyse de l’image sont les suivants :
Analyzing….
Response :
[{
"faceId": "8fb67a9c-e9f8-47b3-9524-865fc85f1550",
"faceRectangle": {
"top": 512,
"left": 1498,
"width": 817,
"height": 817
},
"faceAttributes": {
"smile": 0.677,
"emotion": {
"anger": 0.0,
"contempt": 0.001,
"disgust": 0.0,
"fear": 0.0,
"happiness": 0.677,
"neutral": 0.322,
"sadness": 0.0,
"surprise": 0.0
}
}
},
{
"faceId": "5b09a37d-5837-4ee7-a7f7-83f3c7d170e4",
"faceRectangle": {
"top": 815,
"left": 965,
"width": 520,
"height": 520
},
"faceAttributes": {
"smile": 0.995,
"emotion": {
"anger": 0.001,
"contempt": 0.0,
"disgust": 0.0,
"fear": 0.002,
"happiness": 0.995,
"neutral": 0.0,
"sadness": 0.0,
"surprise": 0.001
}
}
}]
Appuyez sur n’importe quelle touche pour quitter…
Un appel réussi renvoie un tableau d’entrées de visages classées par taille de rectangle de visage dans l’ordre décroissant. Chaque entrée de visage contient les valeurs suivantes (en fonction des paramètres de requête) :
- faceId – l’identifiant unique du visage détecté (expire 24 heures après l’appel de détection) ;
- faceRectangle – les coordonnées d’un rectangle de l’emplacement du visage ;
- faceAttributes :
- smile : intensité du sourire (un nombre entre 0 et 1) ;
- emotion : incluant une valeur d’intensité des émotions neutre, colère, mépris, dégoût, peur, bonheur, tristesse et surprise (un nombre entre 0 et 1).
Vous pouvez consulter une liste des codes d’erreur et des messages dans la documentation Microsoft, la plupart d’entre eux sont causés par la taille de l’image, des arguments invalides ou des liens vers des images.
Comme nous l’avons mentionné ci-dessus, nous examinerons à quoi ressemblerait l’appel REST si vous aviez besoin d’analyser l’image par URL. C’est aussi simple que cela, il suffit d’ajouter le paramètre URL comme HttpContent pour la méthode PostAsync. Ainsi, la méthode « GetEmotionsFromLocalImage » dans ce cas ressemblera à ceci :
static async void GetEmotionsFromLocalImage() {
string imageFilePath =
@"D:practiseCognitiveServicesExampleCognitiveServicesExResourcesIMG_1556.jpg";
if (File.Exists(imageFilePath)) {
try {
Console.WriteLine("nAnalyzing....n");
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key",
"25eb4c2f2d0e41eda1985b8a13c56e30");
string requestParameters = "returnFaceId=true" +
"&returnFaceLandmarks=false" +
"&returnFaceAttributes=smile,emotion";
string uri =
$"https://westcentralus.api.cognitive.microsoft.com" +
$"/face/v1.0/detect?{requestParameters}";
HttpResponseMessage response;
var data = new JObject {
["url"] =
$"https://docs.microsoft.com" +
$"/en-us/azure/cognitive-services/face/images/facefindsimilar.queryface.jpg"
};
var json = JsonConvert.SerializeObject(data);
var content = new StringContent(json, Encoding.UTF8, "application/json");
response = await client.PostAsync(uri, content);
string contentString = await response.Content.ReadAsStringAsync();
Console.WriteLine("nResponse:n");
Console.WriteLine(JToken.Parse(contentString).ToString());
Console.WriteLine($"nPress any key to exit...n");
}
catch (Exception e) {
Console.WriteLine($"n{e.Message}nPress any key to exit...n");
}
}
else {
Console.WriteLine("nFile does not exist.nPress any key to exit...n");
}
}
Comme vous pouvez le constater, le travail avec cette API est un jeu d’enfant. Microsoft fournit des services très puissants qui sont vraiment faciles à utiliser. Vous pouvez maintenant expérimenter par vous-même avec d’autres paramètres optionnels pour obtenir un aperçu complet de son fonctionnement et des capacités qu’elle offre.
Transcription vocale
L’API Speech to Text offre la possibilité de convertir n’importe quel audio parlé (comme un fichier enregistré, l’audio du microphone, etc.) en texte. Dans notre exemple, nous allons essayer de transcrire un enregistrement audio d’exemple en texte.
Prérequis :
- une clé d’abonnement à l’API Speech. Les moyens de l’obtenir sont les mêmes que pour la clé d’abonnement à l’API Vision.
- Les prérequis de l’IDE sont également les mêmes que pour l’API Speech.
- Nous allons examiner la transcription d’un fichier enregistré via l’API REST, qui devrait être dans le format suivant :
- WAV, codec : PCM, débit binaire : 16 bits, taux d’échantillonnage : 16 kHz, mono, durée jusqu’à 10 secondes ;
- OGG, codec : OPUS, débit binaire : 16 bits, taux d’échantillonnage : 16 kHz, mono, durée jusqu’à 10 secondes.
Les exigences ci-dessus pour le fichier ne sont valables que pour l’API REST et WebSocket dans le Speech Service. Si vous avez besoin de reconnaître un audio plus long, utilisez le Speech SDK ou la transcription par lots. Le Speech SDK ne prend actuellement en charge que le format WAV avec le codec PCM et vous devez en tenir compte lorsque vous utilisez le SDK. Dans cet article, nous avons décidé d’utiliser l’API REST, car le SDK est généralement plus facile à utiliser et prend en charge un nombre limité de langues. En contrepartie, l’API REST fonctionne avec n’importe quelle langue qui peut faire une requête HTTP et c’est pourquoi ces exemples peuvent être plus utiles.
Modifions un peu notre programme de test.
using Newtonsoft.Json.Linq;
using System;
using System.IO;
using System.Net.Http;
using System.Net.Http.Headers;
namespace CognitiveServicesEx {
class Program {
static void Main(string[] args) {
Console.WriteLine("Choose what to analyze from the following list:");
Console.WriteLine("t1 - Image");
Console.WriteLine("t2 - Audio");
switch (Console.ReadLine()) {
case "1":
GetEmotionsFromLocalImage();
break;
case "2":
ConvertAudioToText();
break;
}
Console.ReadLine();
}
static async void GetEmotionsFromLocalImage() {
string imageFilePath = @"D:practiseCognitiveServicesExampleCognitiveServicesExResourcesIMG_1551.jpg";
string subscriptionKey = "25eb4c2f2d0e41eda1985b8a13c56e30";
string requestParameters = "returnFaceId=true&returnFaceLandmarks=false&returnFaceAttributes=smile,emotion";
string uri = $"https://westcentralus.api.cognitive.microsoft.com/face/v1.0/detect?{requestParameters}";
if (File.Exists(imageFilePath)) {
try {
Console.WriteLine("nAnalyzing....n");
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", subscriptionKey);
HttpResponseMessage response;
using (FileStream fileStream = new FileStream(imageFilePath, FileMode.Open, FileAccess.Read)) {
BinaryReader binaryReader = new BinaryReader(fileStream);
byte[] byteData = binaryReader.ReadBytes((int)fileStream.Length);
using (ByteArrayContent content = new ByteArrayContent(byteData)) {
content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
response = await client.PostAsync(uri, content);
string contentString = await response.Content.ReadAsStringAsync();
Console.WriteLine("Response:n");
Console.WriteLine(JToken.Parse(contentString).ToString());
Console.WriteLine($"nPress any key to exit...n");
}
}
}
catch (Exception e) {
Console.WriteLine($"n{e.Message}nPress any key to exit...n");
}
}
else {
Console.WriteLine("nFile does not exist.nPress any key to exit...n");
}
}
static async void ConvertAudioToText() {
string audioFilePath = @"D:practiseCognitiveServicesExampleCognitiveServicesExResourceswhatstheweatherlike.wav";
string authUri = "https://westus.api.cognitive.microsoft.com/sts/v1.0/issueToken";
string apiUri = "https://westus.stt.speech.microsoft.com/speech/recognition/conversation/cognitiveservices/v1?language=en-US&format=detailed";
string subscriptionKey = "1e907c0e08554d4aaab42f8e1f6939b0";
string token;
using (var client = new HttpClient()) {
Console.WriteLine("nGet auth token....n");
client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", subscriptionKey);
UriBuilder uriBuilder = new UriBuilder(authUri);
var result = await client.PostAsync(uriBuilder.Uri.AbsoluteUri, null).ConfigureAwait(false);
token = await result.Content.ReadAsStringAsync().ConfigureAwait(false);
}
if (!String.IsNullOrEmpty(token)) {
Console.WriteLine("nAnalyzing....n");
try {
using (var client = new HttpClient()) {
using (var request = new HttpRequestMessage()) {
using (FileStream fileStream = new FileStream(audioFilePath, FileMode.Open, FileAccess.Read)) {
BinaryReader binaryReader = new BinaryReader(fileStream);
byte[] byteData = binaryReader.ReadBytes((int)fileStream.Length);
using (ByteArrayContent content = new ByteArrayContent(byteData)) {
request.Method = HttpMethod.Post;
request.RequestUri = new Uri(apiUri);
request.Content = content;
request.Headers.Add("Authorization", $"Bearer {token}");
request.Content.Headers.Add("Content-Type", "audio/wav");
using (var response = await client.SendAsync(request).ConfigureAwait(false)) {
response.EnsureSuccessStatusCode();
string contentString = await response.Content.ReadAsStringAsync();
Console.WriteLine("Response:n");
Console.WriteLine(JToken.Parse(contentString).ToString());
Console.WriteLine($"nPress any key to exit...n");
}
}
}
}
}
}
catch (Exception e) {
Console.WriteLine($"n{e.Message}nPress any key to exit...n");
}
}
else {
Console.WriteLine("nAuth token not received.nPress any key to exit...n");
}
}
}
}
Comme vous pouvez le constater, nous avons légèrement étendu notre programme et ajouté la possibilité pour l’utilisateur de choisir ce qu’il faut analyser. Regardez la méthode « ConvertAudioToText » – vous verrez qu’elle contient deux URL d’API. Normalement, pour l’API REST de parole à texte, vous pouvez utiliser une clé d’abonnement, mais il existe également une autre option (qui est requise et la seule disponible pour l’API REST de texte à parole) : utiliser un en-tête d’autorisation. La transcription vocale a été réalisée avec l’en-tête d’autorisation pour diversifier les exemples et fournir un aperçu plus large. Lors de l’utilisation de l’en-tête Authorization : Bearer, vous devez envoyer la requête au point de terminaison issueToken. Il vous fournit un jeton, qui sera valide pour l’analyse audio pendant les 10 minutes suivantes. Comme l’audio utilisé est un échantillon standard avec la phrase « What’s the weather like », il a été clairement reconnu par l’API :
Choose what to analyze from the following list:
1 - Image
2 - Audio
2
Get auth token….
Analyzing….
Response :
{
"RecognitionStatus": "Success",
"Offset": 300000,
"Duration": 15900000,
"NBest": [{
"Confidence": 0.96764832735061646,
"Lexical": "what's the weather like",
"ITN": "what's the weather like",
"MaskedITN": "what's the weather like",
"Display": "What's the weather like?"
}]
}
Press any key to exit…
D’après notre expérience, plus le son est clair (sans bruits, etc.), plus le résultat est précis.
Conclusion
L’intégration de l’intelligence artificielle dans les solutions devient de plus en plus populaire de nos jours. Et Azure de Microsoft est l’un des géants qui fournit des services puissants basés sur l’IA, utiles dans de nombreux domaines, faciles à mettre en œuvre et à utiliser. Si vous êtes intéressé par l’utilisation des services cognitifs Azure pour vos applications et que vous avez besoin de quelqu’un pour vous aider, contactez-nous.
À propos de Redwerk
Fondée en 2005, Redwerk est passée d’un groupe d’enthousiastes à une agence à deux sièges qui compte plus de 60 experts du numérique, compétents dans l’utilisation des technologies modernes et convoqués pour élever les industries de pointe à un tout nouveau niveau. En utilisant uniquement des outils avancés, nous créons des solutions fabuleuses et créatives pour les entreprises de toutes tailles à travers le monde. Redwerk est le bon endroit pour externaliser le développement de logiciels personnalisés car notre pile technologique couvre non seulement le codage, mais aussi l’analyse des exigences, l’architecture, la conception UI/UX, l’assurance qualité et les tests, la maintenance, l’administration système et le support. Si vous recherchez une équipe dédiée, une approche personnalisée et de la transparence, alors Redwerk est le guichet unique où votre projet prend vie dans les délais et dans le respect de votre budget.