Ruby: Julius で音声認識をする

音声認識エンジン Julius とソケット通信をして Ruby のプログラムから音声認識を行えます。
rubygem の juilus を使うと簡単に作成できます。

 

Gemfile

source 'https://rubygems.org'
gem 'julius'
$ bundle install --path .bundle

julius.rb

#! /usr/bin/env ruby
require 'julius'

julius = Julius.new
julius.each_message do |message, prompt|
  case message.name
  when :RECOGOUT
    puts message.sentence
  end
end

 

Julius はこちらの要領で事前に使えるようにしておきます。

Julius を立ち上げます。-module オプションをつけると、ソケットを待ち受ける状態になり、Ruby や他のプログラムから使用することができるようになります。デフォルトだと 10500 ポートで待ち受けます。

$ julius -C main.jconf -C am-gmm.jconf -nostrip -module

 

いよいよ Terminal で別のタブを開いて ruby ファイルを実行します。

$ bundle exec ruby julius.rb

反応がない場合は julius コマンドを再度実行してみると正しく動作するようになるかもしれません。

 

さっそくいくつか喋ってみます。

もしかして給料日。
家賃の支払い。
クレジットカードの引き落とし。
水道代。
電気代。
ガス代。

ディクテーションキットの精度がなかなか良いようです。