*

仮想通貨取引所のチャット音声自動読み上げシステムを作る5 音声読み上げに特化する

これまでの内容で
・取引所のチャット取得
・音声読み上げAPIで音声ファイルを取得
・AJAXでリアルタイム更新
ができたわけですが、

ここから悪戦苦闘がありました。

まず、ストレートにリアルタイムで取得した音声ファイルをAJAXで再生しようとしたのですが、
どうしてもブラウザがキャッシュを優先してしまい、更新された音声ファイルではなく古い音声ファイルを繰り返し読み上げてしまいました。

htmlのメタタグでキャッシュを不可にする記述もあるのですが、他のブログさんで紹介しているように、まったく効果を発揮しません。
また、JavascriptでAudioオブジェクトのload()メソッドとかもあるのですが、これらも上手くいきませんでした。

さらにオブジェクトを一度削除して新しくインスタンスを生成してもダメでした。

しかも音声ファイルの再生ってブラウザとそのバージョンによって、再生できたりできなかったりするので、もし製品化とかだったらプログラマさん大変ですね。

という訳で、
当初の仕様から方針をかなり変えました。

すべてWEBアプリで完結できればよかったのですが、上記もろもろの理由で現在の仕様では困難なため、
クライアント側から強制的にページそのものを更新する仕様にします。

ページそのものが更新されればブラウザはキャッシュがあっても読み込んでくれるため、新しい音声ファイルを呼び出してくれます。

この場合、ページそのものを更新してしまうので、リアルタイムなチャットテキストの更新は失われてしまいますが、AJAXを使う必要もありません。(何のためのAJAXだったのか…)

そもそもリアルタイムなテキストの更新が目的なら、取引所のページを開けば良いので、今回に限っては音声の読み上げに特化したいと思います。

と言っても、これまでにやった内容から難易度が一気に下がるので、今までの内容をつなぎ合わせるだけでできちゃいます。

あとはこいつを適当なPHPサーバーに上げて何度も呼び出してあげればOKです。(ゴリ押しー)

呼び出しは何でもいいですが、下記はUWSCのコードです。

今まで再帰的にページ内容を更新するときには、IE.Navigateを使っていたのですが、ループの中でこれを使っても音声ファイルが更新されなかったので、refreshメソッドにすれば更新されました。

navigateで同じページに推移した場合とrefreshで更新した場合は、読み込みが微妙に違うんですね

たまにIEオブジェクトの取得に失敗することがあるので、try文でフェイルセイフをかけると安定すると思います。

読み上げのスピードよりもテキストが更新されるスピードの方が早いので、読み上げが途中でも次のテキストに移行する仕様にしました。

以下は稼働している様子を録画したものです。

http://fxantenna.com/chatvoice.html

音量にムラがありますが、これは録画ソフトのせいなので、実際に使う際にはムラはありません。
実ソフトはここに上げてしまうと二次配布になってしまい、音声読み上げAPIの運営に怒られるので、各自キーを入れ替えて実装してください。

これで画面上は他の作業をしながら、もしレートに何かあった場合にはチャット民の悲鳴や歓喜を察知することができます。(ていうか作業が進まない)

bitFlyerのチャットはビットコインに関するコメントが多いですが、アルトコインに関する情報は比較的あんまり流れません。

アルトコインガチホ勢の身としてはコインチェックのチャットの方が聞きたいのですが、コインチェックはチャットAPIがないので、ページからむりやり抽出してみたいですね。

しかし、コインチェックのスマホアプリでチャットが見れるということは、サーバーとアプリの橋渡しはWEB APIで行っているはずですが、それをドキュメントで公開していないということは、何かしらの意図があってAPIを公開していないのかもしれません。

Message

メールアドレスが公開されることはありません。

このコメントはWEBに公開されるので、問い合わせ等はメールでお願いします。

関連記事

bitFlyerx信用取引x成行注文での取引所のバグ

前々から気になっていたのですが、 bitFlyerは信用取引時に変な挙動をすることが多々ありました

記事を読む

MT4から取引所のビットコインレートを取得して比較する

今までMQLしか触ったことがない人にとって、jSONだのHASHだのが出てくるAPIの処理は荷が重か

記事を読む

POLONIEXのAPIでビットコインのヒストリデータを取得 仮想通貨の自動売買⑨

公開:2017/9/4 国内の取引所でもAPIを発行している取引所はいくつかありますが、 ビ

記事を読む

使用言語と方向性 仮想通貨の自動売買開発①

公開:2017/6/21 仮想通貨の自動売買プログラムを書く前に、そもそもどうやってプログラム

記事を読む

仮想通貨取引所のアクセス拒否との死闘と解決策

これまで取引所とさまざまな悪戦苦闘を繰り広げてきましたが、 良いアイディアが思いついたので、一回ま

記事を読む

 
  • ブログ管理人の横瀬兼元(ペンネーム)です。

    各トピックに対するコメントは各記事のコメント欄にお願いします。それ以外のご質問、ご相談などは
    infoあっとfxantenna.com
    まで
    私の偽者がいるらしいのでご注意ください。
【MT4】H4, D1用EA(プレゼント企画)

EURUSD 2018/1/1~2018/12/31 D1

質問回答コラム

Q. 管理人さん自身はEAで運用しているのですか A.  して

【MT5】MACD, ストキャスティクス, モメンタムEA(配布)

GBPUSD 2018/1/1~2018/12/31 H2

【MT5】 3通貨相関アービトラージEA(無料プレゼント)

EUR, GBP, USD の3通貨の相関を利用したさや取りトレード

no image
仮想通貨対応マーチンゲールEA(無料配布)

USDJPY 2018/1/1~2018/12/31 Spread:

→もっと見る

PAGE TOP ↑