PR

コンフィグレーションを使ったRTC開発

2009年6月16日(火)
菅 佑樹

AquesTalkのダウンロードと設定

 次にAquesTalkのダウンロードと設定を行います。

 株式会社アクエストのページ(http://www.a-quest.com/aquestalk/index_win.html)から「AquesTalk Win版」をダウンロードします。

 ダウンロードしたファイル(aqtk20061012.zip)を展開すると、「bin」フォルダにサンプルプログラム(AqTkApp.exe)があります。これを動かせばAquesTalkによる音声合成を体験できます。

 ここではRTCを開発するためのファイルとして、以下のファイルをRTC Builderで生成したプロジェクトのフォルダ(AquesTalkCompProjフォルダ)にコピーします。

・「bin」フォルダのDLLファイル(AquesTalkDa.dllのみ)
・「inc」フォルダのヘッダーファイル(AquesTalkDa.hのみ)
・「lib」フォルダのライブラリファイル(AquesTalkDa.libのみ)

 次にライブラリのリンクを設定します。RTC Buiderで生成されたフォルダ(AquesTalkVoiceCompProj)内の「AquesTalkVoice_vc9.sln」をVisual C++2008 Express Edition(以下VC++)で開き、メニューから「ビルド > 構成マネージャ」で「AquesTalkVoiceComp」プロジェクトの「ビルド」チェックボックスをオンにします。

 そして、ソリューションエクスプローラーからAquesTalkVoiceCompのプロパティで、「構成プロパティ > リンカ > 入力」を開き、「追加の依存ファイル」の欄に「$(rtm_lib)」となっているところを、「$(rtm_lib) AquesTalkDa.lib」(半角スペース区切り)とします。

 これで準備OKです。

#include "AquesTalkDa.h" // AquesTalkを使うためのヘッダーファイル

using namespace RTC;

class AquesTalkVoice : public RTC::DataFlowComponentBase
{
  public:

・・・中略・・・
  (onActivated, onDeactivated, onExecuteをコメントからはずすこと)

  H_AQTKDA m_hAquesTalk; // 音声合成エンジンのハンドラ
};

図2-1:AquesTalkVoice.hの変更箇所(下線部)

-------------------------------------------

RTC::ReturnCode_t AquesTalkVoice::onActivated(RTC::UniqueId ec_id)
{
  m_hAquesTalk = AquesTalkDa_Create(); // 音声合成エンジンの初期化
  return RTC::RTC_OK;
}

RTC::ReturnCode_t AquesTalkVoice::onDeactivated(RTC::UniqueId ec_id)
{
  AquesTalkDa_Release(m_hAquesTalk); // 音声合成エンジンの開放
  return RTC::RTC_OK;
}

RTC::ReturnCode_t AquesTalkVoice::onExecute(RTC::UniqueId ec_id)
{
  char buffer[1024]; // 文字列格納用バッファ
  if(m_inIn.isNew()) { // もしデータを受信していれば
    m_inIn.read(); // 読み込み
    strcpy(buffer, (char*)m_in.data); // バッファにコピー
    AquesTalkDa_Play(m_hAquesTalk, buffer, m_speed); // 発話
  }
  return RTC::RTC_OK;
}

図2-2:AquesTalkVoice.cppの変更箇所(下線部)

早稲田大学
早稲田大学創造理工学部総合機械工学科助手。博士(工学)。人間とロボットとの物理的な相互作用と飽きに関する研究に従事。その他に木登り・枝打ちロボットや、車椅子搭載型ロボットアームの開発などに携わる。計測自動制御学会RTミドルウェア賞受賞(2008年)。http://www.ysuga.net

Think IT会員サービス無料登録受付中

Think ITでは、より付加価値の高いコンテンツを会員サービスとして提供しています。会員登録を済ませてThink ITのWebサイトにログインすることでさまざまな限定特典を入手できるようになります。

Think IT会員サービスの概要とメリットをチェック

他にもこの記事が読まれています