コンフィグレーションを使った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 Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

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