1000円で作る日本語音声合成装置


音声合成装置を作るといっても、それほど難しいことをするわけではありません。基本的には買って、つないで、終わりです。


- ATP3011(850円)を使用する

ATP3011という音声合成チップは、単体で音声合成ができます(出力はごく小さいのでアンプ付きスピーカーで出力する必要があります)。

ATP3011F1-PUはいわゆるゆっくりボイスです。

I2CまたはシリアルでArduinoやRaspberryPiからコントロール可能です。
今回はArduino Unoを使用しました。

接続したらサンプルのスケッチをArduino Unoに書き込みます

#include <SoftwareSerial.h>

int count;
SoftwareSerial softSerial(12,13); //RX, TX

void setup() {
  count = 0;
  delay(100);
  softSerial.begin(9600);
  delay(10);
  softSerial.print("?");
  delay(100);
}

void loop() {
  count++;

  String str = "<NUMK VAL="+String(count)+" COUNTER=funn>+ke-'ka"; 
  softSerial.print(str+"\r");
  delay(2000);
}

最初に"?"を送信することでATP3011の受信レートを自動で変更しているようです。

"<NUMK VAL="+String(count)+" COUNTER=funn>+ke-'ka";

のようにするだけで 「サンプン」「ゴフン」「ジュップン」など読み分けてくれるので、数値の読み上げなどには便利なんじゃないかと思います。
細かい発話方法などはデータシートに載っています。

動画


- ATP3012(900円)+あちゃんでいいの(99円)を使用する

ATP3012はATP3011より高音質ですが外部クロックが必要です。
今回は外部クロック用に、100円で購入できるあちゃんでいいのを使用しました。
ATP3011,ATP3012はArduino UnoのコアチップであるATMega328と互換(ATMega328にファームウェアとして書き込んだもの)なので、あちゃんでいいのを組み立ててATP3012を挿すだけで使えます。

またATP3011とスピーカーOUTのピンが異なっている点も注意が必要です。

スケッチはATP3011と同じものが使えます。

動画