0

Juliusで音声認識したのだが、精度が低い

Julius動かしてみたけど、なんだか認識精度が低くてどうしょうもないのですが、何か間違っているのでしょうか・・?


■まずMacにインストールした

sudo port install julius
homebrewにはパッケージはない。


http://julius.sourceforge.jp/からソース持ってきてコンパイルしても使えるらしいが、juliusは32bitでしか動かないし、Lionではcoreaudioではなくportaudioを使わなければならないらしいのでportaudioも32bitでインストールして・・と色々面倒だ。
homebrewのportaudioをuniversal binaryでインストールできなかったので、自分でjuliusをビルドしてインストールはあきらめた。


音声認識する
which julius_demo
julius_demo
でしばらく待つと、
<<< please speak >>>
となってMacのマイクから音声認識できる。
でも大体間違ってる。


wavファイルから認識してみる。
QuickTimePlayerで[ファイル]→[新規オーディオ収録]で録音できる。
m4aで保存されるので、juliusが認識できるフォーマット(モノラル16kHzのwav)にffmpegで変換した。
ffmpeg -i test.m4a -ac 1 -ar 16000 test.wav

julius_demo -input stdin < test.wav
wav入れたらテキストになってでてきた。でもやっぱりあまりうまく認識してくれない・・


julius_demoの中身はshell scriptだった。
#!/bin/sh
/opt/local/bin/julius -C /opt/local/lib/julius/fast.jconf "$@"


■Ubuntuにもインストールした
sudo apt-get install julius libjulius-dev

ディクテーションキットが別に必要になる。
ダウンロードする。
mkdir ~/tmp
cd ~/tmp
wget "http://sourceforge.jp/frs/redir.php?m=jaist&f=%2Fjulius%2F51158%2Fdictation-kit-v4.1.tar.gz"
tar -zxvf dictation-kit-v4.1.tar.gz


さっき録音したファイルを認識させる
julius -C ~/tmp/dictation-kit-v4.1/fast.jconf -charconv EUC-JP UTF-8 -input stdin < test.wav
やっぱり精度が悪い・・どうすれば・・・


-moduleを付けて起動するとTCP port 10050でサーバーが起動する。

0

MacにhomebrewでMySQL5.1.58インストールした

OSX Lionにosx-gcc-installerCommand Line Tools for XCodeHomebrewを入れてある。

MySQLほぼ使ったことなかったのでおっかなびっくりインストールした

brew install mysql++
brew tap homebrew/versions
brew search sql
brew install mysql51


portsが入ってるのでlinkを解決
brew link mysql51


unset TMPDIR
/usr/local/Cellar/mysql51/5.1.58/bin/mysql_install_db


LaunchAgent登録
cp /usr/local/Cellar/mysql51/5.1.58/com.mysql.mysqld.plist ~/Library/LaunchAgents/
launchctl load ~/Library/LaunchAgents/com.mysql.mysqld.plist
ps aux | grep mysql
loadで起動、unloadで止めれる


test DBを消したりrootパスワード設定したりする
/usr/local/Cellar/mysql51/5.1.58/bin/mysql_secure_installation


新規ユーザー追加する
mysql -uroot -p
GRANT ALL on *.* TO shokai@"localhost" IDENTIFIED BY "password";
FLUSH PRIVILEGES;


ログインしてみる
mysql -ushokai -p
mysql> show databases;

0

webブラウザから印刷できるサーバー作った

webブラウザでファイルをアップロードしたり、URLをHTTP-POSTしたら印刷できる奴を作った。研究室のwebサーバーに設置したらわりとウケてた。

出力デバイスとしてプリンタがより手軽に使えるようになる。
例えばメッセージをプリンターから出したりとか、Ethernetにつながったハードウェアから印刷したりとか、いろいろなARマーカーをどんどん吐き出すとかできるのできっと便利。


SinatraからMac/Linuxのlprコマンドを呼び出して印刷する感じの実装をした。
URLをpostされたら、content_typeをチェックしてから、html以外ならダウンロードして印刷、htmlの場合はxvfbとwebkitを起動してキャプチャしてPDFを作って印刷するとかがんばった実装をした。


https://github.com/shokai/print-server




■セットアップ
Sinatraなのでローカルですぐ起動させられる。

git clone git@github.com:shokai/print-server.git
cd print-server
brew install qt imagemagick
gem install bundler
bundle install
cp sample.config.yaml config.yaml
config.yamlにデフォルトプリンタの指定などが書いてある。
Linuxの人はREADME.mdを見ろ。


■起動
ruby development.rb
http://localhost:8080で起動する


■印刷
HTTP POSTで印刷できる
curl -d 'url=http://shokai.org/blog/' http://localhost:8080/url

multipart/form-dataでデータ入稿もできる。


■その他memo
このへんの事をするツールをhelperディレクトリにまとめてある


lprとlpstatで印刷している
ターミナルから印刷する – 橋本詳解


xvfbとwebkit起動してスクリーンショットを撮る
capybara-webkitでwebページのスクリーンショットを撮る – 橋本詳解


ImageMagickをmini_magickから使って、縦長のスクリーンショットを分割した
mini_magickとImageMagickで画像を切り取る – 橋本詳解


Prawnで画像を1つのPDFにまとめる
画像をpdfファイルにまとめる – 橋本詳解

1

BeagleBoard上でmoxaを開発する

Ubuntu 9.04をインストールしたBeagle Boardの上でtalkticのコンパイルとmoxaへ書き込みを行う。刺しっぱなしで開発できるようになるのでとても便利。

xtel technical information > download> ダウンロードから「開発用エクリプスパッケージ for Mac」をダウンロードしてくる。

xtel-eclipseの中の

  • jsc/jsc.jar
    talkticコンパイラ
  • avrdude/bin/avrdude
    avrdude実行ファイル。mac portsでインストールできるavrdudeだと書き込みが怪しい。
    Ubuntu9.04のaptでインストールできるavrdudeは普通に動くのでこれは必要ない。
  • avrdude/etc/avrdude.conf
    avrdudeの設定ファイル
この3つを手に入れて適当にアクセスしやすい場所に置いておく。


■talkticのコンパイル
javaをインストールする
sudo apt-get install default-jre
which java

コンパイル。source.jsからsource.binを作る
java -jar path/to/jsc.jar -Bsource.bin source.js
macでも同じようにバイナリを作れる。


■moxaへの書き込み
avrdudeをインストールしておく。Macはeclipseについてるavrdudeを使う。
sudo apt-get install avrdude
which avrdude

BeagleBoardではUSBデバイス名を書き込んであっても /dev/ttyUSB0 になってしまい、しかもrootしかアクセスできないのでsudoを使って書き込む。
sudo avrdude -C path/to/avrdude.conf -p m128 -c stk500v1 -b 9600 -P /dev/ttyUSB0 -F -U eeprom:w:source.bin:r


Macだとsudoが必要なくて、デバイス名が認識されてるのでこうなる。
avrdude -C path/to/avrdude.conf -p m128 -c stk500v1 -b 9600 -P /dev/tty.usbserial-gemsbok -F -U eeprom:w:source.bin:r


こんな風に書き込んだりプログラム書いたりしてる
ピクチャ 1

ピクチャ 2

0

bootcampで入れたWindowsのパーティションサイズを小さくして、そのぶんMac側を大きくしたらWindows起動しなくなった

追記:これやったらwindows起動しなくなったのでやらないほうがいい・・


Macbook ProにbootcampでWindows XPをインストールしてあるんだけど、最初にインストールした時にWindowsに容量を与えすぎていてMac側が足りなくなってきたのでパーティションサイズを変更した。

Windowsを20GB減らして、その分Mac OSXを20GB増やした。


■準備



■Windowsのパーティションを小さくする
Mac付属のDisk Utilityではfat32パーティションのサイズ変更はできないみたいだけど、
Ubuntuのディスクを入れてCDからブートして(インストールしないで)パーティションエディタというのが上のメニューにあるから起動する。

Macのbootcampアシスタントでwindowsを入れたとすると、画面上で左側にはMacのパーティションがあり、右側にWindowsが入っている。
パーティション・エディタ(gparted)でWindowsのパーティションを小さくして、右に詰める。かなり時間がかかる。

ディスクに変更を書き込む。これで20GB空いた。


■Macのパーティションを大きくする
本来、HFS+でフォーマットしてあるMacのパーティションはMacに入っているDisk Utilityでサイズ変更できるはずなんだけどパーティションマップがエラーを報告しているとかでできなかった。

また、gpartedでもリサイズできなかったので、小一時間悩んだ。


思い切ってバックアップは取ってあるのでMacのパーティションを消す。
gpartedではMacのHFS+でフォーマットできないので、空いた所にフォーマット無しのパーティションを作る。

変更を書き込んでUbuntuは終了させる。


■Macをバックアップから復活させる
Macのインストールディスク(LeopardかSnowLeopard)を入れてalt押しながらMacbookPro起動。

Macのパーティションを消したからかボリューム名がズレて、見た目CDなのにWindowsと書かれたアイコンができるので、それを起動。
Leopardのインストール画面になる。

インストールはせずに、画面の上のメニューからDisk Utilityを起動して、さっき作った未フォーマットのパーティションをHFS+にする。

さらにTimeCapsuleとLANケーブルで直接接続し、「バックアップからシステムを復元」でMac OSXを復活させる
Snow LeopardからLeopardに戻した – 橋本詳解

8時間ぐらい待つ。ばっちり20GB増えてた。



そういえば検索するとWinCloneというソフトを使えと書いてあるページがいくつか出てくるが、WinCloneは最新版の公開が停止されていて、ひとつ古いバージョンを使ったら完全にパーティションサイズが同じでないと書き戻しができなかった。