2016-12-13 1 views
1

Nous évaluons actuellement le service de reconnaissance vocale Bing dans un scénario de diffusion en direct. Nous recevons un flux en direct de données audio encodées en format PCM (16 Ko samplerate, 16 bits, 1 canal (aka mono)) et nous essayons de l'envoyer au service Bing Speech Recognition.Service de reconnaissance vocale Bing - Problème SpeechClient "Le format audio n'a pas pu être analysé."

Nous avons utilisé avec succès la DataRecognitionClient de https://www.nuget.org/packages/Microsoft.ProjectOxford.SpeechRecognition-x64/ avec notre scénario en envoyant le format audio avant le streaming audio lui-même, comme ceci: _dataRecognitionClient.SendAudioFormat(SpeechAudioFormat.create16BitPCMFormat(16000));

Nous diffusez alors le flux audio dans une boucle comme ceci:

_dataRecognitionClient.SendAudio(buffer, bytesRead); 

Cela fonctionne très bien. Cependant, nous supposons que la bibliothèque ProjectOxford pourrait se dépréciée, depuis le site officiel Discours Bing Reconnaissance (https://www.microsoft.com/cognitive-services/en-us/Speech-api/documentation/GetStarted/GetStartedCSharpServiceLibrary) des points à un paquet Nuget différent, voir: https://www.nuget.org/packages/Microsoft.Bing.Speech/

Lorsque nous utilisons le SpeechClient de ce paquet, nous voyons le mentionné L'erreur "Le format audio n'a pas pu être analysé" lors de l'exécution de RecognizeAsync sur le SpeechClient.

var speechInput = new SpeechInput(producerConsumerStream, 
new RequestMetadata(Guid.NewGuid(), new DeviceMetadata(DeviceType.Near, 
DeviceFamily.Desktop, NetworkType.Ethernet, OsName.Windows, "Azure", 
"Microsoft", "Current"), new ApplicationMetadata("App", "1.0"), "Speech")); 
await _speechClient.RecognizeAsync(speechInput, new CancellationToken()); 

La dernière ligne renvoie l'erreur. Nous supposons que c'est parce que notre flux PCM n'a pas d'en-tête WAVE/RIFF car il est en streaming. Pour le scénario de diffusion en continu, DataRecognitionClient avait la méthode "SendAudioFormat".

SpeechClient ne prend-il pas en charge un scénario de diffusion?

Répondre