コンテンツの全体像

対話コンテンツの構成について

はじめに

「対話コンテンツ」とは対話システムの様々なコンポーネントを定義するファイル群です。3-Dモデル、モーション、対話シナリオ、音声認識用タスク辞書、音声合成用ボイスモデル、画像、テキスト、ステージ定義、設定ファイル等から構成されます。これらを自分で作成・編集することで、自由に音声対話や音声インタラクションのシステムを構築することができます。

ここではコンテンツを構成するコンポーネント群の構成と概要を説明します。具体的な作成・編集方法、ファイル名の決まり等はファイル形式以下の各ページをご覧ください。

対話コンテンツはおおよそ以下のファイルから成り立ちます。必須なのは .mdf ファイルのみで、その他は必要に応じて作成します。[*] がついたファイルはコンテンツ直下のフォルダに置く必要があります。

 topdir/
  |- スタートアップ・設定ファイル (.mdf) [*]
  |- 対話シナリオFST (.fst) [*]
  |- 音声認識用辞書 (.dic) [*]
  |- 高速音声認識用辞書 (.rapiddic) [*]
  |- Julius 設定ファイル (.jconf) [*]
  |- Open JTalk 設定ファイル (.ojt) [*]
  |- ボタン定義 (BUTTON0.txt - BUTTON9.txt) [*]
  |- パッケージ定義 (PACKAGE_DESC.txt) [*]
  |- README (README.txt) [*]
  +- (サブディレクトリ以下に置いてもよい)
      |- 3-D モデル (.pmd)
      |- モーション (.vmd)
      |- Open JTalk 用ボイスモデル (.htsvoice)
      |- 背景・床の画像 (画像, xpmd)
      |- 音・音楽ファイル (sound files)
      |- その他、表示する画像やテキスト

スタートアップ・設定ファイル (.mdf)

.mdf ファイルはスタートアップ・設定のためのファイルで、MMDAgent-EX の設定オプションを記述するテキストファイルです。このファイルはあらゆるコンテンツで必ず必要です。たとえ設定が不要なときも、空のファイルを .mdf として作成してコンテンツに含める必要があります。.mdf で設定できる全てのパラメータ一覧はこちらで確認できます

# example of .mdf file
display_comment_time=0
stage_size=50.0,25.0,40.0
campus_color=0.722,0.431,0.737
light_direction=0.0,1.0,1.0,0.0
use_shadow_mapping=true
exclude_Plugin_LookAt=true

対話シナリオ (.fst)

.fstファイルは、対話・インタラクションの内容を定義するファイルです。形式は OpenFST 形式に準拠しています。また、ローカル変数や正規表現、さらに独自の記述様式等の拡張をサポートしています。具体的な対話シナリオの書き方はこちらをご覧ください

# example of .fst file
 0     10    RECOG_EVENT_STOP|こんにちは   <eps>
10     11    <eps>                    MOTION_ADD|mei|greet|greet.vmd
11     12    <eps>                    SYNTH_START|mei|normal|よろしくお願いします。
12      0    SYNTH_EVENT_STOP|mei     <eps>

音声認識の設定 (.dic, .rapiddic, .jconf)

.dic ファイル は音声認識のための追加ユーザ辞書です。このファイルがなくてもシステム辞書から基本的な語彙は認識できますが、認識したい単語がシステム辞書にない場合、あるいは特に強く認識したい単語がある場合、.dic ファイルに記述しておくことで語彙を追加して認識できます。また、個々の単語の出てきやすさを調整することも可能です。

# example of .dic file
<unk> @1.0 <unk> [MMDAgent] e m u e m u d i: e: j e N t o
<unk> @2.0 <unk> [おっはー] O q h a:

.jconf ファイルは音声認識のための設定ファイルです。MMDAgent-EX の認識部は Julius が用いられていますが、Juliusの動作時のパラメータを変更したり、システム辞書やモデル以外を使いたい場合は、.jconf ファイルに追加の Julius オプションを記述できます。

## example of .jconf file
# set lower audio trigger level threshold
-lv 120
# set duration time to reject too long input
-rejectlong 6000

音声合成の設定 (.ojt, .htsvoice, etc.)

音声合成を行うには、Open JTalk 用のボイスモデル (.htsvoice) および設定ファイル (.ojt) をコンテンツに置く必要があります。.htsvoice ファイルは HTS で学習された Open JTalk 用のモデルが使えます。.ojt ファイル で使用するボイスモデルと各種の音声合成用パラメータを指定します。

## example of .ojt file
# number of voices
5
# voice names
Voice\mei\mei_normal.htsvoice
Voice\mei\mei_angry.htsvoice
Voice\mei\mei_bashful.htsvoice
Voice\mei\mei_happy.htsvoice
Voice\mei\mei_sad.htsvoice
# number of speaking styles
9
# speaking style names, interpolation weight, and synthesis parameter
mei_voice_normal   1.0  0.0  0.0  0.0  0.0  1.0  0.0  0.0  0.0  0.0  1.0  0.0  0.0  0.0  0.0  1.0  0.0  0.52 1.0
mei_voice_angry    0.0  1.0  0.0  0.0  0.0  0.0  1.0  0.0  0.0  0.0  0.0  1.0  0.0  0.0  0.0  1.1 -0.5  0.52 1.1
mei_voice_bashful  0.0  0.0  1.0  0.0  0.0  0.0  0.0  1.0  0.0  0.0  0.0  0.0  1.0  0.0  0.0  1.0  0.5  0.52 0.9
mei_voice_happy    0.0  0.0  0.0  1.0  0.0  0.0  0.0  0.0  1.0  0.0  0.0  0.0  0.0  1.0  0.0  1.1  1.5  0.52 1.0
mei_voice_sad      0.0  0.0  0.0  0.0  1.0  0.0  0.0  0.0  0.0  1.0  0.0  0.0  0.0  0.0  1.0  1.0 -0.5  0.52 0.9
mei_voice_fast     1.0  0.0  0.0  0.0  0.0  1.0  0.0  0.0  0.0  0.0  1.0  0.0  0.0  0.0  0.0  2.0  1.0  0.52 1.0
mei_voice_slow     1.0  0.0  0.0  0.0  0.0  1.0  0.0  0.0  0.0  0.0  1.0  0.0  0.0  0.0  0.0  0.5  1.0  0.52 1.0
mei_voice_high     1.0  0.0  0.0  0.0  0.0  1.0  0.0  0.0  0.0  0.0  1.0  0.0  0.0  0.0  0.0  1.0  4.0  0.52 1.0
mei_voice_low      1.0  0.0  0.0  0.0  0.0  1.0  0.0  0.0  0.0  0.0  1.0  0.0  0.0  0.0  0.0  1.0 -2.0  0.52 1.0

3-D モデル (.pmd) とモーション (.vmd)

MMDAgent-EX のレンダリングエンジンは MikuMikuDance 互換です。任意の[3-Dモデル (.pmd)] の表示、およびモーション(.vmd)の再生が行えます。PMX形式のモデルも、変換して利用できます。また、カメラモーションの .vmd をカメラコマンドに与えることでカメラワークを再生することもできます。MikuMikuDance および関連ツールについては以下のWebサイト等でもっと知ることができます。

ステージ素材 (image, .pmd)

CG空間のステージをモデル (.pmd) あるいは背景画像・床画像で指定できます。コンテンツ内にファイルを置いておき、対話シナリオ上で以下のように STAGE メッセージにより背景を設定・変更できます。画像使用時の背景・床の大きさは、.mdf ファイルの stage_size パラメータで変更できます。

STAGE|(bitmap file name for floor),(bitmap file name for back)
STAGE|(stage file name, .xpmd or .pmd)

音・音楽 (.mp3, .wav)

.mp3.wav 形式の音声が再生できます。コンテンツ内にこれらのファイルを入れておき、SOUND_START コマンドで再生できます。対話シナリオに組み込むことで任意の音を任意のタイミングで鳴らせます。

OSによっては .m4a 等の他の形式も再生できることがあります。ただし、全プラットフォームで再生をサポートしているのはこの .mp3.wav のみです。各プラットフォームで使用している音再生のAPIについては以下の通りです。

画像やテキストの表示 (image, .txt)

TEXTAREA_ADD メッセージで、3-Dのシーン内の任意座標に画像や文字列を表示できます。これによって任意タイミングで画像や文章を画面に表示したり消したりできます。画像フォーマットは .png, .jpg, .bmp, .tga 等をサポートします。テキストは UTF-8 で与えてください。

TEXTAREA_ADD|(textarea alias)|(width,height)|(size,margin,exlinespace)|r,g,b,a|r,g,b,a|x,y,z
TEXTAREA_SET|(textarea alias)|(text)

またテキストファイルの内容を全画面表示してユーザに強制的に読ませることができます。これには INFOTEXT メッセージを使います。

INFOTEXT_FILE|(filepath)|(titleLabel)|(buttonLabels)

ボタン定義 (BUTTON*.txt)

画面上に表示されるボタンを定義できます。ボタンには様々な機能があり、押すことでWebページを表示させたり、メッセージを発行したり、別のコンテンツを再生したりできるほか、内部値をボタン上にテキスト表示させたり、表示を切り替えることも可能です。

ボタンの定義はコンテンツのトップ直下に BUTTON0.txt, BUTTON1.txt … のようにボタンの数だけ定義ファイルを起こます。

パッケージ情報 (PACKAGE_DESC.txt)

PACKAGE_DESC.txt はコンテンツのパッケージ情報を保存するファイルです。無くても動作しますが、記述することで、ブックマークでの表示をカスタマイズしたり、Readme の強制表示、一定時間ごとの自動アップデート指定等のパッケージの扱いに関する特別な設定を行うことができます。特に Web コンテンツでは、このファイルを書くことは必須です。

README

コンテンツを再生する前にテキスト文書を表示してユーザに強制的に読ませることができます。コンテンツの正確な説明や利用方法、利用条件、注意点関連ページへのリンク等、を記述しておきましょう。README ファイル(テキストファイル)をコンテンツに入れ、 PACKAGE_DESC.txt 内で指定します。指定されたテキストは、初回のコンテンツ起動時、およびコンテンツが更新された後の起動時に最初に全画面表示されます。



最終更新 2021.01.15: updating ja doc till ojt (72effa3)