AndroidのAdobe AIRでTextToSpeach(TTS)

ネイティブ拡張すれば実現できる。
既に実行して居る方がいて、しかもApache License。とても助かります。

ただ、FlashDevelopでAndroid用ANEを使う情報が中々見つからなかったので、エラーとの格闘で苦労した。 この記事 の通りにしてようやく上手くいった。

FlashDevelopでの使用手順

1 aneファイルをlibディレクトリ内にコピーする。今回は AneLab-TTS.ane
2 コピーしたaneファイルを 右クリック => Add To Library
3 再度ファイルを 右クリック => Options => External Library
4 bat/Packager.bat を編集する。

call adt -package [...] %FILE_OR_DIR% -extdir lib/ 

5 application.xml に拡張の識別子を書く

 
	<extensions>
		<extensionID>so.ane.tts.TTS</extensionID>
	</extensions>
 

AneLab-TTSの使い方

使い方はとても簡単かつシンプル。 Google Code にサンプルコードがあるので、こちらを参考に簡単に解説。

各イベント

_tts.addEventListener(TTSEvent.CREATE_ERROR, onError); //create時のエラー
_tts.addEventListener(TTSEvent.CREATE_SUCCESS, onSuccess); //create時の成功処理
_tts.addEventListener(TTSEvent.PLAY_COMPLETED, onSuccess); //読み上げ完了時の処理

メソッド

_tts.speak(speakText.text, p, s); // speak(読み上げ内容,ピッチ,レート)
_tts.stop(); //読み上げ中止
_tts.shutdown(); // これを実行すると、speakしても読み上げられない。