0

CUIでUSBカメラキャプチャ

Mac用


imagesnapを使う
% brew install imagesnap
% imagesnap capture.jpg
capture.jpgに保存される。


連写もできる。ファイル名の後ろに時刻が入るのでどんどん画像が増える。
% imagesnap -t 0.5 capture.jpg

ここからダウンロードしてきてもok
ImageSnap: Capture images from iSight and other sources from the command line


Ubuntu用


% sudo apt-get install fswebcam
% fswebcam -d /dev/video1 -D 2 -r 400 --jpeg 95 capture.jpg
capture.jpgに画像が保存される

連写すると、同じファイルに上書きされる。
% fswebcam -d /dev/video1 -D 2 -l 1 -r 400 --jpeg 95 capture.jpg


あまり連続保存するとディスクが痛みそうなので、ramdiskを使うといい
[Ubuntu]ramdiskを使う – 橋本詳解
[Mac]ramdiskを使う – 橋本詳解

0

Mac/Linuxに日本語を喋らせる

喉が痛いのでなるべくしゃべらないようにしたい。


1. say

Macのsayを使う。
Lionから[システム環境設定]->[スピーチ]->[テキスト読み上げ]で「システムの声」にKyokoを指定すると日本語が読める。
たまに読みを間違えるが良い声だと思う。英語も読めるが、発音が日本人っぽくなる。


2. saykana

Mac用のゆっくり声。
http://www.a-quest.com/quickware/saykana/
インストールすると /usr/local/bin/saykana が使えるようになる。
漢字が読めない。ローマ字は「えーびーしー」のように発音する。


3. Google翻訳の声

前にしゃおさんにGoogle翻訳の声を取ってくる方法を教わった。


さすがGoogle、ほぼ漢字も読み間違えない。ただ声がちょっと怖い。

gsayというコマンドを作った

gsay はい
でしゃべる。

パラメータのjpをenに変えれば英語がしゃべれる。
ubuntuは先にmpg321をインストールしておく必要がある
sudo apt-get install mpg321


4. Open Jtalk

Macにインストールするのは面倒なので、これはUbuntu 12.04でしか使っていない。
sudo apt-get install open-jtalk open-jtalk-mecab-naist-jdic htsengine libhtsengine-dev hts-voice-nitech-jp-atr503-m001
これでopen_jtalkコマンドでwavファイルを生成できるようになる

辞書は /var/lib/mecab/dic/open-jtalk/naist-jdic
音声は /usr/share/hts-voice/nitech-jp-atr503-m001
にインストールされる。


デフォルトの声がちょっと気持ち悪いので、MMDAgentの声をインストールする
mkdir ~/tmp/src
cd ~/tmp/src
wget http://downloads.sourceforge.net/project/mmdagent/MMDAgent_Example/MMDAgent_Example-1.1/MMDAgent_Example-1.1.zip
unzip MMDAgent_Example-1.1.zip
sudo cp -R MMDAgent_Example-1.1/Voice/* /usr/share/hts-voice/


jsayというコマンドを作った。
jsay はい
みたいに使う。


参考

0

MacMiniにVirtualBoxでUbuntu12.04インストールした

家のネットブックのUbuntuマシン(作ったgemがLinuxで動くか確かめたりカメラ/マイク/シリアルポートを使うための実験用)を廃止してMacMiniのVirtualBox内で運用することにした。
GUI付きでインストールするが、GUIはSkype Botのためにしか使わない。基本的にMacMini側からsshでログインしてCUIで操作する。


■Ubuntuインストール

それぞれダウンロードしておく。

VirtualBoxをインストールして、起動。
左上の「新規」から仮想ディスクイメージをHDD16GB/メモリ512MBで作った。


「起動」ボタンを押す。

何も入ってないカラのイメージなので、さっきダウンロードしたUbuntuのイメージファイルを選ぶ。
画面の指示に従ってUbuntuをインストールする。全部デフォルト設定で良い。
途中で「HDDを消すか」と言われて怖いが、さっき作った仮想ディスクイメージの事なので気にせず消す。

インストールが終わったら再起動。


左上の「Dashホーム」からTerminalで検索してターミナル起動する。
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install ssh emacs-nox screen build-essential virtualbox-guest-additions
適当に色々インストールしておく。

あと環境設定からUbuntuがスリープしない様に設定する。


■IPを固定する
家の中ではMacMiniは192.168.1.3で運用しているので、VirtualBoxのUbuntuを192.168.1.4にする。
一度Ubuntuの電源を切ってから、VirtualBoxの設定画面から「ネットワークアダプタ2」を追加、「ブリッジアダプタ」に設定する。


Ubuntuを起動してから、 /etc/networking/interfaces を編集
auto lo
iface lo inet loopback

auto eth1
iface eth1 inet static
address 192.168.1.4
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 192.168.1.1


ネットワークを再起動して設定を有効にする
sudo /etc/init.d/networking restart
sudo ifconfig
192.168.1.4になっていた。

Mac側から接続する。
ssh 192.168.1.4

なお、これは固定IPなのでラップトップとかで持ち歩いて外のWiFiに接続する時とかには設定しない方が良い。
iface eth1 inet dhcp
にして下のアドレス指定してる所を全部書かないか、そもそもネットワークアダプタ1だけで十分だな


■Macから仮想マシンを起動する
Macのterminalから起動できる
VBoxManage startvm "Ubuntu" --type gui
VBoxManage startvm "Ubuntu" --type headless

参考:launchdでVirtualBoxの仮想マシンを自動起動 – komagata
Mac用のLaunchDaemons用plistも設定しておけば、Macの電源入れると同時にVirtualBoxを起動できる。


■Skype botを自動起動
とりあえずSkypeをインストールする。Skypeにはログインパスワードを覚えさせておく。
Ubuntuの右上の電源ボタンから「自動起動するアプリケーション」を選んで、
/usr/bin/skype を指定。Ubuntuを再起動してみるとSkypeが起動する。

一度終了して、上のVBoxManageコマンドからheadlessで起動してもSkypeが起動できた。

同様にskype-chat-gateway-linuxも起動できる。


■家の外からVirtualBoxのUbuntuにログイン
mydns.jpで非固定IPの家の回線にドメイン名を振っているので、外からMacMiniにはsshでログインできるようになっている。

外出中は
Macbook Air ---[インターネット]---> MacMini(shokai.org) ---[家のLAN]---> VirtualBox(192.168.1.4)
という風に多段sshする事にした。ポートフォワードで22番以外でVirtualBoxのsshを外に出してもいいけど。


Macbook Airの ~/.ssh/config に追記する
Host vb-ubuntu
HostName 192.168.1.4
ProxyCommand nohup ssh -l `whoami` shokai.org nc %h %p
全て同じユーザ名でログインしているのでwhoamiで取り出す。

ssh vb-ubuntu
で外からでもVirtualBoxに接続できる。

参考:sshの多段接続がものすごい便利な件 | Carpe Diem

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

UbuntuにMySQL5.1.62インストールした

sudo apt-get install mysql-server-5.1

rootパスワード設定した
localhostからしかrootでログインできないようになってた

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