*

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

関連記事

BinanceとPoloniexの自動アービトラージシステムを作る2

BinanceのプライベートAPIにちょっと他の取引所とは違うクセがあったので、今回はそれを紹介しま

記事を読む

APIでZAIFとbitFlyerのアカウント情報を取得する 仮想通貨の自動売買開発⑤

ビットフライヤーとZAIFのPRIVATE API ビットフライヤーのPRIVATE APIを使う

記事を読む

ビットコインアービトラージシステム※ただ使いたい人用

ここまで業者間アービトラージシステムのプログラミングの考察?をしてきましたが、 中には「中身がどう

記事を読む

Zaifに自動ログインする【UWSC】

Zaifのログインも基本的には一般的なログインと同じです。 ただし、IPアドレスか何か不明です

記事を読む

【仮想通貨API】アクセス回数の上限を超えて…

各取引所APIでは一定時間の間にたたくことができる回数に上限があります。 ーーーーーーーーーー

記事を読む

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

    "FX"の自動売買システムに興味がある方はinfo@aiforex.infoにご連絡ください。
    担当の方が対応します

    トレード成績はこのブログに掲載しています。


    株、仮想通貨、それ以外の私に対するご連絡は
    infoあっとfxantenna.com
    まで

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

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

ライトコインLTCのアービトラージ取引結果 binance vs poloniex

今回はライトコインのアービトラージ結果です。 最初はレート差1USD

仮想通貨アービトラージに取引所間の送金は必ずしも必要ではない

ここまで話を進めてきていまさら~な感じもするのですが、そもそものところ

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

今回はビットコインキャッシュのアービトラージの取引結果です。

ETH(イーサリアム)のアービトラージの取引結果(Binance vs Poloniex)

前回まででアルトコインのアービトラージの作り方や背景について説明しまし

→もっと見る

PAGE TOP ↑