Azure 认知服务(文本到语音)和 IE 中的音频问题(无效源)

Azure Cognitive Services (Text to Speech) and Audio Issue in IE (Invalid source)

我是 Azure 服务的新手,我需要一些指导。

背景

我正在使用 Azure Text-to-Speech 服务将文本转换为语音,并且从 API 返回的数据保存在 Azure BLOB 存储中。 这是通过一个不断识别新文本、将其转换并保存到 Azure 存储的计划来实现的。当用户登录应用程序时,有一个 HTML5 音频标签链接到 Azure 保存的 BLOB URL 并且它会自动播放转换后的文本。

我已经跟踪了这些 API 中的样本,一切正常。唯一的问题是音频无法在 IE 11 中播放。 它总是给出 "InValid Source" 错误。它在 Chrome, FF 中运行良好。

Google 针对这个特定问题加载了很多解决方案,我几乎都试过了。

1) 使用 MP3 类型而不是我之前使用的 .WAV 文件

2) 明确关闭音频标签

3) 检查浏览器返回的 header 响应。这也是正确的。(Audio/mpeg)

我还尝试在存储中添加一个虚拟 .mp3 文件并从存储中播放它。它工作正常。 因此,我强烈怀疑是从 Text-to-speech API 服务返回的内容以及存储在 Azure 中的问题。

这是该部分的一些示例代码:

Task<HttpResponseMessage> task = TextToSpeechService.ConvertTextToSpeech(textToConvert, gender, voice, this.DataContext);
task.Wait();
if (task.Result.IsSuccessStatusCode && task.Result.Content != null)
{
    Task<byte[]> ttsResult = task.Result.Content.ReadAsByteArrayAsync();
    ttsResult.Wait();
    if (ttsResult.Result != null)
    {
        try
        {
            // Save the audio to Azure Storage
            var fileName = "test.mp3";
            Task<string> storageTask = BlobStorage.CreateBlockBlob("texttospeechsample", fileName, ttsResult.Result, "audio/mpeg");
            storageTask.Wait();
            if (!string.IsNullOrEmpty(storageTask.Result))
            {
                // Save the details
                SaveAudioStorageDetails(storageTask.Result);
            }
        }
        catch (Exception ex)
        {
            throw new Exception("An error occurred while saving audio to azure storage." + ex.Message);
        }
    }
}

任何人都可以建议我还应该尝试什么以及我应该在哪里进一步解决问题吗?

谢谢。

好的,我在这里找到了问题。当我进一步检查 Text-To-Speech API 文档时,我看到请求 header 中有一个输出参数。 X-Microsoft-OutputFormat 定义将从 API.

返回的音频类型

https://docs.microsoft.com/en-us/azure/cognitive-services/speech-service/rest-text-to-speech#audio-outputs

由于我关注的是API样本,所以它使用的X-Microsoft-OutputFormatriff-24khz-16bit-mono-pcm。这应该与我们要保存和播放的音频类型一致。其他浏览器可能能够转换它并正常播放,但 IE 过去总是给出 "Invalid Source" 错误。

就我而言,将其更改为 audio-24khz-160kbitrate-mono-mp3 效果很好,它也在 IE 中正确保存和播放音频。

希望这对某人有所帮助。