*

仮想通貨取引所のチャット音声自動読み上げシステムを作る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に公開されるので、問い合わせ等はメールでお願いします。

関連記事

仮想通貨取引所のチャット音声自動読み上げシステムを作る1 概要

取引所でデイトレードしているとチャットが目につくことがあります。 注視するほど内容は濃くはない

記事を読む

BCH(ビットコインキャッシュ)のアービトラージの取引結果(Binance vs Poloniex)

今回はビットコインキャッシュのアービトラージの取引結果です。 日本時間 bid(売値)

記事を読む

ビットコインスキャルピングを自動売買でやってみた感想

FXがまだ下火でブームが訪れる前、急な値動きに対して順張りでスキャルピングすることで10万円を億にで

記事を読む

ビットコインの業者間アービトラージでわかったこと

ちゃんと約定する FXの場合、業者間アービトラージをやろうとしても、約定拒否だったり、スリップした

記事を読む

ビットコイン自動売買システムの作り方 一覧

今ならAPIの仕様の改良により、 CoinCheck、ZAIF、bitFlyer、POLONIEX

記事を読む

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

    各トピックに対するコメントは各記事のコメント欄にお願いします。それ以外のご質問、ご相談などは
    infoあっとfxantenna.com
    まで
    私の偽物がいるらしいので偽物にご注意ください。
no image
AWSでWebサーバ構築 (EC2xUbuntu) その6

■メールサーバーの設置 ■AWSにメール用のポート開放の申請

AWSでWebサーバ構築 (EC2xUbuntu) その5

■■FTPサーバーを入れる■■ AWSではちょっと特殊な作業が必要で

AWSでWebサーバ構築 (EC2xUbuntu) その4

■■SSHでサーバに入る■■ いよいよサーバーに入ります。ここからの

AWSでWebサーバ構築 (EC2xUbuntu) その3

■■SSLで接続できるようにする■■ 昨今ではいろいろな理由からSS

AWSでWebサーバ構築 (EC2xUbuntu) その2

■(オプション)Elastic Beanstalk(インスタンスの自動

→もっと見る

PAGE TOP ↑