Arduino
AquesTalk

Arduino Uno で音声合成LSIを利用する

こんにちは.nyagato_00です.
Arduino Unoで株式会社アクストの音声合成LSI"AquesTalk"を利用する際につまずいたので備忘録も兼ね記録を残します.

今回は,"ATP3011F1-PU"を利用しました.
これはホスト(Arduino)からシリアル通信を介してデータを送信し,任意の音声をリアルタイムで発話させることができます.

回路の設計

ブレップボードとArduino Unoを使って回路を組みます.
LSIconnect.png
今回はアンプを使わずに音量調整か出来るスピーカーを利用しました.
スピーカーのイヤホンジャック端子にワニ口クリップで接続しました.

Arduinoのプログラム

こちらからArduino用のLibraryを取得してください.
Arduino>Libraryに設置してください.
以下にサンプルコードを示します.

#include <AquesTalk.h>
#include <Wire.h>  // ライブラリ内部で使用するので定義必要
#define BUTTON_PIN 2
boolean started = false;

AquesTalk atp;  //インスタンス定義 変数名は任意

void setup()
{
  Serial.begin( 9600 );
  pinMode(BUTTON_PIN, INPUT);                       // Set button
  digitalWrite(BUTTON_PIN, HIGH);
}
void loop()
{
  if (digitalRead(BUTTON_PIN) == 0) {
    started = true;
  }

  if (started) {
    atp.Synthe("yahharoo.");  //引数に指定のテキストを発声(やっはろー)
  }
}

すると,スピーカーから"やっはろー"を発話してくれると思います.
発話させたい文字列はローマ字で入力します.
流暢に発話させる方法は次の記事に記載します.