J'ai créé une application de test pour authentifier les utilisateurs par l'intermédiaire de Microsoft's Cognitive Speaker Recognition API
. Cela semble simple, mais comme mentionné dans leur Documents de l'API Lors de la création de l'inscription, j'ai besoin d'envoyer le fichier byte[]
du fichier audio que j'enregistre. Comme j'utilise Xamarin.Android, j'ai pu enregistrer le fichier audio et le sauvegarder. Maintenant, les exigences de THAT audio sont assez spécifiques par Microsoft's Cognitive Speaker Recognition API
.
Selon la documentation de l'API, le format de fichier audio doit répondre aux exigences suivantes.
Container -> WAV
Encoding -> PCM
Rate -> 16K
Sample Format -> 16 bit
Channels -> Mono
Suivant cette recette J'ai réussi à enregistrer l'audio et après avoir joué un peu et consulté quelques documents Android, j'ai pu mettre en œuvre ces paramètres également :
_recorder.SetOutputFormat(OutputFormat.ThreeGpp);
_recorder.SetAudioChannels(1);
_recorder.SetAudioSamplingRate(16);
_recorder.SetAudioEncodingBitRate(16000);
_recorder.SetAudioEncoder((AudioEncoder) Encoding.Pcm16bit);
Ce fichier répond à la plupart des critères du fichier audio requis. Mais je ne parviens pas à enregistrer le fichier au format ".wav" et je ne peux pas vérifier si le fichier est bien en cours d'enregistrement. PCM
codé ou non.
Voici mon AXML et MainActivity.cs : Github Gist
J'ai également suivi ce code et je l'ai incorporé dans mon code : Github Gist
Les spécifications du fichier semblent correctes, mais la durée est erronée. Quelle que soit la durée de l'enregistrement, il n'affiche que 250 ms, ce qui donne un son trop court.
Existe-t-il un moyen de le faire ? En fait, je veux juste pouvoir me connecter à Microsoft's Cognitive Speaker Recognition API
via Xamarin.Android. Je n'ai trouvé aucune ressource de ce type pour me guider.