как распознавать речь из файла, System.ApplicationException 0xa SPXERR_INVALID_HEADER - PullRequest
0 голосов
/ 18 июня 2019

Я пытаюсь распознать речь в wav-файле следующим образом:

var config = SpeechConfig.FromSubscription("mykey", "myregion");

using (var recognizer = new SpeechRecognizer(config, AudioConfig.FromWavFileInput(@"/Full/Path/To/File.wav")))
{
    recognizer.Recognized += (s, e) =>
    {
        if (e.Result.Reason == ResultReason.RecognizedSpeech)
        {
            Console.WriteLine(e.Result.Text);
        }
    };

    await recognizer.StartContinuousRecognitionAsync();
}

Но я получаю эту ошибку:

Unhandled Exception: System.AggregateException: One or more errors occurred. (Exception with an error code: 0xa (SPXERR_INVALID_HEADER)) ---> System.ApplicationException: Exception with an error code: 0xa (SPXERR_INVALID_HEADER)
   at Microsoft.CognitiveServices.Speech.Internal.SpxExceptionThrower.ThrowIfFail(IntPtr hr)
   at Microsoft.CognitiveServices.Speech.Recognizer.FromConfig(GetRecognizerFromConfigDelegate fromConfig, SpeechConfig speechConfig, AudioConfig audioConfig)
   at Microsoft.CognitiveServices.Speech.SpeechRecognizer..ctor(SpeechConfig speechConfig, AudioConfig audioConfig)
   at mynamespace.Program.RecognizeSpeechAsync() in Program.cs:line 14
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
   at System.Threading.Tasks.Task.Wait()
   at mynamespace.Program.Main() in Program.cs:line 46

строка 14 является

using (var recognizer = new SpeechRecognizer(config, AudioConfig.FromWavFileInput(@"/Full/Path/To/File.wav")))

линия

Как я на самом деле хотел использовать речевую службу для файла? У меня это работает на входе живого микрофона.

Я просто попробовал еще раз с файлом, отформатированным по-другому (WAV-файл, частота дискретизации 16 кГц, моно), и теперь я получаю эту ошибку:

libc++abi.dylib: terminating with uncaught exception of type
Microsoft::CognitiveServices::Speech::Impl::ExceptionWithCallStack: Exception with
an error code: 0xd (SPXERR_ABORT)
...