1

如果浏览器不支持我的项目的语音合成,则尝试使用谷歌的 translate_tts 作为我的后备。

现在我在让 html5 音频正常工作方面遇到了一些麻烦。一整天都在挠头并在谷歌上搜索为什么它对我不起作用。然后我看到一些文章/论坛说这与 IIS 有关。所以我在我的站点之外做了一个测试代码来看看会发生什么,并且很惊讶它可以正常工作!但是,当在 IIS 中运行的原始项目中使用相同的代码时,它不起作用。它在使用 IIS EXPRESS 时有效。我检查了 IIS 中的 MIME 类型,并且那里有 mpeg 和 mp3。

在此处输入图像描述

即使在 javascript 中执行此操作在 IIS 中也不起作用。

TextToSpeech.Audio = document.createElement("AUDIO");
TextToSpeech.Audio.src = url;
TextToSpeech.Audio.playbackRate = 1;
TextToSpeech.Audio.preload = 'auto';
TextToSpeech.Audio.volume = 1; // 0 to 1;
TextToSpeech.Audio.addEventListener('ended', function () {
        //i have some code here...  
});
TextToSpeech.Audio.addEventListener('error', function (error) { });
TextToSpeech.Audio.play();

有没有人遇到过这个问题并碰巧解决了它?您的帮助将不胜感激,谢谢!

更新:在谷歌搜索之后,这可能是因为我是从托管在 IIS 中的站点中调用它的,该站点具有正确的主机名,并且我的 IIS Express 在 localhost:PORT 中运行该站点,Google 将其视为 noreferrer?

4

1 回答 1

0

从最近几天的某个时间开始,谷歌似乎在该服务上放置了一个“验证码”,并使其不再被服务器调用。所以这可能都没有实际意义。

过去您只能将其称为 noreferrer,因此我认为 noreferrer 不是您的问题(或者可能是几天前开始的最少问题)。实际上,解决该问题的一种方法是将 ref='noreferrer' 添加到您的链接中。

这可能是您最初的问题:使用 wget,您必须使用 -U Mozilla 选项,这使得 wget 看起来像是一个浏览器。如果您在没有它的情况下调用 url,它不会返回任何内容。因此,如果有办法让您的 IIS 在调用 google url 时看起来像浏览器,那可能会奏效。

这个链接google text-to-speech artile仍然可以在浏览器中使用,也许这会帮助你以你想要的方式使用它。

然而......从 7 月 28 日开始,在我的 linux 服务器上使用 wget 多年后,我得到一个“503 服务不可用”。可能是因为它是计量的,而且我已经过度使用它......我希望它会重新出现。我只使用它大约 100 次/天。

他们总是说它“不公开”,但它被广泛使用...

因此,如果您仍试图从 IIS 调用它,这可能是相关的,我认为它的行为类似于从 linux 服务器调用它。

于 2015-07-31T23:05:02.587 回答