在 Azure Web App(.NET Framework 4.7)上发布后,“SpeechSynthesizer”不起作用

Posted

技术标签:

【中文标题】在 Azure Web App(.NET Framework 4.7)上发布后,“SpeechSynthesizer”不起作用【英文标题】:"SpeechSynthesizer" not working after publish on Azure Web App (.NET Framework 4.7) 【发布时间】:2020-12-04 01:42:47 【问题描述】:

所以,我正在使用 .NET Framework 4.7 Web API 并使用“System.Speech.dll”朗读一些文本,保存为 WAV,转换为 MP3(使用 LAME),然后附加到另一个 MP3 的开头并返回返回更新的 MP3。

在我当地,一切都很完美。这是实际的代码:

现在,当我在 Azure 上发布到“试用”版(12 个月试用)Web 应用程序后,它无法正常工作,并且我总是收到“502 Bad Gateway Error”(附截图)

现在,我还检查了 Azure 上的“eventlog.xml”文件,发现了这个:

我已经更新了“bin”文件夹,并通过 Azure 中的“高级工具”在其中添加了“System.Speech.dll”。我真的不确定现在是什么问题。

我的最后期限非常紧张,有人可以帮帮我吗?非常感谢,谢谢!

热切地等待积极的回应......

【问题讨论】:

语音合成依赖于 SAPI(语音 API),它很可能没有安装在基于云的共享主机上,或者至少无法访问。您应该改为查看 Azure 文本转语音 API。如果你有一个完整的专用虚拟机,你也许可以让它工作,但这听起来……很贵。 另一个选择是 Docker 容器——如果你让它在本地的 Docker 中工作,那么理论上你应该能够部署那个容器。 您的问题解决了吗?有进展吗? 【参考方案1】:

@CoolBots 说的有道理,但我还是建议你将示例代码上传到 git 中,通过代码发布来测试 azure web app 服务是否支持你的项目。

将代码上传到github,使用持续部署进行操作。建议您选择Linux和windows进行测试。如果测试失败,建议在门户上提出支持票。

如果上述方案最终对你没有帮助,你只能使用CoolBots的建议,也可以使用docker进行部署,比较经济。如果预算充足,虚拟机也是可以的。

【讨论】:

以上是关于在 Azure Web App(.NET Framework 4.7)上发布后,“SpeechSynthesizer”不起作用的主要内容,如果未能解决你的问题,请参考以下文章

从托管为 Azure Web App 的 ASP.NET 5 应用程序记录日志

如何在 Azure Web App 上设置默认页面

在 Azure Web App(.NET Framework 4.7)上发布后,“SpeechSynthesizer”不起作用

在 ASP.Net 5 中的 Azure Web App 中覆盖 config.json 文件中的配置值

从托管在 Azure 中的 Asp.net Core MVC Web App 获取“响应状态代码不表示成功:502(错误网关)”

ASP.NET 4.5 在 ASP.NET Core 2.0 应用程序下的 Azure Web App 中将 502.5 作为虚拟应用程序抛出