音声合成発音の制御処理でアプリーションと連携するモジュールです。即時に発声したり、すでに保存してある音声記号列で音声を合成して発声します。
◀ この記事の前に: ー
▶ この記事の次に: ー
目 的
Speak interpreterは、発声の操作を文字列(コマンド)により統合的に行います。最初から保存している音声( 音声記号列 )を発音したり、アプリケーションから指示された音声を即時に発音したり、音声記号列を保存したりするなど、発音に関わるものを一元的に制御します。下位にVoice driver( 音声合成発音制御 )があります。
Design Considerations 文字列で操作する意味
Speak interpreterは、発声制御の最上位にありアプリケーションとやりとりを行います。ヒューマノイドは多彩な機能を持つことを想定しています。その場合、高位の情報はやりとりが汎用的であることが望まれます。( 低位の情報はその量や速度から異なる場合があります。)リモートコントロールを含む通信や、他のシステムとの情報のやりとりも文字を使用することにより柔軟に対応することができます。そのため、高位のインタフェースを担う Speak Interpreterは文字にしています。
高速度の対応が必要な場合は、Voice driver など各階層のインタフェースを使用します。これらは目的に適したデータ型でやりとりを行います。
機 能
Speak interpreterは、以下の機能を持ちます。
- 発音を即時操作する
- 既定の音声記号列で発音する( 指定、起動、速度変更 )
- 音声記号列を読み込む
- 増幅回路を省電力制御する
説 明
文字でサーボモータを操作できるため、この処理に文字列を与える方法を変更することにより他の機能との柔軟な連携が実現できます。
例) スマートフォンからBLEなどで文字列を送信することにより Qumcum Lab. から発声する。
例) 他の動作と連係して柔軟な発声を行える。
機 能
Speak interpreterは、以下の機能を持ちます。
- 発声 / Execute SI: 保存してある言葉またはアプリケーションから指示された言葉を発声する
下位制御: Voice driver - 速度の操作 / Set speaking speed : 発声の速度を変更する
下位制御: Voice driver - 音声記号列の書き込み / Write data: 音声記号列の一部は動的に変更ができる
Arduino IDEによる直接制御
試験用に Arduino IDEのモニタから Speak interpreterを制御できます。
Speak interpreterは文字列で制御できるため、PC上の Arduino IDEのモニタに発声させたい音声記号列を入力します。USBを介して Qumcum Lab. に入力した発声指示は Speak interpreterに渡され音声合成発声の制御を行います。このしくみはデバッグ時の動作確認に便利です。
参考情報
参考になる情報は以下のとおりです。
このホームページ内
- 発音・発声( DAC出力 / ハードウエア ): MCUの DACを使用して発音や発声を行うハードウエアを説明します。
- Speak interpreter ( 概要 ): 発声処理の最上位、Speak interrupter の概要です。
- Speak interpreter( 操作説明 ): アプリケーションからの操作方法です。( API )
- Speak interpreter( コード ): コードの詳細を説明します。
- Voice driver( 概要 ): 発音そのものの処理です。( API )
- Voice driver( 操作説明 ): 個々のサーボモータを制御する方法です。
- Voice driver( コード ): コードの詳細を説明します。
- 音声合成ライブラリ: ライブラリの概要や導入方法を説明します。