首页 > 解决方案 > Azure 认知服务 TTS - 示例应用中其他语言的错误

问题描述

我想为 Azure 认知服务 TTS 实现 api 调用。并感谢@Md Farid Uddin Kiron stackoverflow 用户和我们在此链接上讨论的问题 所以,我提取了一个示例代码,它是一个与 Azure 通信的 .netcore Web 应用程序。示例链接在这里

我有以下问题:该应用程序与模型中的预定义语言完美配合,例如:

    public List<SelectListItem> LanguagePreference { get; set; } = new List<SelectListItem>
    {
       new SelectListItem { Value = "NA", Text = "-Select-" },
       new SelectListItem { Value = "en-US", Text = "English (United States)"  },
       new SelectListItem { Value = "en-IN", Text = "English (India)"  },
       new SelectListItem { Value = "ta-IN", Text = "Tamil (India)"  },
       new SelectListItem { Value = "hi-IN", Text = "Hindi (India)"  },
       new SelectListItem { Value = "te-IN", Text = "Telugu (India)"  }
    };

但是当我添加例如意大利语言(it-IT、hr-HR - 这些是字段值的语言代码)时,代码会在方法 Translate 上的 HomeController 中中断。

标签: c#azureasp.net-coretext-to-speech

解决方案


我已成功重现您的问题。

根据我的发现,语言支持有一些关键点,例如:

  1. 订阅免费订阅不允许所有语言

  2. 支持区域

  3. var requestBody = this.GenerateSsml(lang, "Female", this.ServiceName(lang), content);

注意:不支持女性的语言也可能是问题所在。

您的案例:

LanguagePreference在您的代码中,您可以尝试在列表中使用以下代码

 new SelectListItem { Value = "es-ES", Text = "es-ES,(Spanish)"  }

ServiceName在我用西班牙语测试过的下面的代码上也可以更改,效果很好。

 values.Add("es-ES", "Microsoft Server Speech Text to Speech Voice (es-ES, Laura, Apollo)");

要记住的要点:

我们的代码库没问题。问题与代码无关。请确保您的订阅和地区支持您正在尝试的翻译。还可以在 azure 门户上提高您的支持票。


推荐阅读