Speak interpreter モジュールの操作方法です。操作を指定する関数または、操作方法を指示する文字列による発声・発音を行います。
◀ この記事の前に: Speak interpreter( 概要 )
▶ この記事の次に: Speak interpreter( コード )
概 要
Speak interpreterは、発声・発音の操作をおこないます。アプリケーションやリモートコントローラからの文字列の指示により制御を開始します。
操作の概要は以下のとおりです。
- 発声・発音の直接操作
- 既定の文の発声開始
- 発声速度の調整
- 発声する文の書き込み
Speak interpreterは、発声の操作を文字列(コマンド)により統合的に行います。信号( 言葉 )により発声を制御します。発声する文( 音声記号列 )の書き込み、発声速度の設定など、発音・発声に関わるものを一元的に制御します。下位に Voice driver( 発音制御 )があります。
操作方法
操作指示( Speak instructions )は以下のとおりです。
発声の開始
Speak the recorded words.
概 要:
あらかじめ書き込まれた発声する文( 音声記号列 )を指定して開始する。
操作1:
void executeSI( String szInput ) で、インストラクションを実行する。
インストラクション( szInput ): cN
- c: コマンド “sp”( 文字列、’s’ は sound、’p’ は playback )
- N: あらかじめ書き込まれた発声する文( 音声記号列 )の番号を文字で指定
例) executeSI( “sp2” ); 文2 を発声開始
操作2:
void playSI( int nPhrase ) を実行する。
- int nPhrase: あらかじめ書き込まれた発声する文( 音声記号列 )の番号
例) playSI( 2 ); 文2 を発声開始
即時の発声
Speak immediately.
概 要:
引数で指定した文( 音声記号列 )をすぐに発声する。
操作1:
void executeSI( String szInput ) で、インストラクションを実行する。
インストラクション( szInput ): cS [ enter ]
- c: コマンド “si”( 文字列、’s’ は sound、’i’ は immediately )
- S: すぐに発声する文( 音声記号列 )
音声記号列の仕様は以下をご覧ください。
ローマ字音声記号列仕様書: 発音のデータ(文字列)の仕様書 / 株式会社 アクエスト
例) executeSI( “sikonnnichiwa.” ); konnnichiwa.「こんにちは」とすぐに発声開始
操作2:
void speakSI( String szSpeakData ) を実行する。
- String szSpeakData: あらかじめ書き込まれた発声する文( 音声記号列 )の番号(数字)で指定
例) speakSI( “konnnichiwa.” ); konnnichiwa.「こんにちは」とすぐに発声開始
速度の操作
Set speak speed
概 要:
発声速度の設定を行う。
操作1:
void executeSI( String nSpeed ) で、インストラクションを実行する。
インストラクション( szInput ): cS [ enter ]
- c: コマンド “ss”( 文字列、’s’ は sound、’s’ は speed )
- S: 発音速度 [%] を 50 ~ 300の間で文字列で指定
例) executeSI( “ss150” ); 発声速度を 150%( 標準速度の 1.5倍 )に設定
操作2:
void speedSI( int nSpeed ) を実行する。
- int nSpeed: 発音速度 [%] を 50 ~ 300の間で数字で指定
例) speedSI( 150 ); 発声速度を 150%( 標準速度の 1.5倍 )に設定
発声データの書き込み
Write data for speak
概 要:
発声する文( 音声記号列 )を書き込む。
標準構成で搭載しているサンプルプログラムでは、Leafony Blockの USB Leafへの書き込みで使用しています。Arduino IDEのモニタで書き込むことができます。
操作1:
void executeSI( String szData ) で、インストラクションを実行する。
インストラクション( String szData ): cIX
- I: 保存する番号( 1桁の数字を文字で指定 )
SI_VAL_MAX はプログラム内部で指定、SI_VAL_MAX が 10の場合、指定する番号は 0 ~ 9 - X: 発声する文( 音声記号列 )
例) executeSI( “sw2konnnichiwa.” ); 保存場所 2に “konnnichiwa.”を保存
操作2:
void writeDataSI( String szData ) を実行する。
- String szData:
- 文字列の1桁目: 保存する番号( 1桁の数字を文字で指定 )
SI_VAL_MAX はプログラム内部で指定、SI_VAL_MAX が 10の場合、指定する番号は 0 ~ 9 - 文字列の2桁目以降: 発声する文( 音声記号列 )
例) writeDataSI( “2konnnichiwa.” ); 保存場所 2に “konnnichiwa.”を保存
機能の開始と終了
Start or stop speak.
概 要:
発音に関係する回路( 増幅回路 )の電源を ON/OFFする。内蔵DACの開始/終了を行う。
操作1:
void executeSI( int nSwitch ) で、インストラクションを実行する。
インストラクション( szInput ): cP [ enter ]
- c: コマンド “se”( 文字列、’s’ は sound、’e’ は enable )
- P: 操作
VOICE_ON( 1 ) : 発音機能の開始、DAC 増幅回路の電源 ON
VOICE_OFF( 0 ): 発音機能の停止、DAC 増幅回路の電源 OFF
例) executeSI( “se1” ); 発声を準備する。
操作2:
void operateSI( int nSwitch )を実行する。
- int nSwitch: 操作
VOICE_ON : 発音機能の開始、DAC 増幅回路の電源 ON
VOICE_OFF: 発音機能の停止、DAC 増幅回路の電源 OFF
例) operateSI( VOICE_ON ); 発声を準備する。
音声記号列
概 要:
発音は音声合成ライブラリ( AquesTalk pico )を使用しています。このライブラリはローマ字に似た音声記号列を入力することにより発音します。音声記号列の仕様は以下をご覧ください。
ローマ字音声記号列仕様書: 発音のデータ(文字列)の仕様書 / 株式会社 アクエスト
音声を事前に確認しながら音声記号列を作ることができます。以下をご覧ください。
オンラインデモ: 音声のデモをきくことができます / 株式会社 アクエスト
参考情報
参考になる情報は以下のとおりです。
このホームページ内
- 発音・発声( DAC出力 / ハードウエア ): MCUの DACを使用して発音や発声を行うハードウエアを説明します。
- Speak interpreter ( 概要 ): 発声処理の最上位、Speak interrupter の概要です。
- Speak interpreter( 操作説明 ): アプリケーションからの操作方法です。( API )
- Speak interpreter( コード ): コードの詳細を説明します。
- Voice driver( 概要 ): 発音そのものの処理です。( API )
- Voice driver( 操作説明 ): 個々のサーボモータを制御する方法です。
- Voice driver( コード ): コードの詳細を説明します。
- 音声合成ライブラリ: ライブラリの概要や導入方法を説明します。