« 2015年2月 | トップページ | 2015年4月 »

2015年3月

2015年3月31日 (火曜日)

USBブート非対応のPCでUSBメモリからブート

 USBブートできないVAIO PCG-Z1VEでLinuxのインストールとかに苦労していたここ数日。毎回DVD-R焼くのはメディアがもったいないし、時間もかかる。とか思っていたら、USBブートを可能にするやつがあるそうだ。その名もPLoP Boot Manager。

 次の機会には試してみよう。メモ。

 あと、上記とは関係ないけど週アスが紙媒体の発行をやめるそうだ。

 週刊アスキーよりお知らせ - 週アスPLUS

週刊アスキーは「完全ネット/デジタル化」によって最強になります

 ですって。

| | コメント (1) | トラックバック (0)

2015年3月30日 (月曜日)

VAIO PCG-Z1VEにPuppy Linuxをインストールするのにひどく苦労

 Androidのインストールが完了したものの、テストに使える状態ではないということで、とりあえずLinux環境でも入れようかとPuppy Linuxを入れることに。思いのほか手こずった。サーバー管理の経験はちょっとあったのだけど、デスクトップOSとしてLinux使うのは初めてなのでわからないことだらけ。知識ゼロからの作業で、用語もあやふやだけど、とりあえず記録を残す。

 せっかくハードディスクを空けたので、いくつかOS試せるようにしようかとパーティションをチェック。ここで1つめの問題が。Z1VEには3つの基本パーティションがある。リカバリ用とWindows XPのシステムが入ったやつと、データ用。最後のデータ用を縮めて空きを作ったのだけど、ハードディスクには基本パーティションは4つまでという制限があるそうだ。パーティションを切ったりすることはほとんどなかったので、ここで面食らう。ということで、拡張パーティションを作ると、その中に論理パーティションを4つまで作れるのだそうだ。とりあえず、20GBの空きがあるので、拡張パーティションを作ってそこに2つほど論理パーティションを作る。そこにPuppy Linuxを入れようという魂胆。しかし、つまずく。

続きを読む "VAIO PCG-Z1VEにPuppy Linuxをインストールするのにひどく苦労"

| | コメント (0) | トラックバック (0)

学研まんが「日本の歴史」が楽天Koboでセール

 子供の頃に小学校の図書館ではマンガ版の歴史本ばかり読んでいた。今はもっとたくさんの同種の本が出ている模様。電子書籍でも多く出ている。でもって、セールで安くなる機会も多い。

 安いから、「甥っ子とかにまとめてプレゼントしたらいいんだろうなあ」と思ったけど、電子書籍じゃだめか。家に端末はあるんだろうけど、親がそれを子供に自由に触らせるわけにもいかず。やっぱり紙のほうがいい場面はまだまだあるなあ、と思った次第。

 今、セールになってるのはこんなやつ。

続きを読む "学研まんが「日本の歴史」が楽天Koboでセール"

| | コメント (0) | トラックバック (0)

2015年3月27日 (金曜日)

VAIO Z1VEでAndroid-x86、タッチパッドが動作しない

 「VAIO PCG-Z1VEにAndroid-x86をインストール」の続き。内蔵タッチパッドが効かない問題の解決方法。ここにヒントが。

 Android-x86 4.4 r1 のタッチパッドが使えなくなったら(TouchPad Disabled on Boot): ムムのファイル置き場

 手順はこんな感じ。

 端末エミュレータを立ち上げ、suでrootに。

 dumpsys input | less でそれらしきデバイスを見る。「|」はShift+「む」スペースキーで2ページ目を表示、Ctrl+Cで抜けられる。2ページめに表示された「AlpsPS/2 ALPS GlidePoint」が内蔵タッチパッドの模様。ConfigulationFileの項目には、「/system.usr.idc/GenericTouch.idc」が指定されている。

 一方、「cd /system/usr/idc」して「ll」(ファイルをリストアップ、DOSでいうdir)でファイルを見ると、GenericTouch.idcは存在せず。タッチパッドのファイルらしき「SynPS_2_Synaptics_touchPad.idc」は存在し、lessで中身を見ると、確かにそれっぽい。ということで、このファイルをコピーして、GenericTouch.idcを作る。「cp SynPS_2_Synaptics_touchPad.idc GenericTouch.idc」とする。これで「reboot」すれば、無事再起動、タッチパッドが使えるようになった。

続きを読む "VAIO Z1VEでAndroid-x86、タッチパッドが動作しない"

| | コメント (0) | トラックバック (0)

2015年3月26日 (木曜日)

VAIO PCG-Z1VEにAndroid-x86をインストール

 古いマシンを有効活用したい。動作確認とかになら使えるかな、とか思い。動くまでえらく時間がかかった。テキトーに調べてテキトーに始めたらびっくりするほどはまりまくり。それでも最大解像度で起動するまではいけた。

 最初は最新が4.3しかないと思い、それでブータブルDVD-Rを焼いた(CD-Rメディアが手元になかったので。あと、USBブートできない機種なので)。起動せず。メディアから起動できるLive CDとかいうやつで起動しないので、インストールしてもやっぱりだめ。そういうもんか。やっぱり。そしたら、4.4も発見。同じページの上にちゃんとあった。最新は別の枠かあ。と思い、さっそく新たなメディアに焼く。結果は同じ。むー。

 で、さらに調べると、CentrinoなPentium M搭載機はSSE3に対応しておらず、それが原因であるという。non SSE3なビルドがあるというので、それを焼く。試す。LiveCDモードで起動。だめ。VESA Modeとかいうのも選べるので、それにすると起動する。タッチパッドはだめだけど、外付けマウスでとりあえず動く。じゃあ、HDDにインストールだ。

続きを読む "VAIO PCG-Z1VEにAndroid-x86をインストール"

| | コメント (0) | トラックバック (0)

2015年3月19日 (木曜日)

Web MIDI API、Androidでsendのtimestampが無視されるので無理やり対処

 「AndroidのChromeのWeb MIDI APIでsendのtimestampが無視されているっぽい」の続き。Web MIDI APIが持っている時間制御がうまくいかないなら時前でやるしかないんだなあ、という結論に。

 ということで、いろいろやったこと、調べたことをメモ。

 まずは、棒読みシーケンサーで作ったやつを利用しようと思ったのだけど、もっと汎用性があるものにしようと判断。オリジナルのsendメソッドに代わるものを作って追加しようと思った。  調べてみると、メソッドの上書きができる模様。新しいメソッド内にオリジナルのメソッドを入れると無限ループみたいになってしまったので、オリジナルはコピーしておいて、それを新しいメソッド内で使うことで対処。無理やり。JavaScriptの、というかプログラミングの作法がまだわかってないけど、それなりに動くようになった。

 sendメソッドのtimestampは、時間を指定する。window.performance.now()で現在の時刻(ブラウザを開いた時点からカウントアップされている)を取得し、xxミリ秒後に発音するなら、「window.performance.now() + xx」みたいな感じで指定する。以下に例を挙げる。

続きを読む "Web MIDI API、Androidでsendのtimestampが無視されるので無理やり対処"

| | コメント (0) | トラックバック (0)

2015年3月17日 (火曜日)

ポケミクに棒読みさせる - ブラウザで動くシーケンサー作った Web MIDI API

 ポケット・ミクに棒読みさせるシーケンサーをWeb MIDI APIで作りました。音楽の演奏よりしゃべらせるほうがおもしろいんじゃないかと思ったり。

 シーケンサーというのは、機械とかで自動演奏させるやつ(雑な説明)。Web MIDI APIのおかげで、JavaScriptで1つプログラムを作れば、Windows/Macはもちろん、iPadとかAndroidのブラウザで電子楽器を制御できます。こんな感じ。


ポケミク 棒読みシーケンサー / POCKET MIKU speaks in a monotone by Web MIDI API Sequencer

 ということで、試せるページはこれ。

 棒読み+ シーケンサー for ポケット・ミク(仮)

使い方

 自動演奏用のデータ、というかシーケンスは16個のスイッチのON/OFFで発音タイミングを。棒読み用なので、音程は考えない方向で。

 とはいえ、それだけだとつまらないので、音程を上下させるツマミ(ノブ)も配置。MIDI信号のピッチベンドを使用しています。一応、画像も。

Pokemikubo

 ページを開いた際にはMIDIデバイスを指定する必要あり。シーケンサーの再生ボタンを押した時にMIDIデバイスが設定されていなければ、設定用ダイアログが出ます。

 SENDと書かれたボタンが右にある入力欄は、歌詞入力用。棒読み用だから、歌詞じゃないか。

 シーケンスには2種のプリセットの読み込みと、全部消すボタンも。手抜きなので、iOSやAndroidだと反応がにぶい(タッチ対応してない)。

デバイスなどの準備

 ポケミクをブラウザで動かすには、Windows、Mac、AndroidではChromeを使用。iOSデバイスではWeb MIDI Browserを使用します(App Storeのリンクは最後)。いずれも無料です。すばらしい。

 Chromeでは最初に以下のURLをブラウザで開いて設定が必要。

 chrome://flags/#enable-web-midi

 「Web MIDI APIを有効にする」の欄にある「有効にする」 をクリックして、Chromeを再起動します。

 (追記:上記操作は現在は不要になりました)

 とか、そのへんはこのプログラムの元になったヤマハのGitHubのページ「Yamaha-WebMusic GitHubPage」に詳しい。

 Web MIDI Browserは面倒な設定は不要。すばらしい。ただ、CHromeももうすぐ上記設定が不要になる模様。

続きを読む "ポケミクに棒読みさせる - ブラウザで動くシーケンサー作った Web MIDI API"

| | コメント (0) | トラックバック (0)

2015年3月12日 (木曜日)

AndroidのChromeのWeb MIDI APIでsendのtimestampが無視されているっぽい

 AndroidのChromeを対象にWeb MIDI APIをテスト。.sendメソッドでデータを送る際にtimestampをパラメータとして与えても無視される。そのため、即時送信されている模様。「Web MIDI APIでAndroidのChromeだけで発生するタイミング問題で困っています。」の続きです。

 以下、調べてわかったこと、その時点で思ったことを時系列に記録。無駄に長い。

 テストしているプログラムの一例はこれ。

 Wrapper for Web MIDI API

 「Fire MIDI」ボタンのクリックでで、ドラミファソラシドと鳴るのだけど、AndroidのChromeでは、すべて一瞬で鳴っているのか、「プツッ」って鳴って終わり。1音だけではないような気がするけど、一瞬すぎてわからない。

 最初は使われている(と、思っていた)ライブラリWebMIDIAPI.jsのせいかと思ったら、現在のChromeではそもそも使われていない模様。Web MIDI API未対応のブラウザのためのものだったようで(何もわからず、AndroidのChromeからadbでログを拾ったりと、えんえんいろいろチェックしてしまったのだけど、なんのヒントも見つけられず。該当ライブラリが使われてないことだけがわかった)。

 で、再度、メインのプログラムを見る。データをMIDIデバイスへの送信に使われているのはsendメソッド。

 sendメソッドではポートにデータの送信を開始する時刻をtimestampで指定できるのだという。以下のリンクにあった。

 Web MIDI API (日本語訳)

 これがちゃんと機能していない。無視される。Chrome Beta(Ver. 41.0.2272.90)でも結果は同じ。

 上のドキュメントの日本語訳を見ると、timestampは「Optional」となっている。むむ。

 オプションだから、AndroidのChromeではサポートされてないのか? RFCのOPTIONALについての文章では、ベンダーの裁量により選択するみたいなことが書いてある(テキトーな解釈)。

 結局、現状ではこのtimestampに頼らずにコードを書いてなんとかするしかなさそう。

 という、素人なりの結論に達した。

 デスクトップのChromeとは別のやり方をしなくてはらないというのは、かなり面倒。どうしよう。今、手を付けているのを放り出したくなった。

 なんか勘違いだったら、逆にうれしいのだけど。

 どなたか、ご存知でしたら教えて下さい。

続きを読む "AndroidのChromeのWeb MIDI APIでsendのtimestampが無視されているっぽい"

| | コメント (0) | トラックバック (0)

2015年3月11日 (水曜日)

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

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

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

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

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

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

| | コメント (0) | トラックバック (0)

2015年3月 9日 (月曜日)

音声認識とひらがな変換むずかしい - ポケミク Webアプリ制作

1_20150309_225439

 「ポケミクに音声認識でしゃべらせる」の続き。ポケット・ミクとWeb Speech APIによる音声認識とひらがな変換の話。

 Webアプリはここです。

 ポケット・ミク 音声認識・発音 Kodama 39

 Web Speech APIの音声認識のロジックは元のプラグラムKodamaそのまま。何も考える必要はありませんでした。すばらしい。で、ソースにはルビ変換を入れるならここ、みたいなコメントがあったのでそれに従います。

 オリジナルのKodamaは日本語しか読みません。ヤマハの開発者の方がひらがなへの変換を入れるのはカンタンなはずなのですが、あえてやっていないのでしょう(ユーザーの活動を促す的な意味?)。

 で、漢字-ひらがな変換をなんとかすることにします。やったことのない類の処理なので不安に思いつつもなんとかなるだろうとスタート。

 最初、変換にYahoo!のルビ振りを使ってみました。

 しかし、これが数字を無視する。数字の認識結果は1245といったアラビア数字になるのですが、これをまったく読まない。ということで、ここからが試行錯誤。

 漢数字にすればいいのでは? ということで、これを試します。
 アラビア数字→漢数字変換(桁付き)する JavaScript - drk7jp

 とってもナイス! ばっちり変換できます。しかし。Yahoo!のルビ振りは数字を漢字に変換しても読んでくれない。これはひどい。一とか四とかは読む。というわけで、「十、百、千、万」を「じゅう、ひゃく、せん、まん」に変換。こうすると、「1254」が「一せん二ひゃく五じゅう四」みたいになるので確実に読んでくれます。しかし、千葉県が「せんばけん」になってしまった。これは完全にこちらのミス。どうしましょう。

 さらに「ミュージシャン」を読まない。ひらがなへの変換で「みゅーじしゃん」になるのですが、今度はNSX-1が音引きの「ー」を読まない。そりゃそうか。音を伸ばせばいいだけだから。最初は音引きを削除してしまえばいいかと思ったのですが、自分で操作して演奏するならまだしも、しゃべらせるときはそうもいかず。「みゅうじしゃん」みたいに変換すればいいのだろうなあ、と気づいた時に思い出しました。そういうのを変換するやつがあったなあ。

 で、結局ミク語変換APIを使うことに。

 音引きを解決してくれるのはもちろん、漢数字変換とあわせて、数字も読みます(「478」は「よんななはち」になるので、変換を挟む)。すばらしい!

続きを読む "音声認識とひらがな変換むずかしい - ポケミク Webアプリ制作"

| | コメント (0) | トラックバック (0)

2015年3月 7日 (土曜日)

ポケミクに音声認識でしゃべらせる

 ポケット・ミクを音声認識でしゃべらせます。

 Webアプリはここ→ ポケット・ミク 音声認識・発音 Kodama 39
 (2016年3月 URL移動しました)


ポケット・ミクに音声認識でしゃべらせる / POCKET MIKU & Speech Recognition

 ヤマハがNSX-1用サンプルとしてMITライセンスで公開しているWebアプリ「音声認識・発音 kodama」を改造。

 パソコンのマイクでしゃべった声を認識し、ポケット・ミク(ポケミク)が日本語で発音します。音声認識はパソコンがやります。

  • ポケット・ミクにも対応(NSX-1モードへの変更は不要)
  • 漢字をひらがなに変換して発音(オリジナルはひらがなのみ)

 このへんがオリジナルとの主な違い。Chromeブラウザで動作。パソコンにポケット・ミクを接続、画面上のマイクボタンをクリックしてデバイスを選択(正常に認識されていれば、NSX-39が選択されているはず)したあと、マイクに向かってしゃべってください(ノートPCなら内蔵マイクがあるはず。デスクトップなら外部マイクを接続してください)。

 初回利用時はChromeの設定が必要。 chrome://flags/#enable-web-midi をアドレスバーに入力後、「Web MIDI APIを有効にする」の欄にある 有効にする をクリックし、Chromeを再起動。

 セットアップ方法やオリジナル版のライセンスは以下のリンクからどうぞ。
 Yamaha-WebMusic GitHubPage へようこそ!

 ポケット・ミクのWebアプリは以下から。こちらも参考にしています。
 ポケミクアプリ | 歌うキーボード ポケット・ミク | 大人の科学.net

 漢字からひらがなへの変換はミク語変換APIを使わせていただきました。
 ミク語変換API

(追記 2015/03/09)

 棒読みがつまらないので、ノブで抑揚をつけられるようにしてみました。

 Web Componentsによるノブはwebaudio-knobを使わせていただきました。
 webaudio-knob
 webaudio-controls

 ノブはKnob Galleryから以下を改変したうえで使用させていただきました。
 kjLEDknob.knob by Keith Johnson © 2015

 このへん、はじめて使いましたが、すごいですね。

(追記終わり)

続きを読む "ポケミクに音声認識でしゃべらせる"

| | コメント (0) | トラックバック (0)

« 2015年2月 | トップページ | 2015年4月 »