検索プログラマのメモ帳

壁にぶつかったら検索で調べるプログラマのちょっと遅れたメモ帳。たまに自分で挑戦する。

Skip to: Content | Sidebar | Footer

Android「TTS(音声合成)」の使い方。

22 10月, 2012 (10:33) | android開発 | By: admin

Android TTSを使って英単語や日本語を読み上げるアプリを作成する。

public class MainActivity extends Activity implements TextToSpeech.OnInitListener  {

private TextToSpeech tts;

public void onCreate(Bundle savedInstanceState) {

tts = new TextToSpeech(this, this);

startTTS(“test speech !”);//ttsの起動前だったら読み上げがなされない場合がある。

}

/**
* TTSエンジンがインストール済かどうかを判定
*/
private void checkTTS() {
Intent intent = new Intent();
intent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
startActivityForResult(intent, CHECK_TTS);
}

// チェックの結果を受け取る
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CHECK_TTS) {
if (resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS) {

}else {
//インストール無しなら
Intent install = new Intent();
install.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
startActivity(install);
}
}

}
/**
* 合成を実行
* @param text 読み上げたいテキスト
*/
private void startTTS(String text) {
if(flg_tts){
// 読み上げ中なら止める
if (tts.isSpeaking()) {
tts.stop();
}
tts.speak(text, TextToSpeech.QUEUE_FLUSH, null);
}
}

public void onInit(int status) {
if (status == TextToSpeech.SUCCESS) {
if (tts.isLanguageAvailable(Locale.US) >= TextToSpeech.LANG_AVAILABLE) {
tts.setLanguage(Locale.US); //アメリカ英語に設定
}
}
}

@Override
protected void onDestroy() {
super.onDestroy();

tts.shutdown();
}

Write a comment