2

音声/テキストメモ Web アプリケーションを作成しています。ここ: http://gustavstromberg.se/sandbox/html5/localstorage/ソースを見てください (非常に短く、ほとんどが css です)

これは:

  • 音声認識は、私の知る限りクロムでのみ機能します。
  • ローカル ストレージ。メモをテキストとして保存します。
  • Google 翻訳のテキスト読み上げ。

すべてが機能しますが、ブラウザーが異なります。音声入力はクロムでのみ完璧に機能します。テキスト読み上げはサファリで動作します。

メモを audio>source 要素に動的にロードするには、次を使用します。

$("#spokenmemory").html("<source src='http://translate.google.com/translate_tts?tl=en&q="+localStorage['memory']+"' />");

(localStorage['memory'] には、保存したテキスト メモが含まれています)

最近保存したメモをGoogleのテキスト読み上げ機能で再生するには、次を使用します。

$("#listenplay").click(function(){
    $("#spokenmemory")[0].play();
});

(spokenmemory は私の audio-tag の id 属性です)

これは chrome では再生できませんが、翻訳リンク (例: http://translate.google.com/translate_tts?tl=en&q=Japan、私のテキストメモは「Japan」) にアクセスすると、別のブラウザタブを開き、自分のサイトに戻ってページをリロードすると (同じテキストメモ「Japan」が保存されます)、再生が機能します。なんて奇妙で、うっとうしいことでしょう。

この奇妙な動作について誰か考えがありますか?

4

2 に答える 2

2

これは、サービスが過負荷になるのを防ぐために、Google が特定の種類のリクエストを制限しているためです。そのため、ブラウザがオーディオ ファイルをフェッチしようとしても、オーディオ ファイルはフェッチされません。翻訳リンクにアクセスすると、音声ファイルが取得されてキャッシュされるため、再生が機能します (テキストメモが同じ場合)。これは私の観察ですが、よくわかりません。

ファイルをフェッチするために CURL を使用したとき、これが応答として得られたものです。


403.それはエラーです。

/translate_tts?q=helloクライアントには、このサーバーからURL を取得する権限がありません。


于 2011-07-31T02:47:20.847 に答える
0

私はグスタフを一生懸命試しました、そしてこれは私が少しの研究とテストの後に見つけたものです。

Chromeがmp3(googleが返す形式)のストリーミングに問題があるようです。私が想像できる唯一の解決策は、ファイル(cURL?)をサーバーに取得し、それをユーザーに提示することです。Googleが公式APIをリリースするとき、ある種のフォーマットオプションもあると思います。

http://code.google.com/p/chromium/issues/detail?id=45152

http://www.trygve-lie.com/blog/entry/html_5_audio_element_and(はい、再生ボタンは背景と同じ色で、ファンキーです)

于 2011-05-18T23:05:36.663 に答える