我是 Azure 服务的新手,在这里我需要一些指导。
背景
我正在使用 Azure Text-to-Speech 服务将文本转换为语音,并且从 API 返回的数据保存在 Azure BLOB 存储中。这是通过一个计划来实现的,该计划不断识别新文本,将其转换并保存到 Azure 存储。当用户登录应用程序时,会有一个 HTML5 音频标签链接到 Azure 保存的 BLOB URL,它会自动播放转换后的文本。
我遵循了这些 API 中的示例,一切正常。唯一的问题是音频不能在 IE 11 中播放。它总是给出“InValid Source”错误。它在 Chrome、FF 中运行良好。
谷歌为这个特定问题提供了许多解决方案,我几乎都试过了。
1) 使用 MP3 类型而不是我之前使用的 .WAV 文件
2)明确关闭音频标签
3) 检查浏览器中返回的标头响应。这也是正确的。(音频/mpeg)
我还尝试在存储中添加一个虚拟 .mp3 文件并从存储中播放。它工作正常。所以,我强烈怀疑这是从文本到语音 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);
}
}
}
谁能建议我还应该尝试什么以及我应该在哪里进一步排除故障?
谢谢你。