.net Core 控制台应用程序 Azure 认知服务 MP3

.net Core console app Azure Cognitive Services MP3

我正在尝试使用 Azure Cognitive Services Speech to Text,但我在 .net Core 中遇到了障碍

我使用 audioConfig.FromWafFileInput(); 原生支持 WAV 文件;太好了。

但是我还需要支持 MP3

我找到了压缩音频支持 https://docs.microsoft.com/en-us/azure/cognitive-services/speech-service/how-to-use-codec-compressed-audio-input-streams?tabs=debian&pivots=programming-language-csharp

但是这是引用 PushAudio 流。

这就是我迷路的地方....

我找到了这个流编解码器压缩音频的例子 https://github.com/Azure-Samples/cognitive-services-speech-sdk/blob/master/samples/cpp/linux/compressed-audio-input/compressed-audio-input.cpp

但这不是 C# .net 核心,转换也不是我的强项。

所以是的,有点不知所措。

如有任何帮助,我们将不胜感激 (y)

这个样本:https://github.com/Azure-Samples/cognitive-services-speech-sdk/blob/master/samples/csharp/sharedcontent/console/speech_recognition_samples.cs has compressed audio specific methods here and here。后一个拉流示例看起来非常简单,只需插入您的密钥、区域和文件路径即可。

如果您有文件,特别是如果您有多个文件,则可以从使用 batch transcription 中获益。它原生支持 WAV、MP3 和 OGG 格式的文件。

文档链接到 API documentation,其中还包括模型自定义。在这里你可以select你感兴趣的区域并导出一个swagger文件。可用于以您选择的编程语言生成客户端的 swagger 文件。

对于您的方案,您只需要 4 个 API,并且可以使用标准的 HttpClient 来执行请求。你会想

  • Create a batch transcription.
  • Get your transcriptions 查看状态。如果完成,您将获得接下来需要的 URL。如果失败,您会收到有关问题的消息。
  • Get the results批量转录成功后。具有 TranscriptionReport 类型的对象包含已转录的文件列表,如果转录成功,如果不成功,原因。其他对象包含成功转录的结果。
  • (此处您需要遍历 contentUrls 以下载文件。)
  • Delete the transcription(s),等你拿到结果后。