22 Oct 2012, 07:30

KinectとMMDを組み合わせて落語をしてみた(その2)

前回の記事に引き続き、Kinect for WindowsとMMDを組み合わせて、落語をしてみたので、アップロードします。

KinectとMMDを使って落語をしてみた。

MMD古典落語3品

寿限無

[http://www.youtube.com/embed/5JpCXKQzJsg]

 

がまの油

[http://www.youtube.com/embed/sVJ5OpWfb8k]

 

あたま山

[http://www.youtube.com/embed/MFW_eOixg_Q]

 

Kinect落語の課題

技術的なところは前回となにもかわっていないけれども、いくつか課題に気づいた。

Kinect で記録できる時間が7分くらいしかない

MikuMikuMovingでモーションを記録していると、7分くらいモーションを記録したところで、記録が止まっていることに気づく。(そのせいで、何度撮り直したことか・・・)

解決策が是非欲しいところ。Youtubeへのアップロード時間も考えると、長い話の場合は、分割したほうがいいのかな?

リップシンクは手動での記録しかみつからない

自分のリップシンクの理想では、音声に合わせて口パクしてくれるソフトが欲しかったが、そのようなソフトは見つからなかった。

手動で、タイミングを教えてあげる必要がある。

それだと、ちょっと時間がかかりすぎるので、挫折。

手動でのリップシンク補助ソフトには以下のようなものがあった。

21 Oct 2012, 11:46

KinectとMMDを使って落語をしてみた。

前回は、Kinect for Windowsと MikuMikuMovingを組み合わせて、3DのキャラクターをKinect で操作する方法を知らべた。

Kinect for Windows によるMMDの使い方

今回は、それをちょっと応用してみて、Kinect で 落語をしてみた。

(実はこれがやりたくて、Kinectを購入した)

味噌豆 on MMD

[http://www.youtube.com/embed/eb3YkpOUrNQ]

演じてみたのは、古典落語の小噺『味噌豆』。

出囃子は志ん生師匠の一丁入りを拝借しています。

(http://www.youtube.com/watch?v=RK0UUX-K31s)

ステージは、MMD演芸場(http://www.nicovideo.jp/watch/sm12172730)

モデルは、双音レンジ(http://mmd.dip.jp/files/320)

を利用させていただきました。

もう少し改善したい点は、

  • 手の仕草(パーしかできない)
  • 表情
  • リップシンク
  • 自分の部屋の狭さ(えっ?(・0・)?)

まあ、鑑賞に堪える(耐える?)ようなので、よしとしよう。

17 Oct 2012, 22:33

Kinect for Windows によるMMDの使い方

MMDが自分の動作に合わせて動いたら楽しそうだなーというだけの理由で、Kinect for Windows をAmazonで衝動買いした。価格は、22000円。

KinectをつかってMMDのモーションをキャプチャーする方法はインターネット上にたくさん紹介されている。しかし、よくよく調べてみると、これはすべて xBoxタイプの方法だった・・・orz。

えっ、Kinect for WindowsだとMMDつかえないの?
2万円したんだよー!

という思いとともにいろいろと調べたら、なんとか使う方法がわかったので、メモしておく。

Kinectには2種類あるらしい

Kinectには、Xboxに接続して使うタイプと、PCに接続して使うタイプの2つがあるらしい。そして、あたしはxboxをもっていないという理由で、PCに接続してつかう、Kinect for Windowsを購入した。

2つの機能比較は、以下のリンクが参考になる。

http://thinkit.co.jp/story/2012/07/03/3605

  • Xboxに接続するタイプ

 

  • PC(Windows 7)に接続するタイプ

 

Kinect for Windowsでミクを動かせ

MMM(MikuMikuMoving)がKinect for Windowsに対応している

MMDではダメだけれども、MikuMikuDanceの互換ソフトMikuMikuMoving(以下MMM)がKinect for Windowsに対応していることがわかった。ダウンロードは以下のサイトから。

MikuMikuMoving

MMMを起動するとリボンの[Kinect]タブをクリックして、キャプチャをクリックすると、Kinectから動作を取り込むことができる。image

こんな感じで、踊ってみた。ふう。

[http://www.youtube.com/embed/mPLmooCeXBM]

他、MoggNUI 導入でMMDをつかう方法について

どうやら、MoggNUI を利用するとMMDでもKinect for Windowsが使えるらしい。

ただし、自分の環境(Windows7 64bit)ではエラーして動かなかった。http://masque2525.blog97.fc2.com/?tag=Kinect

おまけ OpenNIを利用しようとして失敗した記録

失敗1 OpenNIをつかう方法

xboxタイプだと、以下の方法が王道パターン。

  1. OpenNIをインストール。
  2. SensorKinect(Kinectのドライバ)をインストール
  3. NITEをインストールする
  4. DxOpenNIをインストール。

しかし、この方法を試しても、Kinectをデバイスとして認識してくれない・・・。この時点で、Kinect for Windows SDKとOpenNIの両方を使うことができないことに気づく。

失敗2ツꀀ kinect-mssdk-openni-bridgeを試す

kinect-mssdk-openni-bridgeをつかうことで、Kinect for Windowsから OpenNIを利用することができる。ダウンロードは以下から。

kinect-mssdk-openni-bridge

しかし、残念、これをインストールしてもMMDからはOpenNIにアクセスできなかった。

OpenNIがインストールされていませんという注意がでて終了。

12 Sep 2012, 22:47

iRemoconとMMDAgentでマクロと音声認識!初音ミクにおはようしてもらう。

iRemoconが音声認識、マクロに対応!スマホで家電を音声制御できる。

iReomconが10月から音声認識と、マクロに対応するみたい。

スマホから音声で家電を制御できるようになる。

プレスリリースの事例でも紹介されていたけど、『いってきます』をトリガに、クーラーやエアコン、テレビや照明、PC、その他電気機器を全て電源OFFにできる。

Androidのみということで、iPhoneユーザのあたしとしては、

iPhoneの対応を待ち望んでいます!!

2012年09月11日 日本初!グラモ、スマホで一般家電を“音声”制御 ~『iRemocon』ユーザー向けに10月上旬リリース、利用料無料。節電にも ブレスリリース

グラモ

 

現実世界をプログラミングできるなんて、魔法みたい(゜ 0 ゜)/

個人的には、マクロを使って現実世界をプログラミングできることに、感動してる。

マクロを組むということは、

パソコン作業で面倒なルーチンワークを自動化するということだ。

それは、パソコンのなかだけに閉じられたものでしたが、

iRemoconの登場によって、誰でもカンタンに現実世界をマクロで自動化できる。

現実世界をプログラミングできるなんて、スゴイことだ。

しかも、音声認識でITを操れるなんて、もはや魔法を身につけたようなもの。

iRemoconとMMDAgentとTeratermを組み合わせて、音声制御を先取り

依然記事にしたけれど、iRemoconとMMDAgent、Teratermマクロを使うことで、

iRemoconに追加予定の機能は実現できる。

iRemoconでミクミクにしてやんよ。

MMDAgentは音声認識、音声合成をするためのソフト。

しかも、モデルに初音ミクを使うことができる。

Teratermマクロは、iRemoconへ通信してコマンドを実行するドライバ。

これを組み合わせて、音声制御を先取りしてみた。

iRemoconとMMDAgentでミクにいってらっしゃいしてもらう

[http://www.youtube.com/embed/lpUV6RUzvFw]

TTLマクロ

[text]

include “C:\Users\Administrator\DROPBOX\SRC\HAL1000\MACRO\COM\INIT.TTL”

mpause 300

;すべての電気をけす

include “C:\Users\Administrator\DROPBOX\SRC\HAL1000\MACRO\COM\ALLLIGHTSOFF.TTL”

mpause 300

; エアコン消す

sendln ‘*is;313’

; パソコン消す

exec ‘C:\Users\Administrator\Dropbox\src\HAL1000\macro\shutdown_now.bat’ ‘HIDE’

include “C:\Users\Administrator\DROPBOX\SRC\HAL1000\MACRO\COM\END.TTL”

[/text]

初音ミクにいってらっしゃいを言われると、よし、今日もがんばろうとおもう。

そんなことでは、いつになっても結婚できない気がする。

おかえりなさい(ここだけ別の声?! GoogleTTS )

TTLマクロ

[text]

include “C:\Users\Administrator\Dropbox\src\HAL1000\macro\com\init.ttl”

;声

exec ‘C:\Program Files (x86)\Windows Media Player\wmplayer.exe C:\Users\Administrator\Dropbox\src\HAL1000\voice\ComeBack.mp3’ ‘hide’

; 時刻を取得

gettime timestr “%H”

; 文字列を数字に変換

str2int timenum timestr

; 時間帯によって直接照明と間接照明を分ける

if timenum < 18 then

; 直接照明

sendln ‘*is;83’

else

; 間接照明

sendln ‘*is;81’

mpause 300

sendln ‘*is;91’

mpause 300

sendln ‘*is;89’

endif

include “C:\Users\Administrator\Dropbox\src\HAL1000\macro\com\end.ttl”

[/text]

ここでは、玄関にWEBカメラを設置してモーションセンサのソフトを利用して、

ドアの開閉を監視している。(動体検知ソフト Msako

モーションを感知したら、マクロを実行するという仕組み。

今は会社の寮に住んでいるのだが、

たまに大家さんが、自分が会社にいる間に部屋に入ってくることがある。

そのうち、防犯カメラでモーションを検出したら、

壁からゴキジェットを噴射できないか計画中・・・(゜△゜)/

iRemoconとMMDAgentでミクにおやすみなさいしてもらう

TTLマクロ

[text]

include “C:\Users\Administrator\Dropbox\src\HAL1000\macro\com\init.ttl”

pause 5

; 電気を消す

sendln ‘*is;82’

mpause 300

sendln ‘*is;84’

mpause 300

sendln ‘*is;97’

; ブルーLEDライトをつける

mpause 300

sendln ‘*is;91’

mpause 300

sendln ‘*is;86’

;安眠用BGMを流す

exec ‘C:\Program Files (x86)\Windows Media Player\wmplayer.exe C:\Users\Administrator\Dropbox\src\HAL1000\sound/SleepModeBGM1.wav’ ‘maximize’

include “C:\Users\Administrator\Dropbox\src\HAL1000\macro\com\end.ttl”

; ShutDown after 30minutes

; 30分経過

pause 1500

include “C:\Users\Administrator\Dropbox\src\HAL1000\macro\com\init.ttl”

; LED消す。

sendln ‘*is;97’

mpause 300

;AirCon Off

sendln ‘*is;313’

include “C:\Users\Administrator\Dropbox\src\HAL1000\macro\com\end.ttl”

[/text]

部屋を青くできるLED間接照明で、海の中にいる気分(/_-)

そのうちリモコン制御のアロマディフューザーでラベンダーの香りを出そうと計画中。

(いい商品がみつからない!今は手動でアロマディフューザーをつかってる)

流れているのは、Youtubeで落としてきた安眠用の音楽。

余談だが一番の愛用曲は、究極の眠れるCD。これは本当にオススメ!ネれる!

iRemoconとMMDAgentでミクにおはようしてもらう

TTLマクロ

[text]

include “C:\Users\Administrator\Dropbox\src\HAL1000\macro\com\init.ttl”

;AirCon On

sendln ‘*is;312’

; ディズニーのエレクトリカルパレード

exec ‘C:\Program Files (x86)\iTunes\iTunes.exe C:\Users\Administrator\Dropbox\src\HAL1000\sound\MorningModeBGM1.wav’

mpause 7000

;電気つける

sendln ‘*is;83’

mpause 300

; ボリュームをどんどん大きくしていく

for i 1 20

sendln ‘*is;56’

sendln ‘*is;56’

pause 1

next

include “C:\Users\Administrator\Dropbox\src\HAL1000\macro\com\end.ttl”

[/text]

電気がパソコンから制御できるので、

初ボーナスで購入した光目覚ましはドブに捨てた。

ミッキーのエレクトリカルパレードの音楽は、

朝から最大音量まで大きくしていくので、隣の住人はさぞ迷惑だろうぞ。

ちなみに、この動画って、

朝じゃなくて夜中じゃね?ってツッコミがあるかもしれない。

MMDAgentの.fstでの定義はこんな感じにしてる。

[text]

1 3 RECOG_EVENT_STOP|ミク SYNTH_START|mei|mei_voice_normal|はい。

3 261 RECOG_EVENT_STOP|ただいま C:\Users\Administrator\Dropbox\src\MMDAgent\Macro\ComeBack.ttl

261 300SYNTH_START|mei|mei_voice_normal|おかえりなさい。

3 262 RECOG_EVENT_STOP|おやすみ EXECUTE|C:\Users\Administrator\Dropbox\src\MMDAgent\Macro\SleepMode.ttl

262 300SYNTH_START|mei|mei_voice_normal|おやすみなさい。

3 263 RECOG_EVENT_STOP|いってきます EXECUTE|C:\Users\Administrator\Dropbox\src\MMDAgent\Macro\itterashai.ttl 263 300SYNTH_START|mei|mei_voice_normal|いってらっしゃい。

300 2 SYNTH_EVENT_STOP|mei

[/text]

 

16 Jul 2012, 05:10

iRemoconでミクミクにしてやんよ。

はじめに

MMDAgentとiRemoconを組み合わせてみたらなかなか良かったので、まとめてみる。

[http://www.youtube.com/embed/kkcB4gB5A3o]

 

ミクさんに登場してもらうまで

こちらのサイトを参考にしました。

サクライロニガワライ雑記

まずは以下のサイトから、BinaryPackageをダウンロード。

http://www.mmdagent.jp/

MMDAgent.exeを起動すると、メイちゃんが現れるので「こんにちは」と声をかけてみる。

image

これが成功したら、初音ミクのモデルと声を設定する。

モデル

以下のサイトから選択。たくさんあるけど、自分は[初音ミク@七葉1052式]を落としてきた。

http://www6.atwiki.jp/vpvpwiki/pages/298.html

落としてきたモデルは、C:/xxx/MMDAgent/Model/配下にフォルダを作成して配置する。

MMDAgent.fstを開き、140行目あたりの # 0011-0020 Initialization からの

11から下を編集して、モデルファイル(xxx.pmd)を指定する。

ついでに、その下にある2行を消せば、キャラクターの周りのメニューも消えるので、

消したほうが良い。

[text]

11 14 MODEL_EVENT_ADD|bootscreen MODEL_ADD|mei|Model\miku\初音ミク@七葉1052式.pmd|0.0,0.0,-14.0

#12 13 MODEL_ADD|menu|Accessory\menu\menu.pmd|0.0,-4.5,0.0|0.0,0.0,0.0|mei

#13 14 MOTION_ADD|menu|rotate|Motion\menu_rotation\menu_rotation.vmd|FULL|LOOP|OFF

14 15 STAGE|Stage\building2\floor.bmp,Stage\building2\background.bmp

[/text]

再び、MMDAgent.exeを起動して、ミクちゃんにご対面。

image

以下のサイトから、音響モデル(TYPE-a/TYPE-bどちらでもよい)を落とす。

MMDAgent & Project-NAIP wiki

Voice配下にあるフォルダに、落としてきた音声データを上書きする。

コマンド実行をお願いするまで

こちらのサイトを参考にしました。

MMDAgentとPC-OP-RS1で実現するリモコンの音声操作-ナレッジエース

会話からコマンドを実行するには、MMDAgent.fstにシナリオを定義する。

たとえば、電卓を起動して欲しい場合は、こんな感じで記述する。

[text]

1 3 RECOG_EVENT_STOP|ミク SYNTH_START|mei|mei_voice_normal|はい。

232 260 SYNTH_START|mei|mei_voice_normal|電卓つけます。

260 2 SYNTH_EVENT_STOP|mei

[/text]

はじめに、[ミク]と呼びかけて、はいといってくれたら、次の命令を実行させることがミソ。

また、コマンドを実行するには、EXECUTEマクロをつかう。

EXECUTE|(実行したいコマンド)で任意のコマンドを実行できるので、

ここで、後述するTeraTerm用のTTLファイルを指定して、iRemoconへコマンドを送るのだ。

[text]

3 184 RECOG_EVENT_STOP|電気つけて EXECUTE|C:\MMDAgent\Macro\LightsOn.ttl

184 200 SYNTH_START|mei|mei_voice_normal|電気つけます。

[/text]

しかし、これだけでは、多分反応しないだろう。いろいろと言葉を知りすぎているために、

誤認識してしまう。なので、もっとおバカになってもらう。

Julius記述文法の設定

ミクの耳には、オープンソースである音声認識ソフト、Juliusが使われている。

なので、Juliusの記述文法にしたがって、言葉を定義して教える。

まずは、MMDAgent配下にgrammarフォルダをつくって、こんな感じで定義ファイルを作成。

call.grammar

[text]

S : NS_B CALL NS_E

[/text]

call.voca

[text]

% CALL ミク m i k u

こんにちは k o N n i ch i w a

ありがとう a r i g a t o u

なんでもない n a N d e m o n a i

かわいい k a w a i i

みくみくにして m i k u m i k u n i sh i t e

電卓つけて   d e N t a k u t u k e t e

電気つけて   d e N k i k u t u k e t e

電気消して   d e N k i k e sh i t e

% NOISE

sp

% NS_B silB

% NS_E silE

[/text]

作成した2つのファイルは、

Julius 3.5.2に付随しているmkdfa.plを落としてきてコンパイルする。

http://sourceforge.jp/projects/julius/downloads/21175/julius-3.5.2-win32bin.zip/

[text]./mkdfa.pl call[/text]

苦労したこのエントリも参考にしてください。

cygwin 環境で mkdfa.plが動作しない

最後に、/MMDAgent/AppData/Julius配下にjconf.txtというファイルがあるので、

文末に以下の行を追加。

[text]

-nogram

-gram “C:\MMDAgent\grammar\call”

[/text]

-nogramで、すでに登録されている単語をすべて忘れて、
次の行で、今回自分が用意した単語と文法を教えてあげる。
(詳しくはココ)JuliusBook 第7章 言語モデル

iRemoconの設定

まずはiRemoconの調達を。

 

iRemoconに通信するTTLファイルの作り方は以下を参照(結構たいへんなので、説明は割愛)iRemocon 音声操作設定

作成したTTLファイルを音声から実行すると、ミクさんが電気をつけてくれます。

まとめ

5月ごろに以下の動画をみて、自分も家のオートメーション化をしてみたけれど、

ようやく完成な気がした。

MMDAgentは、これからもまだまだ可能性が広がっていきそうだ。

日本製のオープンソースなので、Siriに負けずに頑張って欲しい。

08 Jul 2012, 22:07

初音ミクにiRemoconをつかわせてみた

前回の投稿で、Juliusとの連携はできたので、次はMMDAgentと組み合わせてみた。

以下のサイトのエントリを参考。

MMDAgentにミクさんを表示させるまで ~補足編その1~

サンプルのMMDAgent.fstに追加したい動作を記述。

実行コマンドは、Juliusで使っていたteratermマクロを指定。

[text]

# 0121-0130 AirControlOn

1 121 RECOG_EVENT_STOP|エアコン,つけて EXECUTE|C:\Users\xxx\Dropbox\src\MMDAgent\Macro\AirControlOn.ttl

121 122 SYNTH_START|mei|mei_voice_normal|エアコンつけます。

122 2 SYNTH_EVENT_STOP|mei

# 0131-0140 AirControlOff

1 131 RECOG_EVENT_STOP|エアコン,消して EXECUTE|C:\Users\xxx\Dropbox\src\MMDAgent\Macro\AirControlOff.ttl

131 132 SYNTH_START|mei|mei_voice_normal|エアコン消します。

132 2 SYNTH_EVENT_STOP|mei

[/text]

ただ、サンプルのままだと100発1中の認識率の悪さ・・・・。

なので、ここでもJuliusでつかっていた記述文法を流用。

MMDAgent\AppData\Julius配下にjconf.txtというファイルがあるので、

文末に以下の定義を追加した。

[text]

-nogram

-gram “C:\Users\xxx\Dropbox\src\HAL1000\grammar\please”

-gram “C:\Users\xxx\Dropbox\src\HAL1000\grammar\call”

-gram “C:\Users\xxxDropbox\src\HAL1000\grammar\mode”

[/text]

-nogramで、すでに登録されている単語をすべて忘れて、

次の行で、今回自分が用意した単語と文法を教えてあげる。

(詳しくはココ)JuliusBook 第7章 言語モデル

そうすると、

メイちゃんは今までの記憶をすべてわすれ、

再帰的に、ひたすらエアコンをつけようとする。(それしか単語を知らない)

きっと地球が滅びるその日まで、ひたすら彼女はエアコンをつけ続けるだろう。

MMDAgentで、初音ミクのモデルも試してみた。

メイちゃんよりもこっちのほうが頭がいいみたい。