我正在使用Microsoft Speech API和上的示例代码https://github.com/Azure-Samples/cognitive-services-speech-sdk/tree/master/samples/cpp/windows/console.speech_recognition_samples.cpp
中的SpeechContinuousRecognitionWithFile()
函数几乎完全是我所需要的。
修改此函数时,我将输入文件的名称替换为磁盘上另一个文件"Blutgefäße.wav"
的名称。这导致FromWavFileInput
调用中出现std::range_error
异常,只能通过将文件重命名为"Blutgefaesse.wav"
来修复该异常。
此函数的预期行为是否与国际文件名冲突?我必须使用API的Unicode版本吗?如果是,我在哪里可以找到它?
解决方案是以UTF-8编码提供非ASCII文件名:
u8"Blutgefäße.wav"
顺便说一句,文字记录也是UTF-8编码的。