问题描述
using (var audioInput = AudioConfig.FromStreamInput(new PullAudioInputStream(new BinaryAudioStreamReader(new BinaryReader(File.OpenRead(audioFile))),AudioStreamFormat.GetCompressedFormat(AudioStreamContainerFormat.MP3))))
using (var recognizer = new SpeechRecognizer(config,sourceLanguageConfig,audioInput))
我已经为Windows安装了最新的GStreamer gstreamer-1.0-msvc-x86_64-1.17.2.msi ,并将其添加到用户的PATH中,并设置了 GSTREAMER_ROOT_X86 。那没用。
的文档中使用GStreamer实现压缩音频的处理。对于 许可原因GStreamer二进制文件未编译和链接 语音SDK。开发人员需要安装几个依赖项,并且 插件,请参阅在Windows上安装。 Gstreamer二进制文件需要存在 系统路径,以便语音SDK可以加载gstreamer二进制文件 在运行时。如果语音SDK能够找到libgstreamer-1.0-0.dll 在运行时,这意味着gstreamer二进制文件在系统路径中。
它说它将查找 libgstreamer-1.0-0.dll ,该版本不再包含在最新版本(1.17.2)中,所以我回到了 gstreamer-1.0-x86 -1.14.1 确实具有必需的dll,但仍然出现相同的错误。
从Visual Studio 2019控制台中,我可以调用该文件夹中包含的exe文件,因此我知道PATH设置正确。
有人知道什么不见了吗?
解决方法
我解决这个问题的方式......(类似于 Artur Kędzior)
使用 1.14.5 版 Gstreamer https://gstreamer.freedesktop.org/pkg/windows/1.14.5/gstreamer-1.0-x86_64-1.14.5.msi - 完成设置
使用 Microsoft.CognitiveServices.Speech 1.13 版(Nuget 包)
转到您电脑上的环境变量并将以下 C:\gstreamer\1.0\x86_64\bin 添加到名为 path 的用户变量中
然后添加一个名为“GSTREAMER_ROOT_X86_64”的系统变量(不带引号)并将值添加到“C:\gstreamer\1.0\x86_64”
如果仍有问题,您可能需要重新启动。但这现在对我有用。
,https://github.com/Azure-Samples/cognitive-services-speech-sdk/issues/764
对此提供了帮助基本上:
- 请勿使用最新版本的Gstreamer
- 使用这个https://gstreamer.freedesktop.org/pkg/windows/1.14.5/gstreamer-1.0-x86_64-1.14.5.msi
- 将 PATH 设置为bin文件夹(C:\ gstreamer \ 1.0 \ x86_64 \ bin)
- 设置 GSTREAMER_ROOT_X86_64 变量(C:\ gstreamer \ 1.0 \ x86_64)
- 重新启动计算机
- 将Visual Studio构建配置设置为 x64