Diary/2007-12

1
気づいたら
23
うろうろ
4
うろうろ2
5678
91011
分岐するプログラムの速度
12
OpenSPARC
13
分岐するプログラムの速度(gcjで)
1415
161718
Juliusで遊ぶ
19
音声認識?
202122
山ごもり
23
山ごもり2
242526272829
Ripplexはじめました。
3031
2007年

Diary/2007-12-31

2007年


いろいろなことがあったようなと、あらためて過去の日記を見返してみる。
いろいろなコンピュータにFreeBSDやらLinuxやらをインストールしたり、
FPGAをちょこちょこっといじってみたり、
Javaでプログラムを書いたり、
卒業したり、就職したり、
そんな感じの一年だったよう。
正直、12月から新しい環境に移ったこともあり、
一年間全体を包括してまとめることができない。

ただ、今年もたくさんの人と新しく知り合いになれたこと、
それが、とってもうれしく、ありがたかった、この一年間。
そして、この一年を楽しく過ごせたことに、
妻をはじめ多くの人に感謝の気持ちでいっぱいな今日、大晦日の夜。

ただ、今から思い返せば、いろいろと無駄な時間の使い方をして、
もったいないことをしたことが悔やまれて仕方がない。

来年は、すべきことをすべきときに片付けることを心がけよう。
そして、来年も最後に楽しかったなぁと笑っていられるような
一年にしよう。

みなさま来年も、どうぞよろしくお願いします。

Diary/2007-12-29

Ripplexはじめました。

http://www.ripplex.com/jpn/index.html
で、知人・友人もみんな使ってくれればいいのになぁと。
いわゆるアドレス帳ソフトなのですが、
アドレス帳にお互い登録している場合、リンクすることができて、
自分の情報を更新すると、その更新が相手に自動的に反映される、と。
つまり、あの人引っ越してないか?とかいちいち心配しなくてよくなる...はず。
いわゆるWebアプリケーションではないですが、
複数のコンピュータにインストールしていても、同期されるらしい。
というわけで、Ripplexを使っている人、使い始めた人、
私の名前と、メールアドレスを登録の上、連絡くださーい。
リプ友(?)になりましょう。
しかし、これ、今までは暗黙のうちに隠されていた情報が
隠されていることがはっきり分かってしまうという悲しさもあるのかな。
あの人、私には住所を教えてくれないのね...とかとか。
iPod touch(iPhone)版とかでないかなぁ...無料で。

Diary/2007-12-23

山ごもり2

せっせと、プログラム書いたり、
キーワードを並べてみたり、そんな一日。
で、時々地下の温泉に行ったり。
ネットワークがなく、なんとも仕事がはかどった気がする。
いかに、いつもメールをチェックして時間をつぶしているか、
よくわかった。

Diary/2007-12-22

山ごもり

というか、とある翻訳本の関係で、
箱根にこもるN先生のところにお邪魔をしに。
いわゆるリゾートマンションというやつで
かなり快適な空間...うちより広いしきれいだし。
地下には温泉な大浴場もあって、のんびり。
唯一の欠点は、ネットワークリーチャブルではないことくらいか。

Diary/2007-12-19

音声認識?

JuliusとMeCabを使って遊んでみたり。
{{files v}}
 mpg123 --rate 16000 --mono --wav `echo $1 | sed 's/mp3/wav/g'` $1
 echo `echo $1 |sed 's/mp3/wav/g'` > tmpfile
 julius -C /usr/local/julius/dictation-kit-v3.0/light.jconf -input rawfile -filelist tmpfile > tmp.result
 touch result.html
 grep sentence1 tmp.result | ruby parse.rb -s $1 > result.html
とか。
QuickTimeの.Stepとかに指定すべき値がよくわからないので、
再生位置があわない...

Diary/2007-12-18

Juliusで遊ぶ

大語彙連続音声認識エンジン Juliusで遊んでみた。
環境は、特に音声環境の設定とかしていないFreeBSD。
インストール
http://julius.sourceforge.jp/index.php?q=newjulius.html
から最新版をダウンロード。
そもそもマイクから入力を得るつもりがないので、
 $ ./configure --with-mictype=oss
 $ make
 $ make install
と適当にコンパイル
で、辞書等々のファイルは、ディクテーションキットよりダウンロードして展開。
http://julius.sourceforge.jp/index.php?q=juliuskit.html
遊んでみる
Microsoft PCM, 16 bit, mono 16000 Hzな音声ファイル test.wavを作成して
 $ julius -C dictation-kit-v3.0/light.jconf -input rawfile
とかして起動。
 enter filename->
とプロンプトがでるので、用意したtest.wavと入力。
で、めでたく解析結果が見られる。
MP3からWAV作成
 mpg123 --mono --rate 16000 --wav hoge.wav hoge.mp3
とか

Microsoft Speech SDK 5.1

で遊んでみようと、サンプルをコンパイルしょうとしたら、
sphelper.h内でのコンパイルエラー。
無理矢理キャストしてみたりして、とりあえずコンパイルできたけど...
よくわからないけど、Microsoft .NET Speech SDKを使えってこと?
sphelper.h.diff
 769c769
 <     const ulLenVendorPreferred = wcslen(pszVendorPreferred);
 ---
 >     const size_t ulLenVendorPreferred = wcslen(pszVendorPreferred);
 1418c1418
 <     static CoMemCopyWFEX(const WAVEFORMATEX * pSrc, WAVEFORMATEX ** ppCoMemWFEX)
 ---
 >     static HRESULT CoMemCopyWFEX(const WAVEFORMATEX * pSrc, WAVEFORMATEX ** ppCoMemWFEX)
 2372c2372,2373
 <         for (const WCHAR * psz = (const WCHAR *)lParam; *psz; psz++) {}
 ---
 >         const WCHAR * psz = (const WCHAR *)lParam;
 >               for (; *psz; psz++) {}
 2559c2560
 <     SPPHONEID* pphoneId = dsPhoneId;
 ---
 >     SPPHONEID* pphoneId = (SPPHONEID*)((void*)dsPhoneId);
 2633c2634
 <                     pphoneId += wcslen(pphoneId) + 1;
 ---
 >                     pphoneId += wcslen((const wchar_t*)((void*)pphoneId)) + 1;

Diary/2007-12-13

分岐するプログラムの速度(gcjで)

Java
分岐するプログラムの速度のプログラムをgcjでコンパイルして実験。
 ./a.out 0 10 1000000 > /dev/null  1.75s user 1.31s system 90% cpu 3.388 total
 ./a.out 1 10 1000000 > /dev/null  2.10s user 1.35s system 99% cpu 3.452 total
 ./a.out 2 10 1000000 > /dev/null  1.78s user 1.32s system 99% cpu 3.105 total
おおお、うれしい。
普通に実行した場合と違って、
複数の異なる機能を持つインスタンスを切り替える場合より
毎回switchで分岐した場合のほうが速いのも特徴か、な。

Diary/2007-12-12

OpenSPARC

OpenSPARC
とりあえず、ダウンロードして展開してみた。
 wc `find . -name \*.v  -print` 
 1648763 4447158 53039733 total
だって...

ひさびさに秋月電子

たまに、Webで商品を眺めてみたりはしてたけど、
実際に足を運んだのはかなり久しぶり。
で、かねてより買おうとおもっていた超音波センサを購入。
あと、コンパレータも。
液晶ディスプレイ関係とか、
USB関係のデバイスもかなりたくさんならんでいて、びっくり。
...はんだごてその他も職場に持ってきてしまおう。

Diary/2007-12-11

分岐するプログラムの速度

Java
ちょっとした実験。
ある数値(その数値はほとんどかわらない)に従って
挙動を変えるJavaプログラムの動作速度の実験
switch文で分岐
 java Test 0 10 1000000 > /dev/null  5.16s user 2.77s system 99% cpu 7.988 total
Methodをつかってinvoke
 java Test 1 10 1000000 > /dev/null  5.46s user 2.87s system 99% cpu 8.388 total
共通のインターフェースを実装したクラスで切り替える
 java Test 2 10 1000000 > /dev/null  5.09s user 2.73s system 99% cpu 7.875 total
switch文で分岐(JNI版:参考まで...)
 java Test 3 10 1000000 > /dev/null  5.63s user 2.84s system 99% cpu 8.545 total
実験環境は、CPU 2.2GHz Intel Core2Duo、メモリ 2GB。
JNI使うなら当然もっと負荷高いことしないとだめ。

MacでJNI

 gcc -PIC -dynamiclib -o libTestJNI.jnilib \
 -I/System/Library/Frameworks/JavaVM.framework/Headers \
 -lstdc++ \
 TestJNI.cxx
{{files}}

Diary/2007-12-4

うろうろ2

今日も朝から東京をうろうろ。
今日もトラブルで電車のダイヤが乱れていた。

Leopardでemacsコンパイル

Carbon版 Emacs 22.1 を Build する
を参考に。

Eclipse3.3に後からPDEをいれる

Europa Discovery Site->Java Development->Eclipse Plug-in Development Environment

Diary/2007-12-3

うろうろ

電車に乗って東京をうろうろ。
久々に乗った方面の電車は、
トラブルでダイヤが乱れていて大変だった。

MacPortsをsvnで

MacOSX
ディスクイメージなバイナリをダウンロード後インストールして
MacPorts 1.5.0 以降で rsync を使わず svn を使う
を参考にsvnでportsを更新...portindexで、たくさん失敗。
しかたないので、MacPorts自身をsubversionで取得してコンパイル。

Diary/2007-12-1

気づいたら

もう12月だし、結婚(書類提出日)から丸2年

Copyright (c) 2001-2008 Takefumi MIYOSHI, All rights reserved