Top / VstoneMagicを使ってみる / プログラミング / 音声再生・音声合成・音声認識

2.5. 音声再生・音声合成・音声認識を使ったプログラム

次に、音声を使ったプログラムを作成してみましょう。ロボット本体には音声再生の機能が備わっており、音楽や効果音・あらかじめ吹き込んだ音声などの、waveサウンド形式のファイルを再生することが可能です。また、追加機能によって、リアルタイムの音声合成や、音声認識を使ったプログラミングが可能です。それでは、これらの機能を使ったプログラムを作成してみましょう。

※ 音声合成・認識機能はオプションサービスであり、別途費用が必要です。サービスの申し込み方法等については、後日公開します。



音声再生を行う

  • ○ リソースファイルの追加

    音声再生の命令ブロックでは、音声ファイル等外部に記録したファイルをプログラムから読み込んで使用します。このように、外部に存在しプログラムから読み込まれるファイルを「リソースファイル」と言います。リソースファイルをプログラムから使用するためには、最初にファイルをエクスプローラに追加する必要があります。

    リソースファイルの追加は、エクスプロ―ラの「resource」の項目を右クリックしてポップアップメニューを表示し、「追加」→「リソースファイル」をクリックします。クリックするとwavサウンドファイルを選択する画面を開くので、再生したい音声ファイルを選んで「開く」をクリックしてください。クリックすると、エクスプローラのresouceフォルダに選択したファイルが追加されます。


    image136.png




    追加したリソースファイルは、エクスプローラ上の項目をダブルクリックすると、ファイルの種類(拡張子)に対してお使いのPCで割り当てられているアプリケーションを起動し、ファイルを開くことができます。

    リソースファイルは、必ず半角英数のファイル名の物を使用してください。
    また、説明中のファイルは参考例です。実際のプログラムの際には、waveサウンド形式のファイルを別途ご用意ください。




  • ○ 音声再生ブロックの設定

    追加したwavサウンド形式のリソースファイルは、soundブロックで再生することができます。soundブロックは、プロパティウィンドウの「file」の項目で、再生する音声ファイルを選択できます。

    image137.png

    使用するリソースファイルは、プログラムの実行時に、プログラムのファイルと併せて本ソフトウェアからロボットに転送されます。一度ファイルを送信したら、ファイルが更新されない限り、次回以降転送を省略します。それでは、先ほど作成したプログラムに、任意のwavサウンドファイル(リソースファイル)を追加し、soundブロックで再生してみましょう。

    image138.png




音声合成・認識を行う

別サービスの音声合成・音声認識の機能を使ったプログラムについて説明します。

※ 音声合成・認識機能はオプションサービスであり、別途費用が必要です。サービスの申し込み方法等については、後日公開します。




  • ○ 音声合成・認識ブロックの追加

    音声合成・認識は入手した命令ブロックのデータはzip形式で圧縮されており、展開すると「jp.co.vstone.tts」と「jp.co.vstone.speechrecog」の二つのフォルダができます。これらのフォルダが追加するブロックのデータになります。

    image139.png




    命令ブロックの追加は、ツールボックスから行います。ツールボックスの任意の項目を右クリックしてポップアップメニューを表示し、「コマンドブロックの追加」をクリックしてください。クリックするとファイルの選択画面を開くので、先ほどダウンロードして展開した各フォルダにあるブロックの設定ファイル(XML形式)を選択して、「開く」をクリックして開いてください。

    image140.png



  • ○ 音声合成の命令

    音声合成は、任意の文字列をリアルタイムで音声合成し、発話します。先に紹介したsoundブロックと違って、あらかじめ音声データを用意する必要がなく、また発話内容も文字列を変更するだけで容易に行うことができます。

    image141.png



音声合成・音声認識は、インターネット上のサーバに接続する必要があるため、これらを使ったプログラムを実行する際は、必ずロボットをインターネットに接続してください。





  • ○ 音声認識の命令

     音声認識は、ロボット本体のマイクより周囲の人の声を取り込んで、文字列に変換します。音声認識ブロックでは、聞き取った文字列を元に条件分岐を設定します。分岐条件には、任意の文字列を一つ設定できます。このブロックでは、認識結果に設定した文字列が含まれると条件が成立します。例えば「こんにちは」を条件に設定したら、「こんにちは」以外に「どうも、こんにちは」など、条件の文字列を含む結果でも成立します。

    image142.png


    以下は、音声認識・音声合成を使ったプログラム例です。無限ループで何度も音声認識を行い、認識された言葉に「こんにちは」が含まれたら「こんにちは」と言ってmot1を、「ありがとう」が含まれたら「どういたしまして」と言ってmot2を実行します。いずれの単語も含まれない場合は、一番下の分岐に進んで「何ですか?」と言いポーズブロックを1個実行します。

    image142_2.png

    上記サンプルプログラムの、音声認識ブロックの条件分岐設定です。各分岐のpartBの項目に、(文字列入力)で反応する単語を設定します。

    image142_3.png



    目次  次のページへ>>