Edited at

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

More than 1 year has passed since last update.

こんにちは.nyagato_00です.

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

今回は,"ATP3011F1-PU"を利用しました.

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


回路の設計

ブレップボードとArduino Unoを使って回路を組みます.



今回はアンプを使わずに音量調整か出来るスピーカーを利用しました.

スピーカーのイヤホンジャック端子にワニ口クリップで接続しました.


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."); //引数に指定のテキストを発声(やっはろー)
}
}

すると,スピーカーから"やっはろー"を発話してくれると思います.

発話させたい文字列はローマ字で入力します.

流暢に発話させる方法は次の記事に記載します.