1

ブラウザがプロジェクトの speechSynthesis をサポートしていない場合、Google の 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がGoogleがnoreferrerと見なすlocalhost:PORTでサイトを実行している可能性がありますか?

4

1 に答える 1

0

ここ数日のうちに、Google はこのサービスに「キャプチャ」を配置し、サーバーから呼び出されないようにしたようです。したがって、これはすべて議論の余地があるかもしれません。

以前は、noreferrer としてのみ呼び出すことができたので、noreferrer が問題になるとは思いません (または、数日前から発生している問題が最も少ない可能性があります)。実際に問題を回避する 1 つの方法は、リンクに ref='noreferrer' を追加することでした。

これが最初の問題かもしれません: wget を使用する場合、wget をブラウザーのように見せる -U Mozilla オプションを使用する必要がありました。それなしで URL を呼び出した場合、何も返されませんでした。そのため、Google の URL を呼び出すときに IIS をブラウザのように見せる方法があれば、うまくいく可能性があります。

このリンクgoogle text-to-speech artileは引き続きブラウザーで動作します。

しかし... 7月28日から、Linuxサーバーでwgetを使用して何年も使用した後、「503サービスが利用できません」というメッセージが表示されます。計量されていて、使いすぎたからかもしれません...戻ってくることを願っています。私はそれを約100回/日しか使用しません。

彼らはいつも「公開されていない」と言っていましたが、そのように広く使われています...

Linuxサーバーから呼び出すのと同じように動作すると思われるIISからまだ呼び出しようとしている場合、それは関連している可能性があります。

于 2015-07-31T23:05:02.587 に答える