« 音声認識とひらがな変換むずかしい - ポケミク Webアプリ制作 | トップページ | AndroidのChromeのWeb MIDI APIでsendのtimestampが無視されているっぽい »

2015年3月11日 (水曜日)

Web MIDI APIでAndroidのChromeだけで発生するタイミング問題で困っています。

 先日からいろいろやっている「ポケミクに音声認識でしゃべらせる」が、AndroidのChromeで動かないかな? といろいろやっているのですが、手詰まり。

 音声認識もできてるし、発音データはSysExで送れているのですが、発音がうまくいかない。数十msごとに送られるはずのNote Onがまとまって送られているのか、20文字がたった0.1秒で発音されてるという感じ。もちろん、何を言っているかはわからない。タイミングが変。

 このへんのロジックはオリジナルのKodamaそのまま。

 問題解決へのヒント的なものはここで使われているライブラリ「WebMIDIAPI.js」にありそう。
 (追記:この推測は外れでした。次のエントリに詳細あり)

 このライブラリを使っている別のWebアプリも試してみる。

 Wrapper for Web MIDI API

Webmidiapiwrapperdemo

 アウトプットデバイスを選択すると、鍵盤(Flatkey)とか「Fire MIDI」というボタンとかが出てくる。鍵盤で音が鳴る。「Fire MIDI」では「ドレミファソラシド」と順番にノートが発音される。これがWindowsやMac、iOSでの動作。

 しかし、AndroidのChromeだと、一瞬で発音が終わる。「ドレミファソラシド」になってるかどうかすらわからない。「プツッ」っていう感じ。

 これもタイミングがおかしい。

 ソースを見ても、わからず。解決する知識もスキルもなく(既存のものに好みの機能を足したり、いろいろ組み合わせるのが関の山)。ライブラリの問題なのか、Chromeの問題なのか。

 で、ライブラリに問題があったとしても、WebMIDIAPI.jsを使わずにやるってことは、かなり面倒になりそうで。

 「AndrodのChromeはタイマー関連がおかしいのかなあ」と思い、いくつかチェックするもsetTimeoutとかsetIntervalとははちゃんと動いてるっぽい。

 window.performance.now のあたりなのかなあ?

 それとも。ウチの端末がおかしいだけなのか? 

 で。

 Androidのデバッグを有効にして、WindowsのADBで受けるまでの設定はできたのだけど、そこから先をやる時間がとれず。エミュレーター使ってやったほうがいいいのか? それでUSBデバイス(ここではポケミク)つないで、ってことが可能なのか? 考えるだけでいろいろ面倒。

 ということで、現状のメモでした。


|

« 音声認識とひらがな変換むずかしい - ポケミク Webアプリ制作 | トップページ | AndroidのChromeのWeb MIDI APIでsendのtimestampが無視されているっぽい »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/35726/61266883

この記事へのトラックバック一覧です: Web MIDI APIでAndroidのChromeだけで発生するタイミング問題で困っています。:

« 音声認識とひらがな変換むずかしい - ポケミク Webアプリ制作 | トップページ | AndroidのChromeのWeb MIDI APIでsendのtimestampが無視されているっぽい »