Featured Posts

ライセンスについて OpenHRIのライセンスは、Eclipse Public License (EPL)です。 http://www.eclipse.org/legal/epl-v10.html EPLは、コードの改変や再配布、営利利用を許可するオープンソースライセンスですが、場合によっては改変内容をライセンス元に開示する必要があります。 OpenHRIが内部で用いているJuliusやOpen...

Readmore

OpenHRIとは OpenHRIは、音声認識・音声合成・対話制御など、ロボットのコミュニケーション機能の実現に必要な各要素を実現するコンポーネント群です。 フリーで利用できる各オープンソースソフトウェアを使い易いコンポーネントとしてまとめました。

Readmore

ソフトウェアのインストール方法 ソフトウェアのインストールおよび利用方法については、チュートリアルの各ページを参考にしてください。http://openhri.net/tutorial

Readmore

公開しました OpenHRIのソフトウェアおよびWebページの公開を開始しました。

Readmore

  • Prev
  • Next

Julius

 

1.概説

Julius(http://julius.sourceforge.jp/)は、フリーで利用できる音声認識エンジンです。

本コンポーネントは、受け取った音声データをJuliusを用いて音声認識して認識テキストに変換します。

2.動作環境

当RTCの動作に必要な環境を表2-1に記します。

表2-1 動作環境詳細表

区分 要求環境 参考
動作OS Ubuntu Linux バージョン9.10以上を推奨 Ubuntu Linux バージョン8.04以前での動作未確認
OpenRTM

OpenRTM-aist-1.0.0-RELEASE(Python)

OpenRTMの動作に必要なパッケージを含む
Julius バージョン4.1.2以上を推奨 バージョン4.1.2以前での動作未確認

3.コンポーネントのインストール方法

Juliusコンポーネントはopenhrivoiceパッケージに含まれます。コマンドラインで以下のコマンドを入力してください。

% sudo apt-get install openhrivoice

上記コマンドを入力する前にapt-sourceの設定が必要で す。以下のコマンドでリポジトリ登録が可能です。既に登録済みであれば必要ありま せん。

% sudo apt-add-repository ppa:openhri/ppa

パッケージマネージャからのインストールはチュートリアルの「step1 インストール」を 参照してください。

4.コンポーネントの起動方法

コンフィグレーションファイル(ファイル名:rtc.conf)、音声認識文法ファイル、音声認識辞書ファイル、の3つのファイルを同じフォルダ内に用意し、カレントディレクトリを同フォルダに移動して、音声認識文法ファイルをコマンドラインオプションに指定して実行します。

例:Juliusコンポーネント起動コマンド(文法ファイル名sample.xml)

% juliusrtc sample.xml

複数の音声認識文法ファイルを指定したときは指定した数だけJuliusコンポーネントが起動します。

音声認識文法ファイルと音声認識辞書ファイルの書式は「7.音声認識文法フォーマット」を参照してください。

5.入出力ポート情報

各入出力ポートのイメージを図5−1に示します。


図5-1 入出力ポートイメージ図

5.1.データポート

データポートの詳細を表5.1-1に記します。

表5.1-1 データポート詳細一覧表

入出力 ポート名 データ型 説明
入力 data TimedOctetSeq 解析する音声データ入力
入力データパラメータは以下の値で固定
サンプリング周波数:16kHz
チャンネル数:1(モノラル)
フォーマット:16bit
入力 activegrammar TimedString 有効化する音声認識文法
出力 status TimedString 音声認識モジュールの入力データ解析状態出力
”LISTEN”:入力開始
“STARTREC”:入力始端検知
“ENDREC”:入力終端検知
“REJECTED”:入力棄却
出力 result TimedString 解析された音声変換テキスト出力
出力 log TimedOctetSeq 解析した音声データ

6.コンフィグレーションパラメータ情報

コンフィングレーションパラメータの設定はありません。

7.音声認識文法フォーマット

音声認識文法フォーマットは、W3C-Speech Recognition Grammar Specification(http://www.w3.org/TR/speech-grammar/)に準拠します。

当RTCは、W3C-Speech Recognition Grammar Specificationの定めるXML形式フォーマットを使用できます。

以下に認識文法例を記します。

<?xml version="1.0" encoding="UTF-8" ?>
<grammar xmlns="http://www.w3.org/2001/06/grammar"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://www.w3.org/2001/06/grammar
                             http://www.w3.org/TR/speech-grammar/grammar.xsd"
         xml:lang="jp"
         version="1.0" mode="voice" root="command">
 <rule id="command">
  <one-of>
   <item><ruleref uri="#greeting"/></item>
   <item><ruleref uri="#control"/></item>
  </one-of>
 </rule>
 <rule id="greeting">
  <one-of>
   <item>おはよう</item>
   <item>こんにちは</item>
   <item>こんばんは</item>
  </one-of>
 </rule>
 <rule id="control">
  <one-of>
   <item>前進</item>
   <item>バック</item>
  </one-of>
  <item repeat="0-1">
   <ruleref uri="#garbage"/>
  </item>
 </rule>
 <rule id="garbage">
  <one-of>
   <item>して</item>
   <item>してください</item>
  </one-of>
 </rule>
</grammar>

音声認識辞書フォーマットは、W3C-Pronunciation Lexicon Specification(http://www.w3.org/TR/pronunciation-lexicon/)に準拠します。
以下にその例を記します。

<?xml version="1.0" encoding="UTF-8"?>
<lexicon version="1.0"
         xmlns="http://www.w3.org/2005/01/pronunciation-lexicon"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://www.w3.org/2005/01/pronunciation-lexicon
                             http://www.w3.org/TR/2007/CR-pronunciation-lexicon-20071212/pls.xsd"
         alphabet="kana" xml:lang="jp">
  <lexeme>
    <grapheme>おはよう</grapheme>
    <phoneme>{{KANA|おはよう}}</phoneme>
  </lexeme>
  <lexeme>
    <grapheme>こんにちは</grapheme>
    <phoneme>{{KANA|こんにちわ}}</phoneme>
  </lexeme>
  <lexeme>
    <grapheme>こんばんは</grapheme>
    <phoneme>{{KANA|こんばんわ}}</phoneme>
  </lexeme>
  <lexeme>
    <grapheme>前進</grapheme>
    <phoneme>{{KANA|ぜんしん}}</phoneme>
  </lexeme>
  <lexeme>
    <grapheme>バック</grapheme>
    <phoneme>{{KANA|ばっく}}</phoneme>
  </lexeme>
  <lexeme>
    <grapheme>して</grapheme>
    <phoneme>{{KANA|して}}</phoneme>
  </lexeme>
  <lexeme>
    <grapheme>してください</grapheme>
    <phoneme>{{KANA|してください}}</phoneme>
  </lexeme>
</lexicon>