将 mp3 文件与 Microsoft.CognitiveServices.Speech 结合使用时出现 SPXERR_GSTREAMER_NOT_FOUND_ERROR

Art*_*ior 4 c# speech-recognition speech-to-text azure-cognitive-services

我有这段代码在标题中抛出错误:

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))
Run Code Online (Sandbox Code Playgroud)

audioFile是带有要转录的音频的 mp3 文件的路径。

我已经安装了适用于 Windows 的最新 GStreamer gstreamer-1.0-msvc-x86_64-1.17.2.msi并将其添加到用户的路径中并设置GSTREAMER_ROOT_X86。那没有用。

在此处的文档中https://learn.microsoft.com/en-us/azure/cognitive-services/speech-service/how-to-use-codec-compressed-audio-input-streams?tabs=debian&pivots=programming-语言-csharp

处理压缩音频是使用 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 设置正确。

有人知道缺少什么吗?

小智 5

我解决这个问题的方法...(类似于 Artur K\xc4\x99dzior)

\n

使用 Gstreamer 1.14.5 版本https://gstreamer.freedesktop.org/pkg/windows/1.14.5/gstreamer-1.0-x86_64-1.14.5.msi - 完整设置

\n

使用 Microsoft.CognitiveServices.Speech 版本 1.13(Nuget 包)

\n

转到电脑上的环境变量,并将以下 C:\\gstreamer\\1.0\\x86_64\\bin 添加到名为 path 的用户变量中

\n

然后添加一个名为“GSTREAMER_ROOT_X86_64”的系统变量(不带引号)并将值添加到“C:\\gstreamer\\1.0\\x86_64”

\n

如果仍有问题,您可能需要重新启动。但这现在对我有用。

\n