Powere
Powered by AquesTalk pico

Data Sheet
Sheet
音声合成 LSI ATP3010F4

AQUEST
www.a-quest.com

AQUEST

Data Sheet ATP3010F4

概要........................................................................................................................................................................
3
概要

1.

1.1.

特長 ............................................................................................................................................................... 32.

仕様........................................................................................................................................................................
4
仕様

3.

ピン配置
4
ピン配置..................................................................................................................................................................
配置

4.

ピン機能
5
ピン機能..................................................................................................................................................................
機能

5.

基本回路.................................................................................................................................................................
5
基本回路
5.1.

CLK 回路....................................................................................................................................................... 65.2.

音声出力（AOUT)........................................................................................................................................... 6

5.3.

リセット回路..................................................................................................................................................... 6

5.4.

PLAY 端子 ..................................................................................................................................................... 6

6.

動作モード
6
動作モード...............................................................................................................................................................
モード

7.

コマンド ................................................................................................................................................................... 6
7.1.

コマンドフォーマット.......................................................................................................................................... 6

7.2.

コマンド応答フォーマット .................................................................................................................................. 7

7.3.

メッセージコマンド： .......................................................................................................................................... 7

7.4.

バージョンコマンド ........................................................................................................................................... 7

7.5.

チャイムコマンド：............................................................................................................................................. 7

7.6.

ブレークコマンド：............................................................................................................................................. 77.7.

内部 EEPROM 読み込みコマンド：.................................................................................................................. 77.8.

内部 EEPROM 書き込みコマンド： .................................................................................................................. 7通信モード
8
通信モード...............................................................................................................................................................
モード

8.

8.1.

UART 通信 .................................................................................................................................................... 88.2.

I2C 通信......................................................................................................................................................... 98.3.

SPI 通信 ...................................................................................................................................................... 10

9.

プリセットメッセー
プリセットメッセージ
メッセージ ................................................................................................................................................ 1010.

内部 EEPROM ................................................................................................................................................ 11

11.

付録..................................................................................................................................................................
12
付録

11.1.

アナログ・オーディオ回路（参考回路） ............................................................................................................. 12

11.2.

エラーコード表............................................................................................................................................... 13

11.3.

Fuse/LockBit の設定値 ............................................................................................................................... 13

11.4.

Arduino ボードを利用した簡易動作 ............................................................................................................. 13

11.5.

ベースチップのデータシート ........................................................................................................................... 1412.

音声記号列仕様................................................................................................................................................
14
音声記号列仕様12.1.

音声記号列の記述方法 ................................................................................................................................. 1412.2.

音声記号列仕様............................................................................................................................................ 1912.3.

音声記号列サンプル ..................................................................................................................................... 21

12.4.

読み記号表................................................................................................................................................... 22

12.5.

対応助数詞一覧表 ........................................................................................................................................ 2312.6.

記号読み表................................................................................................................................................... 2313.

改変履歴 .......................................................................................................................................................... 24
2

AQUEST

1.

Data Sheet ATP3010F4

概要

ATP3010F4 は、１チップでローマ字表記のテキストを音声に変換する音声合成 LSI です。
シリアルインターフェースを介して、簡単に任意の音声メッセージを出力できます。また、あらかじめプリセットしたメッセージを端子のレベル変化で読み上げることもできます。

ATP3010F4 は、Atmel 社の 8bit マイクロコントローラ ATmega328P に、音声合成ミドルウェア AquesTalk pico をファームウェアとして搭載した製品です。電気的特性、外形寸法などに関しては、ATmega328P のデータシートを併せて参照ください（付録 11.5 に参照先有り）。

【注意】 ATP3010F4 に対して、チップイレーズ（Erase Device)を実行とファームウェアが消え、以降は音声合成 LSI として機能しなくなります。特にプログラマ（AVRISP mkII など）を接続する場合は十分にご注意ください。

1.1.

特長

-

文字列を送るだけで音声出力するシンプルインターフェース-

実装に便利な 28pinDIP-

少ない外付け部品（クロック生成用のクリスタルのみ）-

Arduino uno などの基板に直接装着して使用可能-

３種のシリアルインターフェース UART/I2C/SPI-

２種類のカスタマイズ可能なチャイム音-

カスタマイズ可能な 15 種類のプリセットメッセージ-端子の変化をトリガにプリセットメッセージを発声-

話速やプリセットメッセージなどを実装後に設定可能-

ユーザ設定専用アプリ PicoRomWriter を別途配布

3

AQUEST

2.

Data Sheet ATP3010F4

仕様

動作電圧

5V （3.8V-5.5V）

消費電流(typ)
発声時

8.2mA

待機時
スタンドアロンモード

0.4mA

コマンドモード(セーフモード）

3.

UART

2.4mA

I2C

0.8mA

SPI

2.8mA

ベースチップAtmel ATmega328P

音声合成コアAquesTalk pico

入力データ

ローマ字表記音声記号列（ASCII)

声種

女声(F4)

出力

8KHz サンプリング PCM 音声波形を 8bitPWM 出力

インターフェース

UART/I2C/SPI

プリセットメッセージ

15 種類

動作クロック

16MHz

ピン配置
ピン配置
28pin DIP/RESET 1
RXD 2
TXD 3
SMOD0 4
SMOD1 5
I.C 6
VCC 7
GND 8
XTAL1 9XTAL2 10/TEST 11
AOUT 12/PLAY 13
PMOD0 1428 SCL27 SDA
26
25
24
23
22
21
20
19
18
17
16
15

PC3
PC2
PC1
PC0
GND
I.C
VCC
SCK
MISO
MOSI
/SS
PMOD1

図 3.1 ピン配置(Top View)

4

AQUEST

4.

Data Sheet ATP3010F4

ピン機能
ピン機能
表 4.1 ピン機能

ピン

端子名

ATmega
端子名I/O

1/RESET/RESET

I*

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

RXD
TXD
SMOD0
SMOD1
I.C
VCC
GND
XTAL1
XTAL2
/TEST
AOUT
/PLAY
PMOD0
PMOD1
/SS
MOSI
MISO
SCK
VCC
I.C
GND
PC0
PC1
PC2
PC3
SDA
SCL

RXD
TXD
PD2
PD3
PD4
VCC
GND
XTAL1
XTAL2
PD5
PD6
PD7
PB0
PB1
/SS
MOSI
MISO
SCK
AVCC
AREF
GND
PC0
PC1
PC2
PC3
SDA
SCL

I
O
I*
I*
I*
O
O
I*
I*
I*
I
O
I
I*
I*
I*
I*
I/O
I

説明
Lowでリセット リセットタイミング等はデバイスのデータシート参照
USART RXD UART通信プロトコル参照
USART TXD UART通信プロトコル参照
通信モード選択 表XX
通信モード選択
未使用 OPENにする電源(3.8-5.5V)
GND
16MHz水晶/セラミック発振子接続
クリスタル接続、外部クロックの入力も可能。
TEST用端子 常にOPENまたはプルアップ
音声出力端子（0-5V PWM出力)
発声ステータス 発声中はLOWレベルになる
動作モード選択 表XX
動作モード選択SPI Slave Select SPI通信プロトコル参照
SPI Master Out Slave In
SPI Master In Slave Out
SPI Serial Clock
電源(3.8-5.5V)
未使用 OPENにする
GND
プリセットメッセージ選択 表XX
プリセットメッセージ選択
プリセットメッセージ選択
プリセットメッセージ選択
I2C Serial Data
I2C Serial Clock* 内部でプルアップ

基本回路

9

10

20

0.1uF

VCC

セセセセセ 16MHｚ

VCC

7

VCC 5V

XTAL1

GND

XTAL2
ATP3010F4

TXD

12

RXD
GND

UART
9600bps
8bit, 1Stop bit,
Non parity

2

22

TXD

3

GND

RXD

to Active
Speaker

1K

0.047u

AOUT

8

5.

5

AQUEST

Data Sheet ATP3010F4

CLK 回路5.1.

16MHz のクロックセラミックレゾネータ、クリスタルを使用できます。外部クロックによる駆動はできません。
クリスタルを接続する場合は 12～22pF のコンデンサの接続が必要です。クリスタル接続の詳細についてはベースチップのデータシートを参照ください。（参考 9 章 CKSEL3...0:111 SUT1...0:11 ）【注意】Low Power Crystal Oscillator モードで動作しているため、AOUT の音声出力信号が CLK に回りこむと動作が不安定になります。そのため CLK の配線はできるだけ短くし、AOUT の配線と干渉を避けてください（平行に配線しない）。

音声出力（AOUT)

5.2.

アンプを内蔵していないので直接スピーカに接続することはできませんが、20mA のドライブ能力がありますので、簡単なアナログ回路でスピーカを鳴らすことができます。付録 11.1「参考アナログ回路」も参照ください。
音声信号の周波数帯域は 4KHz までとなっていますが、PWM 出力のため高域のノイズ成分も含まれています。そのため、カットオフ 4KHz のローパスフィルタを追加することで音質を向上させることができます。

リセット回路5.3.

リセット後にクロックが安定するまで、約 65msec ウェイトする設定となっています。このため、リセット後のコマンド入力等の操作は、安定するまでリセットから 100msec 程度あけてください。

PLAY 端子5.4.

音声出力中はこの端子が LOW になります。待機時のアンプの消費電流を抑えたり、発声状態を LED で示すなどに利用でき
ます。

6.

動作モード
動作モード

リセット直後に、PMOD1、PMOD0 端子状態に応じて動作モードが決まります。
ただし、デモモードだけは、各メッセージの発声後のタイミングで PMOD0、PMOD1 端子を読み込み、指定の動作モードに移行します。

表6.1 動作モード
PMOD1
PMOD0

7.

1

1

1

0

0
0

1
0

動作

説明
基本モード。シリアル通信で任意のメッセージを音声出
コマンド入力モード
力する。
EEPROMの設定に関わらず、USARTのボーレートがセーフモード
9600bps、I2Cのスレーブアドレスが2EHとなる。それ以外
はコマンド入力モードと同じ。
スタンドアロンモード プリセットメッセージをPC0-PC3の端子の操作で発声させ
デモモード
全てのプリセットメッセージを順に繰り返して発声

コマンド

コマンド入力モード時のコマンドを以下に示します。

7.1.

コマンドフォーマット□□□[CR]
１つのコマンドは 1byte～127byte の ASCII 文字列の最後にデリミタとして CR(0x0D)を付与します。
AT30110F4 は、この CR の受信後にコマンドを実行します。なお、コマンドの大文字、小文字は区別されます。

6

AQUEST
7.2.

Data Sheet ATP3010F4

コマンド応答フォーマット

□□□>

or

*

コマンドの実行後に ATP3010F4 が返す応答は、０byte 以上の ASCII 文字列の最後にデリミタとして'>'が追加されたものです。ただし、コマンド実行中は Busy 状態になり、この間に他のコマンドを受信すると、コマンド応答として '** '(0x2A)が返ります。
なお、発声中は Busy 状態となります。

7.3.

メッセージコマンド：

ローマ字記号列[CR]
指定の音声記号列を音声に変換して出力します。音声記号列はローマ字表記の読みにアクセント情報を付与したものです。
詳細は、12 章の「音声記号列仕様」を参照してください。
コマンド応答：発声の完了後に'>'が返ります。音声記号列が正しくないなどエラーの場合は"EXXX>"が返ります（XXX は 3 桁の数値のエラーコード）。ローマ字記号列（半角英数小文字)の長さは最大 127byte です。

7.4.

バージョンコマンド#V[CR]
バージョンが返ります。
#V
コマンド応答: 4byte のバージョンコードと'>'が返ります。現在のバージョンコードは "V01a"です。

7.5.

チャイムコマンド：#J[CR]#J

チャイム音 J を出力します。

#K[CR]#K

チャイム音 K を出力します。

コマンド応答: 出力の完了後'>'が返ります。EEPROM のチャイム音データが壊れているなどエラーの場合は"EXXX>"が返ります（XXX は 3 桁の数値のエラーコード）。

7.6.
$

ブレークコマンド：メッセージの発声またはチャイム音の出力を中断します。

'$'(0x24)を送出（CR は付けない）します。ブレークコマンドは busy 状態中も有効です。
コマンド応答: 中断処理の完了後に'E255>'が返ります。

7.7.

内部 EEPROM 読み込みコマンド：#Rnnn[CR]#Rnnn

内部 EEPROM の指定アドレスの１byte の値が返ります。

nnn:アドレス（000 - 3FF) 3 桁の 16 進数で指定。アルファベットは半角大文字のみ。
mm：値 ２桁の 16 進数で指定。アルファベットは半角大文字のみ。
コマンド応答: 'mm>'が返ります（２桁の 16 進数の値）。正しくないコマンドを指定すると"EXXX>"が返ります（XXX は 3 桁の数値のエラーコード）。

7.8.

内部 EEPROM 書き込みコマンド：#Wnnnmm[CR]#Wnnnmm

内部 EEPROM の指定アドレスに１byte の値を書きこみます。

nnn:アドレス（000 - 3FF) 3 桁の 16 進数で指定。アルファベットは半角大文字のみ。
mm：書きこむ値を２桁の 16 進数で指定。アルファベットは半角大文字のみ。
コマンド応答: 書き込みの完了後'>'が返ります。正しくないコマンドを指定すると"EXXX>"が返ります（XXX は 3 桁の数値の7

AQUEST

Data Sheet ATP3010F4

エラーコード）。

通信モード
通信モード

8.

リセット直後に、SMOD1、SMOD0 端子状態に応じて次の通信モードが決まります。

表8.1 通信モード
SMOD1
SMOD0
1
1
1
0
0
1
0
0

通信モード
UART
I2C
SPI(MODE3)SPI(MODE0)UART 通信

8.1.

TXD、RXD の２線でホストと通信します。
-

ボーレート: 2400～115200 出荷時設定は 9600bps-

８ビット、１ストップビット、ノンパリティ【注意】UART の電圧レベルはこの LSI の電源レベルに合わせる必要があるので、異なる電源電圧のデバイスと通信する場
合はレベルコンバータが必要となります。異なる電圧レベルを与えるとチップが破損します。

コマンドは CR 後に実行されます。

ホスト

ATP3010F4

コマンドの実行後は応答メッセージを返します。メッセージコマンドやチャイ”konnichiwa.[CR]”コマンド送出ムコマンドは発声（再生）の終了後に応答を返します。ホスト側はこの応答
で発声の終了タイミングを知ることが

発声中

できます。
発声中にブレークコマンド ' $'で発声を中止で きま す。この と きの 応答は

”>”
Ready

コマンド応答（発声完了後)'E255>'となります。

”ohayo-.[CR]”表8.2 ボーレート”[CR]””* ”
発声中などBusyの場合は”*”が返る

発声中

”>”
Ready

コマンド応答（発声完了後)

ボーレート
EP_UBBR
[bps]

2400
4800
9600
14400
19200
28800
38400
57600
76800
1152000x03400x01A00x00CF0x008A
0x00670x00440x00330x00220x00190x0010

ボーレートは、内部 EEPROM の値の設定により変更できます。ボーレートとコマンド送出

”#V[CR]””V01a>”
バージョンが返る

コマンド送出(バージョンコマンド)”zzz[CR]””E105>”
エラーコードが返る

間違った記号列を送出
コマンド応答

コマンド応答

設定値は表 8.2 を参照してください。
EEPROM の値の変更方法は、
10 章内部 EEPROM を参照してください。

UART 通信手順
8

AQUEST

8.2.

Data Sheet ATP3010F4

I2C 通信SDA と SCL の２線でホストと通信します。

ホスト

ATP3010F4

I2C を使うときは、SDA、SCL 共に 5KΩ程度のプルアップ抵抗が必要です。

・ 最大クロックスピード 400KHz
・ I2C スレーブとして動作・ ジェネラルコールは未対応

S W konnichiwa.[CR] P

P*
発声中などBusyの場合は”*”または0xFFが返る
発話完了の通知はないので、Ready待
ちはポーリングで行う。ポーリング間
隔は10msec以上あける。

S R

ス レ ー ブ ア ド レ ス は EEPROM レ ジ ス タ の発声中

コマンド応答（発声完了後)
S R

EP_I2CADR の設定で変更可能です（出荷時
設定は 0x2E)。この変更はリセット後に反映されコマンド送出P>

Ready状態の時は”>”が返るます。
コマンドは分割して（複数の Start/Stop コンデシ

S W oョン)送信することもできます。

S W

ha

コマンドは CR の送信直後に実行されます。

S W

yo-.[CR]

P

コマンドは分割して送出してもよい
P
P

コマンド応答は基本的に USART と同じです。ただし、USART では非同期に応答が返されます
が、I2C では、マスタ側からアクセスしない限り

発声中応答は得られません。したがって、発話の完了通知はないので、ポーリングにより Ready 状態を確認することになります。このポーリングの間
隔は 10msec 以上あけてください。短い間隔で

S W#V[CR]P

S R

コマンド送出(バージョンコマンド)
P

V01a>

ポーリングを行うと出力音声が途切れます。

コマンド応答バージョンが返る

応答データのバイト数以上を要求した場合は、
S W zzz[CR]最後の文字(通常'>')が連続して返されます。
NOACK ま た は 応 答 が な い 場 合 は 、ATP3010F4 が正常に動作していない可能性が高いのでスレーブアドレス、配線などを確認してください。
【 注意】ATP3010F4 の音声記号列の長 さは

P

S R

P
E105>

間違った記号列を送出
コマンド応答

エラーコードが返る
S： スタート・コンデション
W: SLA+W（スレーブアドレス＋Write)
R: SLA+R（スレーブアドレス＋Read)
P: ストップ・コンデション

127byte まで指定可能ですが、Arduino の Wire.h ライブラリで一度に送れるのは 32byte までという制約があります。

9

AQUEST

8.3.

Data Sheet ATP3010F4

SPI 通信SPI スレーブとして、SCK、MISO、MOSI の３線+(/SS)でホストと通信します。

・ スレーブセレクト/SS 端子も有効（アクティブ Low）
・ SPI モードは Mode 0 または Mode 3 を選択可能（通信モード SMOD1、SMOD0 端子で選択 表 8.1）
・ データは８ビットで MSB ファースト・ 最大クロックは 1MHz

SPI コマンド間(byte 間）は 10μsec の間隔をあけてください。
CR 後の最初の応答は必ず'*'となります。すでに Ready 状態になった後でも最初の応答は'*'が返ります。
ポーリングによる応答確認は前項「I2C 通信」を参照ください。

SPI 通信手順

9.

プリセットメッセージ

ATP3010F4 は、15 種類のプリセットメッセージを内部 EEPROM に設定することができます。
設定は、基本的に EEPROM 設定プログラム PicoRomWriter.exe を用いて行います。
プリセットメッセージは、ローマ字表記の音声記号列で表現し、1 メッセージは 128byte(null 終端含む）以下で、15 メッセージ
全体の長さ(null 終端を含む）は 960byte 以下に制限されています。
プリセットメッセージは、動作モードがスタンドアロンモードの時に、PC0、PC1、PC2、PC3 いずれかの端子の変化をトリガとしてメッセージを発声します。なお、チャタリング防止のため変化から約 10msec 後の PC0、PC1、PC2、PC3 端子状態で発声するメッセージを確定します（表 9.1）。なお、発声中のトリガは予約されずに無視されます。
15 種類のメッセージを 3 つの端子の論理値で表現するため、プッシュスイッチ等で操作するときは図 9.1 の回路を参考にしてく
ださい。

10

AQUEST

Data Sheet ATP3010F4

表9.1 端子状態とメッセージ
PC3 PC2 PC1 PC0 メッセージ
0
0
0
0
MSG0
0
0
0
1
MSG1
0
0
1
0
MSG2
0
0
1
1
MSG3
0
1
0
0
MSG4
0
1
0
1
MSG5
0
1
1
0
MSG6
0
1
1
1
MSG7
1
0
0
0
MSG8
1
0
0
1
MSG9
1
0
1
0
MSG10
1
0
1
1
MSG11
1
1
0
0
MSG12
1
1
0
1
MSG13
1
1
1
0
MSG14
1
1
1
1
発声なし

PC3

PC2

PC1

PC0

MSG0 MSG1 MSG2 MSG3 MSG4 MSG5 MSG6 MSG7 MSG8 MSG9 MSG10 MSG11MSG12 MSG13 MSG14

図9.1 スタンドアロンモード（プリセットメッセージ）回路例

10. 内部 EEPROM
ATP3010F4 は、内部 EEPROM データを変更することで発話スピードやプリセットメッセージなどの各種のユーザ設定を行う
ことができます。

内部 EEPROM は、アドレス 0x000 から 0x3FF までの 1Kbyte ですべての領域が予約されています。各アドレスの定義を表
10.1 に示します。EP_MSG を除いてバイナリで指定します。なお、2byte のデータはリトルエンディアンです。例えば、
EP_SPEED はアドレス 0x002 が LSB 側 8bit を示し、0x003 が MSB 側 8bit のデータとなります。

内部 EEPROM は、内部 EEPROM 書き込みコマンド #Wnnnmm[CR] で変更することができます。また、EEPROM 設定
プログラム PicoRomWriter を使用するのも簡単です。PicoRomWriter は当社ホームページのダウンロードページからダウンロードできます。その使い方は付属のマニュアルを参照してください。

表10.1 EEPROMレジスタ
アドレス
名称
0x000-0x001
EP_UBBR

出荷時
0x00CF0x002-0x003

EP_SPEED

100

0x004-0x005

EP_PAUSE

65535

0x006

EP_I2CADR

0x2E

0x008-0x01D

EP_CHIME0

0x020-0x035

EP_CHIME1

0x038-0x03A

RESERVED

0x040-0x3FF

EP_MSG

内容
UARTのボーレート(表8.2）変更はリセット後に反映。
発話速度（50-300 default:100）値が大きいほど速くなる。変更は次のメッセージコマンドから有効。
文末のポーズの長さ[125usec単位] 65535の指定で自動設定。連続して発声させないときは256を指定する。
I2Cのスレーブアドレス(0x08-0x77)
変更はリセット後に反映。
チャイム音データ コマンド#Jのチャイム音。変更は
次のチャイムコマンドから有効。
チャイム音データ コマンド#Kのチャイム音。変更は
次のチャイムコマンドから有効。
予約済
プリセットメッセージｘ15
詳細は「図10.1 プリセットメッセージ配置」参照。
変更は次のスタンドアロンモード時のトリガから有11

AQUEST

Data Sheet ATP3010F4EEPROM アドレス
0x040
MSG0
0x00
MSG1

個々のメッセージ：
最大127byteの音声記号列＋1byteのゼロ終端

0x00
MSG2

960byte0x00
メッセージは、必ず、MSG0からMSG14の１５個用意し、ゼロ終端を含めてトータル
最大960byte以内

MSG3
省略
MSG13

0x00

MSG14

0x00
...

0x3FF

あまりは、ゼロパディング

図10.1 プリセットメッセージ配置
11. 付録11.1. アナログ・オーディオ回路（参考回路）
A

B

C■AVアアアやアセアロアイイイアイに接接
10K■セイロイシD級アアア
VCC
3 ～ 5V

0.047uAV アアア入入へ
入入イアイイイアイ10KΩ以以

AOUT
0.022u

5.1K

1

D

1

要要要
2.4K ～ 5.1KΩ
AOUT

SP
4～16Ω

イアイイイアイが大きき方が音が大きき
2SC1815

セイロイロロロロイが無きいい、高高に折り返し雑音が含ままま。spは4KHz以以い高高高高が落ちちきまちちが望ましき。

■250ｍW オイオロオ アアア

VCC
5 ～ 16V

10K

2

4
3
1K

Vin
FC1

1.0u
2

0.1u

FC2

5u

VO1

MC34119

VO2
CD

5

SP
4～32Ω

8
1

7

10K

0.047u

AOUT

VCC

10K

GND

6
Icc

2

/PLAY
JMP1

3

3

待待待Power downすま場場シシイシすま。
こまにこり Iccが3ｍA->0.2mA程程ににま。
但し、発発発発待にセクセセ音が入ま。

参参アアセア出入出出
A

B

C

D

12

AQUEST

Data Sheet ATP3010F4

11.2. エラーコード表

値

内容

100

その他のエラー

101

メモリ不足

105

音声記号列に未定義の読み記号が指定された

106

音声記号列のタグの指定が正しくない

107

タグの長さが制限を越えている（または[>]がみつからない）

200

音声記号列が長すぎる

251

コマンドの指定が正しくない

254

チャイム音データが壊れている203

ヒープメモリ不足

255（Warning）発声中にブレークされた

11.3. Fuse/Lock Bit の設定値
出荷時のヒューズビット、ロックビットの設定は下記の通りです。
値の示す意味については、ベースチップのデータシートを参照してください。
名前

値

FUSE BIT

EXTENDED:0xFF HIGH:0xD7 LOW:0xFF

LOCK BIT

0xFC

11.4. Arduino ボードを利用した簡易動作
ATP3010F4 のベースチップは Arduino uno と同じチップであり、クロックも同じなので、Arduino uno に実装されている
ATmega328P を、ATP3010F4 に差し替えることで、電源やシリアルインターフェースを用意することなく、簡単に ATP3010F4を評価、動作確認することができます。また、当社では動作確認していませんが、Arduino Diecimila/Duemilanove など
ATmega328P や ATmega168 を使用し、クロック 16MHｚ、Vcc 5V の他の Arduino ボードでも同様に利用できると思います。

使用例：

1.

Arduino uno ボードの ATmega328P と ATP3010F4 を差換える（向きに注意）。

2.

Arduino uno ボードの DIGITAL 6 番ピンと、GND ピンをアクティブスピーカーに接続（出力レベルが高いので必要に応じて抵抗で分圧してください）する。

3.

USB で PC と Arduino uno ボードを接続する。

4.

PC で Arduino

IDE を起動し、MENU>Tools>Serial Port で、com ポートを設定します。

(com ポート番号を設定は Arduino uno の使用方法に従ってください）5.

MENU>Tools>Serial Monitor を開く。

6.

Serial Monitor 右下のコンボボックスで、Carriage return と 9600bps を選択。

7.

Send ボックスに"konnichiwa.”を入力して、send ボタンを押下すると、「こんにちは」とアクティブスピー
カーから音声が聞こえます。

ArduinoIDE の Serial Monitor の代わりに TeraTerm などの他のターミナルソフトを使用する場合、「改行コード 受信：
CR+LF 送信：CR」 「ローカルエコー：する」の設定を推薦します。

13

AQUEST

Data Sheet ATP3010F4

参考 : 「AquesTalk pico LSI を Arduino 基板に挿して音声合成」
You Tube

http://www.youtube.com/watch?v=p9rTu4J5sjc【注意】ATP3010F4 は Arduino のブートローダが入っていませんので、スケッチの実行など Arduino 用として使用することはできません。

11.5. ベースチップのデータシート
ATmega328P チップのデータシートは下記を参照ください。
「8-bit Atmel Microcontroller with 4/8/16/32K Bytes In-System Programmable Flash/ATmega328P」
http://www.atmel.com/dyn/resources/prod_documents/doc8271.pdf

12. 音声記号列仕様
音声記号列仕様
12.1. 音声記号列の記述方法
音声記号列とは、生成する音声を文字コードで表現したものです。音声記号列は ATP3010F4 の入力データとなります。
ATP3010F4 は単語辞書を持っていませんので、漢字を読むことができません。したがって、基本的にはローマ字の文字列で表現することになります。

まず、簡単な音声記号列の例を示します。

korewa onse-ki'go-de_su.

助詞の「は」と長音
上記の例を普通にひらがなで記述したら「これは、おんせいきごうです。」となりますが、音声記号列では、これとは若干異なる表記を行います。
まず、助詞の「は」が、「wa になります。また、「おんせい」が「onse-」、「きごう」が「kigo-」になっています。
音声記号列では、通常の表記方法にとらわれずに音音として記述する必要があります。
助詞の「は」は、音声記号列では「wa」を、長音や二重母音は、必要に応じて長音記号の「-」(半角ハイフン 0x2D)を指定します。助詞の「を」は、「o」と記述します。
他には、「言う」を「yuu」などにするなど、もあります。いずれも、発音を基準に読みを変更してください。

アクセント記号
次に、「'」（0x27）の部分ですが、これはアクセント記号と呼び、アクセントを指定するための記号です。音声記
号列を指定するときは、読み記号だけでなくアクセント記号を正しい位置に付与する必要があります。アクセント
は正確な音声を生成するためにはかかせません。
次の例のように、アクセントが異なると意味も異なってしまいます。

ka'resi.
karesi.

ku'rabu.

14

AQUEST

Data Sheet ATP3010F4

kurabu.

アクセント記号は、アクセント核の読み記号の後ろに付与すると定義していますが、音の高さが「高→低」に変化する部分にアクセント記号をつけると考えるとよいと思います。
最初の例の「これわ」の部分に見られるように、アクセントが平板で「高→低」に変化しない場合にはアクセント
記号はつけません。
なお、アクセント記号をつけるときの注意点として、必ず読み記号の後に指定してください。読み記号は、「jyu」のように複数の文字から成るので、「j'yu」と指定するとエラーになりますので、必ず「jyu'」と指定します。
j'yunbi dekitayo. ×

jyu'nbi dekitayo. ○句切記号
次に、もう少し複雑な音声記号列を示します。
ko'ndowa mo-suko'si/fukuzatuna/onse-ki'go-de_su.
この例では、新たな記号「/」が出てきました。この記号は区切り記号と呼ばれるものの一つで、アクセント句の境界を示すものです。
ここで、日本語の単語を一つの単位としてみると、単語の中には音の高さが「高→低」へと変化する箇所が１つあるか、または１つもないかのいずれかという法則があります。
発音記号列では、この単語という単位を拡張して、単語に助詞なども含め、この高さがシフトする部分をひとつだけ（あるいは無し）含むような区分単位を「アクセント句」と定義しています。ちょっと難しいので、まずは、助詞も含めた単語の単位と考えると良いでしょう。
句切記号は、このアクセント句の境界を指定するための記号です。
上の例では、「/」が無いと、前のアクセントの継続となりますので、音の高低を示すと次のようになり、ちょっとおかしくなりますね。

正しいアクセントを表現するためには、アクセント記号と共に区切り記号の指定も重要です。

また、一つのアクセント句に、２つ以上のアクセント記号を指定することはできません。次の例は間違いです。
hito'tunoakusento'kudesu.

×

句切記号としては、「/」のほかに「;」「+」(共に半角)があります。また、読点「 」(半角スペース）句点「.」（ピリオド）も区切り記号に含まれます。すべての句切記号はアクセント句の句切りを表現していますが、それぞれ異なった機能を持っています。次にこれを説明します。
句切記号の違い
句切記号は、以下の種類、定義となっています。

. (0x20)

この位置にポーズ(無音区間)が入ります。文の終わりを示します。

? (0x3F)

この位置にポーズ(無音区間)が入ります。文の終わりを示します。
15

AQUEST

Data Sheet ATP3010F4
文末の声が高めになります。

(0x20)

この位置にポーズ(無音区間)が入ります。

半角空白

文中の息継ぎの部分に指定します。一般に次の音が高くなります。

, (0x2C)

この位置に短いポーズ(無音区間)が入ります。
半角空白と機能は同じですが、無音区間の長さが短くなります。

; (0x3B)

次のアクセント句が比較的高い音で始まります。ポーズは入りません。

/ (0x2F)

通常のアクセント句の句切に指定します。ポーズは入りません。

+ (0x2B)

前後のアクセント句の句切があいまいな場合に指定します。ポーズは入りません。

それでは、句切記号の違いが合成音声にどのように影響するかを考えてみます。
次の例は、句切記号の種類を変えただけのものです。
a'kusento;na'dono/kanametona'ru,
a'kusento/na'dono/kanametona'ru,
a'kusento+na'dono/kanametona'ru,
a'kusentonadono/kanametona'ru,
実際に合成音を聴取しないと、なかなかわからないのですが、アクセント句「nadono」の部分が、上の例ほど強調されるようになります。
これは、下の例ほど、句切記号前後のアクセント句の分離度が弱くなる、逆に言うとより密に結合していることを示しています。基本的に２つのアクセント句の結合が密であるほど、後ろ側のアクセントは弱くなります。
最後の例は、「aakusento」と「ndono」２つのアクセント句を１つのアクセントに結合したものです。このようにすると、後ろ側のアクセントは消失します。
また、上の例の「かなめとなる」の部分も、「kanameto+na'ru」「kanameto/na'ru」のように記述することも可能です。
上記の例で、どれが正解なのかは決まっていません。実際に合成した音声を聞いて、適切な句切記号を選択していくことが必要でしょう。

文末の句切記号
音声記号列の最後の句切記号として、「.」のほかにも、「,」「?」を指定できます。
「.」の代わりに「,」を指定すると、最後の音の高さが比較的高く終了します。体言止めなど、文の終了感をあまり出したくない場合には「,」で文を終了すると良いと思います。
fairuo/hozonn,
また、疑問文などで、文末の音を高くしたい場合には、「?」を指定します。ただし、疑問文でも文末を高くしない場合もありますので、そのときは、「.」を指定します。
rokuon+sima'suka?

無声化
無声化とは、無声子音に挟まれた、母音の[i][u]が声帯の振動を伴わずに発声される現象を言います。例えば、喉に手を当てて「ありますか？」と発声してみると、「す」の母音部分では手に振動が感じられないと思います。

16

AQUEST

Data Sheet ATP3010F4

無声化を行う場合には、次のように"_"(半角アンダーバー)のついた読み記号を使用します。
e'rume_suno/a'_kusesari-.
アンダーバーを付けられる読み記号は限られていますので、読み記号表に定義されているものだけを使う必要があります。

数値読みタグ（棒読みタグ）
次に、AquesTalk の大きな特徴である、数値読み機能を使った例を示します。

denwaba'ngo-wa <NUM VAL=01-2345-6789>de_su.
「<」「>」記号で囲まれた部分が数値読みのタグ部分です。タグを使って数値を直接指定して読み上げることができます。
もしタグを使わなければ、次のように指定しなくてはなりません。この場合、連濁や促音化による読みの変化、ア
クセント結合によるアクセント位置の変化などを考慮して記述する必要があり、数値が固定でない限り現実的とはいえません。
zeroi'chi ni-sa'nn/yongo- rokuna'na/hachikyu'-de_su.
上記の数値読みタグの例は、棒読みの場合の指定方法で、他に桁読みの指定方法がありますが、こちらは後述します。
棒読みタグの書式は次の通りで、半角の英数記号で記述します。
<NUM VAL=(数値)>(数値)の部分には、「0」～「9」までの数値と「-」「.」の並びで構成します。
「-」は強制的に読みの句切りをつける場合に使用し、この指定が無ければ、内部のルールにより適当に区切られます。
したがって、最初の例を次のように指定することも可能です。
denwaba'ngo-wa <NUM VAL=0123456789>de_su.
「.」は小数点で、「てん」と発声します。
pa'iwa <NUM VAL=3.1415926535897932>.
数値読みタグ（桁読みタグ）
次は、桁読みの指定方法です。
kino'-wa <NUMK VAL=321162567>+de_sita.
この指定で、「三億、ニ千百十六万、二千五百六十七」と読みます。
桁読みタグの書式は次の通りで、半角の英数記号で記述します。
<NUMK VAL=(数値)>(数値)の部分には、「0」～「9」までの数値と「.」の並びで構成します。桁読みでは数値部分に「-」や「,」は指定できません。
「.」は小数点で、「てん」と発声し、小数点以降は棒読みします。

17

AQUEST

Data Sheet ATP3010F4

ところで、桁読みのときには、助数詞の影響をうけて数詞・助数詞の読みやアクセントが変化することが知られています。
有名なところでは、一本

いっぽん (促音化）

二本

にほん

三本

さんぼん (濁音化）・
このような変化は、タグの中に助数詞を指定することで自動的に処理することができます。
書式は次の通りです。
<NUMK VAL=(数値) COUNTER=(助数詞)>(助数詞)の部分には、助数詞の読み記号(アクセント記号も可）の並びを指定します。
例えば、次のように指定します。
nokori+ji'kanwa a'to/<NUMK VAL=10 COUNTER=funn>de_su.
この場合の読み及びアクセントの変化は、ライブラリ内部のルールに従って行われます。
AquesTalk サンプルアプリの[助数詞つきの数値の桁読み]で、様々な数値と助数詞を指定して確認してみてください。
数値読みタグ（英数桁読みタグ）
アルファベット、数値、記号を、適切な読みとアクセントで読み上げます。
数値は、棒読みになります。
また、内部ルールで自動的に区切って読み上げられ、また、区切り位置を指定することも可能です。

<ALPHA VAL=(英数)> または <ALPHA VAL="(英数)">(英数) の部分は、「0」-「9」(半角数値) 、「a」-「z」、「A」-「Z」(半角英数小文字/大文字)、半角記号(巻末の「記号読み表」を参照）の並びで構成します。
ko-doba'ngo-wa <ALPHA VAL=AT-3568P>de_su.
上記は、次のように指定したのと同じようになります。
ko-doba'ngo-wa e-thi'- ha'ifun san/go'-/roku/ha'chi pi'-de_su.

(英数) の部分に、区切り指定が無い場合でも、内部のルールにより適宜区切られて発声されます。
<ALPHA VAL=abcdef>.
上記は、次のように指定したのと同じようになります。
e-/bi-/si-/dhi'- i-/e'fu.

その他
読み記号は基本的な音韻をすべて用意していますが、一部の外来音韻に定義されていないものがあります。例えば「gwi」は未定義であり、指定するとエラーになります。この場合は、他の読み記号を連結して、それらしいものを指定してください。この例では、「gui」のように指定します。定義されている読み記号は、本文書後部の「読み記号表」を参照してください。

18

AQUEST

Data Sheet ATP3010F4

bi'-ruo/gui'tto/nomita'ina.

読点記号はいわゆる書き言葉の読点よりも、多めに指定したほうが良いようです。

次の例に示すように、音声記号列は複数の文を連続して指定することも可能です。しかしながら、1 度に指定できる文字数が 127byte と制限があり、また、タグを多用した場合などでは内部のメモリ不足で生成エラーになる場合があります。なるべく１文毎に指定するほうが良いでしょう。
sandaruo tukkaketoyuu.cyo'tto/ma'tteo ta'nnmatoyuu.

12.2. 音声記号列仕様
文字コード
音声記号列の文字コードは、ASCII 半角記号で指定します。全角や漢字コードを指定することはできません。また、規定されている文字コード以外、例えば、Tab・LF 等を含めることはできません。
記号の種類
音声記号列は、次の４種類の記号を並べて構成します。

1. 読み記号2. アクセント記号
3. 句切記号4. タグ記号
読み記号
読みをローマ字で指定します。一つ一つが日本語の音節に、ほぼ該当します。使用可能な読み記号を「読み記号表」に示します。
アクセント記号
アクセントの位置を「'」(0x27)で指定します。アクセント記号はアクセント核の読み記号の直後に指定します。ア
クセント記号の数は、１つのアクセント句（書式規定参照）に１つ、あるいは指定なしとします。
句切記号
アクセント句の境界を示し、次の種類があります。

. (0x2E)

文の終わりに指定? (0x3F)

文の終わりに指定(疑問形)

空白(0x20)

呼気段落の境界に指定 ポーズ有, (0x2C)

呼気段落の境界に指定 ポーズ有（ 空白より短いポーズ）;(0x3B)

声立てを行う場合に指定 ポーズ無/

(0x2F)

通常のアクセント句の句切り ポーズ無+ (0x2B)

後ろのアクセント句が副次アクセントの場合に指定 ポーズ無

タグ記号
現在、棒読み、桁読み、英数読みの３つのタグが定義されています。
これらは、数値や英数字を直接指定する場合に利用します。それぞれのタグ記号の書式は、次の通りです。なお、助数詞の長さは、31 文字以下に制限されています。

19

AQUEST

Data Sheet ATP3010F4

棒読み<NUM VAL=(数値)>

桁読み<NUMK VAL=(数値)[ COUNTER=(助数詞)]>

英数読み<ALPHA VAL=(英数)> または、<ALPHA VAL="(英数)">（[]は任意の指定を示す）
棒読みの(数値)は、「0」～「9」までの数値と「-」「.」の並びで構成します。
「-」は、読みを句切る位置に指定します。
「.」は、小数点で「てん」と発声します。
桁読みの(数値)は、「0」～「9」までの数値と「.」の並びで構成します。
数値の上限は兆の位までで、最大、9999999999999999 となります。
「.」は小数点で「てん」と発声し、小数点以降は、棒読みになります。

(助数詞)の部分には、助数詞の読み記号(アクセント記号も可)の並びを指定します。句切記号は指定できません。
「対応数詞一覧表」にあるものが詳細に対応している助数詞です。それ以外の助数詞を指定した場合は、内部のデフォルトルールにしたがって変更されます。
英数読みタグは、アルファベット、数値、記号を、適切な読みとアクセントで読み上げます。
数値は、棒読みになります。内部ルールで自動的に区切って読みます。
(英数) の部分は、「0」-「9」(半角数値) 、「a」-「z」、「A」-「Z」(半角英数小文字/大文字)、半角記号の並びで構成します。指定できる記号は「読み記号表」を参照してください。
書式規定
音声記号列の記号の並びには、制約があります。以下にその規定を示します。

音声記号列 :

文 [文...]

文 :アクセント句 句切記号 [(アクセント句 句切記号)...]

アクセント句 :読み記号[読み記号...][アクセント記号][読み記号...]

タグ記号 :=

読み記号[読み記号...]

ひとつの音声記号列には、複数の文を含めることができます。もちろん、音声記号列が一つの文でも構いません。
文は、一つ以上の、アクセント句と区切り記号の組からなります。したがって、文の最後は必ず区切り記号になります。
アクセント句は、一つ以上の読み記号とアクセント記号からなります。1 つのアクセント句内のアクセント記号は
１つあるいは指定無しのいずれかとなります。
タグ記号は、内部的には、読み記号の列として処理されます。

読み記号並びの制限
読み記号は基本的には任意の読み記号を並べることができますが、以下に示すような通常用いない組み合わせは正
しく読めない場合があります。

1. 語頭の長音アクセント句の先頭に「-」。言い換えると文頭または区切り記号の次に「-」は指定できません。
例） 「-ka.」 「watasi;-wa,」

2. 無声化音＋（有声音）、 無声化音＋（長音）
通常、無声化は無声音に挟まれた場合の現象ですので、無声音の読み記号（アンダーバー指定）の後に有声音や長音を指定すると正しく発声しません。
例） 「nai_su-.」 「a_kiya.」

20

AQUEST

Data Sheet ATP3010F4

12.3. 音声記号列サンプル
dennwaba'nngo-wa <NUM VAL=01-2345-6789>desu.
sa-ba-;<NUM VAL=3512>no/ha-dodhi'_su_kuni e'ra-+haxtuse-.
getuyo'-no/<NUMK VAL=21 COUNTER=di>kara <NUMK VAL=8 COUNTER=cha'nnneru>de/yoyaku+sima'sita.
ryo'-kinnwa;<NUMK VAL=550 COUNTER=enn>desu.
sumimase'nn <NUMK VAL=10 COUNTER=funn>+okurema'su.
<NUMK VAL=20 COUNTER=funn>ni e'kide/ma'xtutemasu.
asunote'nnki to-kyo- hare'noti+kumori saiko-ki'onn <NUMK VAL=25 COUNTER=do>.
<NUMK VAL=100 COUNTER=me'-toru>saki ko-ennirigutino/ko-satenno+hidaride'su.
konosaki;<NUMK VAL=3 COUNTER=kiro>/ju-taichu-.tu-kadi'kann;<NUMK VAL=10 COUNTER=funn>yorosi'idesuka?
koredei'i?
baxtuteri-no/ju-denn+kannryo-.
<NUMK VAL=2006 COUNTER=nenn> <NUMK VAL=1 COUNTER=gatu>;<NUMK VAL=15 COUNTER=niti>.
<NUMK VAL=16 COUNTER=di>;<NUMK VAL=5 COUNTER=funn>/<NUMK VAL=35 COUNTER=byo->desu.
bakuonnga ginnse'kaino/ko-gennni/hirogaru.

21

AQUEST

Data Sheet ATP3010F4

12.4. 読み記号表
読み記号表
あ
い
う

え

お

a

i

u

e

o

か

き

く

け

こ

が

ぎ

ぐ

げ

ご

ka

ki

ku

ke

ko

ga

gi

gu

ge

go

さ

す

せ

そ

ざ

ず

ぜ

ぞ

su

se

so

za

zu

ze

zo

_thi _twu _hi

て

と

だ

づ

で

ど

フィ プ

te

to

da

di

du

de

do

_fi

ね
ne
へ

の
no
ほ

ぱ
pa
ば

ぴ
pi
び

ぷ
pu
ぶ

ぺ
pe
べ

ぽ
po
ぼ

ha

hi

he

ho

ba

bi

bu

be

bo

ま
ma
や
ya
ら
ra
わ
wa
きゃ
kya
しゃ
sya
sha
ちゃ
tya
cha
cya
にゃ
nya
ひゃ
hya
つぁ
tsa
ふぁ
fa

み
mi

つ
tu
tsu
ぬ
nu
ふ
hu
fu
む
mu
ゆ
yu
る
ru

じ
zi
ji
ぢ

な
na
は

し
si
shi
ち
ti
chi
に
ni
ひ

無声化読み記号表
キクシシュ_si _syu_ki _ku_shi _shu
スィ チ
チュ ツ
_tyu
_ti
_tu
_swi
_cyu
_chi
_tsu
_chu
ティ トゥ ヒ
ピ

め
me
いぇ
ye
れ
re
うぇ
we
きぇ
kye
しぇ
sye
she
ちぇ
tye
che
cye
にぇ
nye
ひぇ
hye
つぇ
tse
ふぇ
fe

も
mo
よ
yo
ろ
ro
を
wo
きょ
kyo
しょ
syo
sho
ちょ
tyo
cho
cyo
にょ
nyo
ひょ
hyo
つぉ
tso
ふぉ
fo

みゃ
mya

sa
た
ta

ん
nn
n

り
ri
うぃ
wi

きゅ
kyu
しゅ
syu
shu
ちゅ
tyu
chu
cyu
にゅ
nyu
ひゅ
hyu
つぃ とぅ
tsi twu
ふぃfiてぃ てゅ
thi thu
ー
-

_pi

ス
_su
ツィ
_tsi
フ
_fu
_hu

_pu

みゅ みぇ みょmyu mye myo

りゃ
りゅ
rya
ryu
ヴァ ヴィ ヴ
va
vi
vu
ぎゃ
ぎゅ
gya
gyu
じゃ
じゅ
ja
ju
jya
jyu
ぢゃ
ぢゅ

りぇ
rye
ヴェ
ve
ぎぇ
gye
じぇ
je
jye
ぢぇ

りょ
ryo
ヴォ
vo
ぎょ
gyo
じょ
jo
jyo
ぢょ

zya
dya

zyu
dyu

zye
dye

zyo
dyo

びゃ
bya
ぴゃ
pya

びゅ
byu
ぴゅ
pyu
ずぃ どぅ
zwi dwu
すぃ
swi
でぃ でゅ
dhi dhu

びぇ
bye
ぴぇ
pye

びょ
byo
ぴょ
pyo

っ

っ

xtu

xtu
子音を重ねる

22

AQUEST

Data Sheet ATP3010F4

12.5. 対応助数詞一覧表
この表以外の助数詞を指定した場合は、デフォルトルールが適応されます
年

nenn

キロ

kiro

月

gatu

件

kenn

日

nichi

個

ko

時

ji

人

ninn

分

funn

才

sai

秒

byo-

時間

ji'kann

円

enn

台

dai

回

ka'i

丁目

cyo-me

階

kai

月

tuki

ヶ月

ka'getu

番

bann

カロリー

ka'rori-

本

honn

級

kyu-

匹

hiki

行

gyo-

％

pa-se'nto

曲

kyoku

12.6. 記号読み表
記号の読みは実装により異なる場合があります
!

びっくり

^

はっと

#

しゃーぷ

_

あんだー

$

どる

(スペース）、(区切り）

%

ぱーせんと

&

あんど

*

あすた

+

ぷらす

,

かんま

-

はいふん

.

どっと

/

すらっしゅ

:

ころん

;

せみころん

<

しょーなり

=

いこーる

>

だいなり

?

はてな

@

あっと

¥

えん
23

AQUEST

Data Sheet ATP3010F4

13. 改変履歴
2011/11/11

新規作成

24