*

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

https://fxantenna.com/chatvoice.html

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

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

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

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

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

Message

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

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

関連記事

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

最近は便利なものでWEB上でAPIを使って音声読み上げができるんですよね。 一昔前はソフトークとい

記事を読む

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

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

記事を読む

仮想通貨取引所のチャット音声自動読み上げシステムを作る3 AJAXでリアルタイム表示させる

前回はbitFlyerのAPIから最新のチャットを取得するところまでやったので、 今回はそれをリア

記事を読む

【コインチェック】APIが存在しないはずのチャットの自動読み上げシステムを作る

以前、bitFlyerのチャットの自動読み上げシステムを作りましたが、個人的にはコインチェックのチャ

記事を読む

仮想通貨取引所のチャット音声自動読み上げシステムを作る2 APIでチャット内容を取得

bitFlyerのチャットメソッドは https://lightning.bitflyer.jp/

記事を読む

 

  • (↑広告です。このサイトの管理者の運営ではありません)



  • 横瀬兼元(ペンネーム)です。

    ご質問、ご相談などは
    infoあっとfxantenna.com
    まで
    偽者(オリジナルある模倣者)がいるらしいのでご注意ください。
no image
(MT4EA)MACDと特殊ベッティング【EA検証班求ム】 

. . 超シンプルなMACDのEAです

MT4の1分足テストで起こる致命的な現象

1分足っていうのは他の時間枠といろいろ違う点があります。 まず、本題か

no image
【EA検証班募集】コツコツドカンとドローダウン(MT4) ~原理は単純を、構造は複雑を、人は最も人らしく~

EURGBP 2018.11.1~2019.4.30 D1 Sp

MT5のテスターではスプレッドは変更できないという事実

を知らない人が多くて、「このバックテストのスプレッドはいくつですか」と

FX業界の人種マップとその特徴 LP、ホワイトラベル、商材屋さん、開発代行…

FX業界にはさまざまな人種というか役割の人たちがいます。職人気質の開発

→もっと見る

PAGE TOP ↑