こんにちは.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."); //引数に指定のテキストを発声(やっはろー)
}
}
すると,スピーカーから"やっはろー"を発話してくれると思います.
発話させたい文字列はローマ字で入力します.
流暢に発話させる方法は次の記事に記載します.