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

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();
}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です