5.日本語のしゃべらせ方

2020年5月22日

おしゃべりの仕組み

クムクムロボットは、プログラムからテキストデータを与えるだけで簡単に日本語を発話することができる株式会社アクエスト社のAques Talk pico LSIを使用しています。

Aques Talk pico LSIの接続と関数

このLSIとCPUは、メインボードの内部でI2Cという方法で接続しています。
そのため、Arduinoのプログラムからコントロールする場合は、I2Cをコントロールできる標準ライブラリーを使用する必要があります。
また、それらのコントロールは少し手続等が面倒なため、下記からサンプルプログラムをダウンロードし使用するのが便利で簡単です。

AquesTalkのライブラリーをダウンロード

ダウンロードは N.Yamazaki’s Blogの ココ からダウンロドすることができます。

このライブラリーをダウンロードして展開をすると下記のようになっています。

それぞれすべてArduinoで動作するサンプルプログラムです。

AquesTalkLibraryを使えるように準備する

実際にArduinoで使用する場合は、ArduinoIDEなどにライブラリー登録をすることからはじめますが、実はライブラリー登録をしなくても使える方法があります。

また、Arduino以外が提供する独自のライブラリーは、IDEのライブラリーとして登録して使うより、都度フォルダーに入れて使う方が便利だったりしますので、ここでは簡単に自分のフォルダーにコピーをして使う方法を試してみます。

ここでは一番簡単な HelloTalk を使ってみます。

HelloTalkフォルダーにAquesTalkLibraryのソースをコピーする

下の図を参考に、AquesTalkの直下にある AquesTalk.cppとAquesTalk.hをHelloTalkのフォルダーにコピーをします。

コピー後フォルダーの中は下記のようになります。

プログラムを開いて修正する

次に HelloTalk.inoファイルをダブルクリックしてソースコードを開きます。
このソースコードの赤い部分を書き換えます。

あとはコンパイルをして動かしてみましょう

「ほんまかいな そうかいな」としゃべります

#include "AquesTalk.h"
#include <WireWrap.h>
AquesTalk atp; //インスタンス定義 変数名は任意

void setup() {
i2c_init();
atp.SetPitch(0);
atp.SetSpeed(100);
}

void loop() {
atp.Synthe("honmakaina");
atp.Synthe("soukaina");
delay(1000) ;
}

プログラムとライブラリー使用などについての詳細

プログラムについての詳細は、開発者の山崎さんがかかれているブログをご覧ください。