Translations of this page:

SATユーザマニュアル

コマンドラインオプション

% sat [scriptfile]

の形式で起動します。

例1

% sat config.xml

スクリプトファイルconfig.xmlを読み込んで起動します。

例2

% sat adaptor.xml script1.xml script2.xml

スクリプトファイルは任意の数に分けて読み込むことが可能です。 この例ではアダプタ定義部adaptor.xmlと2つのスクリプトファイルscript1.xmlとscript2.xmlを読み込んで起動します。

アダプタ定義

<general name="sample">
  <adaptor name="speechrec" type="julius" host="192.168.136.1" port="9000" code="EUC-JP" />
  <adaptor name="control" type="socket" host="192.168.136.1" port="10000" />
  <adaptor name="talk" type="socket" host="192.168.136.1" port="11000" code="shift-jis" />
</general>

以下のオプションが指定可能です。

name アダプタを区別するID 必須
type アダプタの種類 必須(”julius”または”socket”)
host サーバを立ち上げたホストのIPアドレス 必須
port サーバとの通信に利用するポート 必須
code サーバとの通信に利用する文字コード 任意(デフォルト無変換)

Juliusのモジュールモードでの起動についてはjuliushowtoを参照。

ルール定義

スクリプトは、複数のルールからなります。 ルールの条件部が真となるとルールのコマンド部が起動します。

スクリプトの例

<rule name="main">
  <head>
    <wordmatch name="speechrec.sentence">
      <key>ロボット操作モード[へ変更]</key>
    </wordmatch>
    <state>speechrec.update == now</state>
  </head>
  <state>mode = "control"</mode>
  <stream name="talk">
      (talk "ロボット操作モードへ変更")
  </stream>
</rule>
 
<rule name="robotcontrol">
  <head>
    <state>mode == "control"</state>
    <wordmatch name="speechrec.sentence">
      <key>1歩前進</key>
      <key>1歩前に進んで</key>
      <key>1歩前へ</key>
    </wordmatch>
    <state>speechrec.update == now</state>
  </head>
  <stream name="talk">(talk "1歩前に行きます") </stream>
  <stream name="control">(robot hwalk :set-target-pos 0.2 0 0)</stream>
</rule>

このスクリプトでは、”main”と”robotcontrol”の2つのルールが定義されています。 「ロボット操作モードへ変更」という入力を受けると”main”ルールとマッチし、内部状態modeに値”control”が代入されます。 内部状態modeに値”control”が代入された状態で「一歩前に進んで」という入力を受けると”robotcontrol”ルールとマッチし、ロボット操作サーバへ一歩前へ進むコマンドを送信します。

ルール定義

オプションの説明

<rule>
  <head>[condition]</head>
  コマンド部
</rule>

conditionはそのルールが発火する条件を記述します。以下の表現を使うことができます。

<state>[formula]</state>
<wordmatch>[phrases]</wordmatch>
state表現 ルールの一致条件を式で与える 式が成り立ったときにルール発火
wordmatch表現 phrase 最低一つは必須

state, wordmatchともに複数指定することができ、全てが成り立ったとき(AND条件)にルール全体が発火します。worsmatchは、複数のphraseを指定でき、どれかのphraseが一致すると真になるOR条件で判定されます。ルールが一致すると複数指定されたコマンドはすべて実行されます。

phraseの指定には以下の形式が利用できます。

[subphrase] subphraseがあってもなくても一致する
(subphrase1|subphrase2) subphrase1かsubphrase2のどちらかがあった場合に一致する

例1

一歩前に進んで[ください]

「一歩前に進んで」「一歩前に進んでください」のどちらにも一致します。

例2

(一歩前|二歩前|三歩前)に進んで

「一歩前に進んで」「二歩前に進んで」「三歩前に進んで」のどちらにも一致します。

コマンド定義

streamコマンド

オプションの説明

<stream [option]>[command]</stream>

オプションは以下のものがあります。

name コマンドを書き込むワーキングメモリID 必須

書き込む先のワーキングメモリIDがソケットアダプタに関連づけられている場合、[command]で指定される内容が、ソケットアダプタで指定されるサーバに対して送信されます。

stateコマンド

オプションの説明

<state>[command]</state>

[command]で指定される内容が、式評価されます。

sat/document.txt · 最終更新: 2011/04/16 14:22 (外部編集)
Valid CSS Driven by DokuWiki Recent changes RSS feed Valid XHTML 1.0