Saqoosha

Starling Framework vs BitmapData.copyPixels

Blog

Flash Player 11 の GPU レンダリング機能 (Stage3D) をつかって従来の DisplayObject を高速化してみようなフレームワーク、Starling Framework。どんぐらい変わるのかのベンチマークっぽいこと(どこかでみたことのあるアレ)をしてみたのだけど、逆に遅い。


  • exp01: Starling Framework つかったやつ。CPU 使用率 100% こえる。30 fps いくかいかないか。ふらふら。

  • exp02: BitmapData.copyPixel つかったやつ。CPU 使用率 30% ぐらい。もちろん、30 fps コマ落ちなし。

  • ソースとか


プロファイルしてみたところ、VertexData の更新が負荷高いぽいので、まあ、使い方がアレなんだろうなー、でも、こういうのって GPU 得意そうなんだけど。

・・・

9/28 12:00 追記:別の Stage3D 用 2D フレームワーク(ややこしい)ND2D で組んでみたら、すげえ軽くなった。


9/28 21:00:同じことしてるひといた。

Flash だけで音声認識してみるテスト

BlogFlash

おんせいにんしきーっていうワードが聞こえてきたので、ちょっと時間あったので、オープンソースの Julius っていう音声認識エンジンAlchemy つかって Flash に移植してみましたです。いちおう使えるレベルだけど、やっぱ遅いなー。まあ、死んでると思ってた Alchemy も Adobe が本気で開発すすめるみたいなので、そのうちもっとましになるじゃろ。

Julius for Flash のテストこつら


  • 初期化おわるまでまつ。(辞書ファイルがでかい)

  • PLAY で聞く、RECOGNIZE で認識テスト。

  • LOAD WAV FILE で任意の WAV ファイル認識させてみる。(16KHz 16bit モノラルしかダメ)

  • さすがに NHK ニュースの認識率は高い。

  • ソース一式。(コンパイルするのはむずいかも)


C/C++ で書いてあるライブラリでも、Flash には Alchemy、AIR には ANE、Chrome に Native Client てかんじで Web でも意外といろいろ使える気がする。

Categories: Flash

Comments (2)

  • [...] 音声認識できたんなら音声合成もできるじゃろーつうことで、オープンソースの日本語音声合成エンジンの Open JTalk ていうのを Alchemy つかって Flash に移植してみました。音声合成のコアである hts_engine (+Flite) を移植したやつは発見したけど日本語ダメだったのでやってみましたえ。まあ、やっぱり遅いけど、ちゃんと動いてる、けど、日本語対応のために内部でつかわれてる MeCab 用の辞書ファイルがでかすぎるのなー。。 [...]
  • [...] 今回はas3からのPOSTだったので、bytearrayのみ送ろうと考えてたんですけど、 よくよく考えたら一緒にtweet文言送ったり一緒にいろいろしないといけないので、 一緒に送れる形としてbase64Encodeかけた文字列としてPOSTの一部にして送ることにしました。 ここ、POSTの一部としてバイナリ(bytearray)送って、PHP側でエンコードかけるときとかどうすればいんだろ?? (まー別にbase64エンコード&デコードで何も問題はないと思うんですが。。) あとここ、きんくまさんのように、multipart/form-data の Requestheader つくって送れるようにしておけば 受け取り側でいろいろごにょごにょ変えたりしなくて済みますね!素敵! きんくまさんのところ。 [AS3] PHPとAS3の連携 as3から直接 multipart/form-data でデータのアップロード! Flashからアップロードする方法いろいろはこちら。バイナリのままアップロードする方法が分かる! さてここからflashぽく、flash使った何かをやってみる。 それで最終的に絵を作ってそれを投稿できたら一旦、モックとしてのゴールとしますかね。:-) で、てらこのお題として新年あけましておめでとうって書いてあったので、まー投稿する画像はあけましておめでとうがいいよね。ってことで、あけましておめでとうって言ったら勝手に画像にされて、それがtweetされるとかにしてみようかな。単純ー。 さてじゃあ音声認識かー。ようやくここでAlchemyってやつに初挑戦ですね。(`・ω・´)キリッ 思い起こせば表参道での奥田さんとか、blogでのsaqooshaさんとか、F-siteでの山田さんとか、いろんな人の発表やらblogを読んでネイティブの言語との連携にときめきつつ、ほんとやりたいやりたいと思いつつ、全くそこまで行けてなくて(結局今も全然分からんままやけど。。)、、でもまず挑戦! まず Alchemy Toolkit for Mac OSX (ZIP, 40.5 MB) だうんろーど。 このタイミングで Flash Builder 4.6 と Flex 4.6 SDK がDLできることに気付いてさっそくダウンロード。(これくっそ時間かかった。そしてめんどくさすぎる。。 ここからのあたりはamachangさんの見ながらやると何も問題ないよ!素敵! flex_sdk 4.6 入れる。(FlashBuilder4.6入れたらそれのSDKへのpath追加しとけばおk) → コンパイルできるようにする。 Alchemy Toolkit Package 入れる。 → セットアップ(./config実行して、alchemy-setup )する。 (あれ?これ毎回、$ source alchemy-setup でセットアップから始めないとダメなん?) おぉ、alc-on, alc-off で環境変数に alchemy へのパスが追加できたり消したりできるわけね。 で、問題なく読み進めて行くと HelloFlash! で gcc HelloFlash.c すると -rwxr-xr-x 1 *** staff 258119 1 13 12:13 a.exe -rwxr-xr-x 1 *** staff 8672 1 13 12:12 a.out みたいな感じで a.exeファイル ができるのでそれを実行するとー。 $ ./a.exe /Applications/Adobe Flash Builder 4.6/sdks/4.6.0/bin/adl _sb_29715/app.xml 2> /tmp/adl.trace & echo $! Hello Flash! できたー(・∀・) 2個目の stringecho ではtraceを吐くswfを作るんだけども、ここでswcへのコンパイルの仕方と、それを使ってのswfへの書き出しが分かる。:-) で、 $ mxmlc -library-path+=stringecho.swc –target-player=10.0.0 as3/EchoTest.as の部分で、FlashBuilder4.6にはデフォルトではplayerが11.1からしか入ってないので $ mxmlc -library-path+=stringecho.swc –target-player=11.1 as3/EchoTest.as で /as3/EchoTest.swf (76878 バイト) 書き出せたー(・∀・) はい次、自分でつくる段階。 ■hello.c [...]

Flash だけで音声合成してみるテスト

Blog

音声認識できたんなら音声合成もできるじゃろーつうことで、オープンソースの日本語音声合成エンジンの Open JTalk ていうのを Alchemy つかって Flash に移植してみました。音声合成のコアである hts_engine (+Flite) を移植したやつは発見したけど日本語ダメだったのでやってみましたえ。まあ、やっぱり遅いけど、ちゃんと動いてる、けど、日本語対応のために内部でつかわれてる MeCab 用の辞書ファイルがでかすぎるのなー。。

OpenJTalk for Flash のテストはこつら


  1. ロード待つ。(辞書ファイルが 60MB ぐらいある)

  2. テキストエリアに入力する。

  3. パラメータの意味はあましよくわかてないけれども、"FRAME PERIOD" はしゃべるスピード(でかい=ゆっくり)、"ALL-PASS CONST" 声質?、"SPECTRUM WEIGHT" 音量が変わってるようにしか?、"LOG F0 WEIGHT" イントネーション?、"LOW-PASS FILT WEIGHT" 変化なし?

  4. "SYNTHESIS" クリックして待つ。

  5. ベースの音声ファイル?は MMDAgent に含まれる Mei (normal) を使ってます。

  6. ソース一式こちら


副産物で MeCab が Flash オンリーで使えるようになった、辞書ファイルでかすぎるから実用むずいけど。