凹みTips

C++、JavaScript、Unity、ガジェット等の Tips について雑多に書いています。

2012-01-01から1年間の記事一覧

node.js の mecab addon 作った

はじめに node.js のオレオレアドオンを拡充していきたいと思います。目的は MeCab そのものでなく、どちらかというと文字列をカタカナに変換したかっただけなのですが、そういえば v8::Array 使ったこと無いなぁと思い、勉強も兼ねて書いてみました。 ちな…

関数/メンバ関数の最初の引数の型を調べる

C++

はじめに とある事情である型の引数を持つメンバ関数があるかどうか調べたいと思って次のようなことをつぶやきました。 ある型の引数を持つメンバ関数を持っているかどうか調べるのってどう書くんだろう。調べてみよう。2012-06-09 20:12:29 via TweetDeckす…

node.js で JavaScript 側で定義した関数を C++ から呼ぶ方法

はじめに 例えば、なんか重い作業が回っていて、それが終わったら JavaScript 側で予めセットしておいた関数を呼びたい!みたいなときに使えます。 参考ページ Callbacks from Threaded Node.js C++ Extension | Brave New Method コード ここでは関数の名前…

v8 で Context をスレッド間で共有してみた

はじめに v8 を利用して、JavaScript 側で定義したコールバックが別スレッドから呼びたかったのでやってみました。具体的には、音声認識エンジン Julius にて、発話待機開始・発話開始・認識終了などのイベントが非同期でやってくるので、それらを JavaScrip…

Node.js 用 Open JTalk アドオンを作ってみた

はじめに Twitterの内容をベラベラ喋ったり、こっちの問いかけに応答してくれるようなシステムを作ろうと思っているので、その一環として作ってみました。 内容は過去の継ぎ接ぎのような感じです。 v8 を利用した C++ から JavaScript へクラスを簡単にエク…

Canvas を使ってみんなもお手軽に弾幕作ろうぜ!! - 其の肆 -

はじめに Canvas を使ってみんなもお手軽に弾幕作ろうぜ!! - 其の壱 - - 凹みTips Canvas を使ってみんなもお手軽に弾幕作ろうぜ!! - 其の弐 - - 凹みTips Canvas を使ってみんなもお手軽に弾幕作ろうぜ!! - 其の参 - - 凹みTips とやってきて第4回目…

JavaScript から iRemocon/Julius/OpenJTalk を制御できるようにした

はじめに v8 を利用した C++ から JavaScript へクラスを簡単にエクスポートするヤツ作ってみた - 凹みTips にて作った C++ クラスを JavaScript に持っていくヤツをちょっと改良しました HAS-Project/v8.hpp at master · hecomi/HAS-Project · GitHub creat…

Canvas を使ってみんなもお手軽に弾幕作ろうぜ!! - 其の参 -

はじめに 前回、敵を表示したので、今回はプレイヤーを表示して操作するところまで作ります。↓のような感じです。 プレイヤーの表示 こんな画像を用意しました。 まずは今までと同じように、 Player の画像やその他情報を Materials に登録 Player クラスを …

Canvas を使ってみんなもお手軽に弾幕作ろうぜ!! - 其の弐 -

はじめに 前回、N-way 弾を発射するところまでやりました。今回は敵を表示するところを書いてみたいと思います。 用意する画像 オリジナルサイズ 拡大 こんな敵の画像を用意しておきます。横方向は時間経過によるアニメーション、縦方向が向きです。 ではこ…

Canvas を使ってみんなもお手軽に弾幕作ろうぜ!! - 其の壱 -

はじめに 勉強がてら Canvas を使ってなにか作りたいなーと思いまして、昔作っていた STG のドット素材を利用して、簡単なマルチタッチ対応 STG を作ってみました。 だんまくてすと 触った指の数だけゆっくりが出てきます。マウスでもプレイ出来ます。死んだ…

v8 を利用した C++ から JavaScript へクラスを簡単にエクスポートするヤツ作ってみた

はじめに 前回、v8 を利用した C++ から JavaScript 側へ簡単に関数をエクスポートして実行するクラスを作ってみた - 凹みTips というエントリを書いたのですが、今回はクラスも簡単にエクスポートできるようにしてみました。前回の内容も踏まえて紹介します…

C++ から JavaScript 側へ簡単に関数をエクスポートして実行するクラスを作ってみた

はじめに V8 と戯れてました。…もとい虐められてました。V8 流行ってから相当経つし、ネット上にかなりの情報が転がってるだろう、とタカをくくって取り組み始めたのですが、やりたかったことを実現しようとすると、うーむ、となってしまい結構悩みました(…

Open JTalk を組み込んでみた

はじめに Open JTalk はバイナリでは配布されているのですが、自分のコードへ組み込むにはどうしたら良いかいまいち分かりませんでした。が、色々試してみてなんとか組み込めたので、その方法を紹介します。 環境 Ubuntu 10.04 LTS gcc version 4.4.3 (Ubunt…

Twitter Streaming API + node.js でブラウザ用簡易 Twitter クライアントを作ってみた

はじめに 前回、node.js で Twitter Streaming API につないでみた - 凹みTips という記事を書きました。今回は取得した情報をクライアント側(ブラウザ側)へ取得した情報を Socket.IO(Socket.IO: the cross-browser WebSocket for realtime apps.) を用…

earthquake.gem の favstar プラグインを改造してみた

はじめに earthquake.gem は Ruby で書かれた超高機能な CUI ベースの Twitter クライアントです。 earthquake.gem いろんなプラグインが公開されていて plugin フォルダにぶっこむだけで試すことができます。 今回はその中の一つの favstar プラグインを改…

node.js で Twitter Streaming API につないでみた

はじめに node.js を触り始めてみました。Twitter Streaming API を色々と弄りたいなと思い導入しようとしたのですが、色々と躓いて時間がかかってしまいました。今は何とか安定して使える環境になったのでメモを残しておきます。 環境 Ubuntu 10.04 node 0.…

Juliusの認識結果をOLLでオンライン学習させてみたら結構良かった

はじめに 前回のエントリでは、OLLによるオンライン学習を試してみました。そこで今回は、Juliusによる認識結果を実際にこのオンライン学習を用いるとどれほど成果が上がるのか試してみた結果を報告します。 データ Juliusの認識結果は@super_rtiさんがgithu…

OLL によるオンライン学習を試してみた

はじめに 音声家電制御に用いている音声認識エンジン Julius の認識結果の精度を高めるために、機械学習を取り入れようと思います。機械学習を Julius に取り込んだ例としては、ルールベースjuliusの誤認識対策にSVMを利用してみよう - お前の血は何色だ!! 4…

非公式 GoogleTTS API から音声ファイルを取得する

C++

背景 Ubuntu 11.10 環境で Open JTalk で TTS(Text to Speech)させようとしたら 10.04 の時のように簡単に導入できなかったので、他の TTS 手段を探していて行き着きました。 はじめに Google TTS は Google 翻訳で結果を喋らせたりするときに使われていま…

Juliusの音声認識結果の信頼性を名詞/動詞のスコアを利用して上げる

はじめに Juliusで音声認識した結果をそのまま利用してしまうと、周りの環境音(ドアを開いた音やテレビの音)に反応してちょっと不便です。しかし、認識結果に含まれている種々のスコアを用いればある程度処理結果の信頼性を高めることができます。そこで本…

Juliusを途中で終了させる

はじめに Julius は j_recognize_stream を実行するとぐるぐるとループに入ってしまって処理が戻って来ません。なので普通に実行してしまうと Ctrl + C で終了させなければならなくなります。しかし Boost.Thread を使ってマルチスレッドで実行すればそんな…

Juliusで認識結果の取り出し方を調べてみた

はじめに 前のエントリでは CALLBACK_RESULT で登録できるコールバック関数の中身で何をやっているのやら…、という感じだったので、Juliusのコードを追っかけてざっと調べてみました備忘録です。何の知識もない人が追いかけたのでかなりの間違いを含んでいる…

Juliusを実行ファイルに組み込む

はじめに 過去のエントリでは Julius をサーバモードとして動かして結果を取ってきていました。今回からは JuliusLib を利用して直接 Julius を突っ込んでみました。 環境 Ubuntu 10.04 gcc version 4.6.1 20110617 (prerelease) (GCC) Juliusの用意 最新版…

Open JTalk で作った wav を OpenAL で再生する

はじめに 前回、Open JTalk で wav ファイルを作成するところまで出来ました。今回はそれを OpenAL を使って喋らせてみます。 環境 Ubuntu 10.04 gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5) boost 1.48.0 Open JTalk version 1.04 OpenAL と alut のバージ…

Open JTalk で MMDAgent のメイちゃんに喋らせてみた

はじめに 家電音声操作結果のフィードバックとして何か喋って欲しいなぁと思い調査していました。そこで Open JTalk を見つけたので色々とやってみることにしました。現在までの情報をまとめておきます。 環境 Ubuntu 10.04 Open JTalkの導入 を参考に導入し…

impress.js で発表資料を作ってみた

impress.jsとは コレです。 impress.js | presentation tool based on the power of CSS3 transforms and transitions in modern browsers | by Bartek Szopka @bartaz グリングリン動きます。Chrome or Safari で見てみて下さい。 ダウンロード github から…

ICU + Mecab で文章をローマ字の読みに変換

はじめに 要は「今日は良い天気ですなぁ。」という文章を「ky o: w a y o i t e n k i d e s u n a:」にして欲しい訳です。音声認識エンジン Julius での言葉の音の定義を行う voca ファイルを自動生成する目的で作りました。 MeCabで文章をカタカナに変換 T…

ICU でカタカナ → ローマ字変換をしてみた

C++

はじめに ちょっと日本語文章からローマ字を生成したかったのでやってみました。 ちなみに ICU とは International Components for Unicode の略です(ICU - International Components for Unicode)。これを利用してみます。 参考サイト ICU4C C++ ローマ字…

変態と名高い Boost.Spirit.Qi を使って Julius の設定ファイルもどきを自動生成してみ…てる途中

はじめに リモコンはオワコン。音声認識でお部屋の家電を操作してみた。 - 凹みTips の設定ファイルたちの記述を楽にしようと現在取り組んでいます。 現在は、IR 信号と言葉の対応付け用の XML、音声解析エンジンの Julius の設定ファイル(grammar ファイル…

リモコンはオワコン。音声認識でお部屋の家電を操作してみた。

はじめに 本エントリは未来のお部屋シリーズの第4弾です。 本シリーズでは、音声認識システムの Julius と TCP/IP 通信で制御できる赤外線学習リモコン iRemocon を繋いで音声認識による家電操作の実現を目指しています。 ついに!音声認識でお部屋の家電を…