Show page source of howto/create/helloworld #69160

[[PageOutline]]

= Hello, World プログラム =

以下に Hello, World プログラムを示します。

「ハローワールド」という音声を認識すると「ハローワールド」と表示して終了するコンソールアプリケーションプログラムです。

[[Embed(main.cpp)]]

以上のプログラムでは、

 * !HelloWorldGrammar という文法
 * !HelloWorldProcessor というプロセッサ
 * !HelloWorldView というビュー

を定義しています。

それぞれのクラスの動作を一つ一つ説明します。

-----

== !HelloWorldGrammar ==

ハローワールドという文法を受理するだけの単純な文法です。

!GrammarCommonImpl は、文法を構築するために使える共通文法クラスの実装です。

addGrammarTransition は、音声認識による状態遷移グラフを構築する !GrammarCommonImpl クラスのメソッドです。

「ハローワールド」という音声入力を受けて、始点から終点へ状態遷移する文法として構築しています。

-----

== !HelloWorldProcessor ==

開始とともに !HelloWorldGrammar を文法として設定し、音声認識の結果を受けて音声認識エンジンの動作を終了させます。

-----

== !HelloWorldView ==

音声認識の結果を表示します。

recognition.getText() は、音声認識した結果のテキストです。

文法で設定したテキストを取得します。

文法で設定しているテキストは、ハローワールドだけなので、ハローワールドを出力します。

-----

== main ==

Controller に対して、

 * 音声認識エンジンに Microsoft Speech API を使ったのエンジンの指定
 * !HelloWorldProcessor の指定
 * !StdoutView の指定

を行っています。

controller.start で音声認識が開始します。本メソッドは、音声認識エンジンの動作が終了するまで待機状態になります。

そのため !HelloWorldProcessor の音声認識エンジンの動作終了を受けると、待機が解除されプログラムが終了するという動きになります。

また、!HelloWorldView が音声認識の結果として「ハローワールド」を出力します。

-----