アーカイブ

投稿者のアーカイブ

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

2012 年 5 月 16 日 コメントはありません
カテゴリー: 未分類 タグ: , , ,

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でサーバーが起動する。

Apache+Passengerでenvironmentの設定

2012 年 5 月 15 日 コメントはありません
カテゴリー: 未分類 タグ: , , , , ,

いままでsinatra使う時にconfig.ruに

set :environemt, :production
とか
set :environemt, :development
って書いてたんだけど、httpd.confに
RackBaseURI /app_path
RackEnv production
って書けばいいのだった。

twitterの発言をskypeに投げる

2012 年 5 月 13 日 コメントはありません
カテゴリー: 未分類 タグ: , , ,

研究会のskype chatで存在感がない人を忘れないために、研究会のtwitterアカウントでfollowしている人の最近の発言をランダムに投稿するようにしている

3時間ごとに投げる。


ここにコードおいてある
https://github.com/shokai/skype-chat-gateway-mac/tree/master/tools/twitter


skypeへの投稿はSkype Chat Gatewayと、WebブラウザからSkypeチャットできるやつ作ったに書いたskype-chat-gatewayを使っている。HTTPでskype chatが使えるスゴイ奴だよ

args_parserを使うとRubyでコマンドラインアプリ作るのにとても便利

2012 年 5 月 11 日 コメントはありません
カテゴリー: 未分類 タグ: , , ,

args_parserというgemを作りました。
2年前に作ったArgsParserをバージョンアップしていたら互換性が無くなってきたので名前を変えた。
optparseよりもすっきり書けると思う。


■インストール

gem install args_parser


■使い方
試しに、「webページのURLを指定してダウンロードする」アプリを作ってみる。
こういう風に使えるのを作る。
ruby download_webpage.rb -url http://example.com -o out.html


download_webpage.rb
#!/usr/bin/env ruby
require 'rubygems'
require 'args_parser'

parser = ArgsParser.parse ARGV do
arg :url, 'URL', :alias => :u
arg :o utput, 'output file', :alias => :o , :default => 'out.html'
arg :verbose, 'verbose mode'
arg :help, 'show help', :alias => :h
end

if parser.has_option? :help or !parser.has_param?(:url, :o utput)
STDERR.puts parser.help
STDERR.puts "e.g. ruby #{$0} -url http://example.com -o out.html"
exit 1
end

require 'open-uri'
puts 'download..' if parser[:verbose]
data = open(parser[:url]).read
puts data if parser[:verbose]

open(parser[:output], 'w+') do |f|
f.write data
end
puts "saved! => #{parser[:output]}"


こんな感じで実行できる。

\r\nのファイルが混じっているので\nに直すワンライナー

2012 年 5 月 9 日 コメント 2 件
カテゴリー: 未分類 タグ: , ,

newgemで生成したgemのテンプレートに改行コードが\r\nのものと\nのものが混じっているのが気持ち悪いので、全部\nに統一した。

find * | xargs -n1 ruby -e 'lines = open(ARGV[0]).read.gsub(/\r\n/, "\n"); open(ARGV[0],"w+").write lines'

実行したディレクトリの中のファイルの改行コードが\nになる。

track feed