Android 1.6 から Text-to-speech (TTS) 機能がサポートされました!
テキストを音声に変換して再生することができます。
さっそく、サンプルを作ってみましたので、是非お試しください。

※要Android1.6 (API Level 4)
※紙面の都合上、コードが短くなるようにハードコードを含めて、推奨しない書き方をしておりますが、ご理解ください。
サンプルソースコード
package com.adakoda.android.ttsdemo;
import java.util.Locale;
import android.app.Activity;
import android.os.Bundle;
import android.speech.tts.TextToSpeech;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.adakoda.android.ttsdemo.R.id;
public class TTSDemoActivity extends Activity implements
TextToSpeech.OnInitListener {
private EditText mText;
private Button mClear;
private Button mSpeak;
private TextToSpeech mTts;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mText = (EditText) findViewById(id.text);
mClear = (Button)findViewById(id.clear);
mClear.setOnClickListener(mClearClickListener);
mSpeak = (Button)findViewById(id.speak);
mSpeak.setOnClickListener(mSpeakClickListener);
mSpeak.setEnabled(false);
mTts = new TextToSpeech(this, this);
}
@Override
public void onInit(int status) {
boolean success = false;
if (status == TextToSpeech.SUCCESS) {
Locale locale = Locale.ENGLISH;
if (mTts.isLanguageAvailable(locale) >=
TextToSpeech.LANG_AVAILABLE) {
mTts.setLanguage(locale);
success = true;
}
}
if (success) {
mSpeak.setEnabled(true);
} else {
Toast.makeText(this, "Failed to initialize",
Toast.LENGTH_LONG).show();
}
}
@Override
protected void onDestroy() {
super.onDestroy();
if (mTts != null) {
mTts.shutdown();
}
}
private View.OnClickListener mClearClickListener =
new View.OnClickListener() {
@Override
public void onClick(View v) {
mText.setText("");
}
};
private View.OnClickListener mSpeakClickListener =
new View.OnClickListener() {
@Override
public void onClick(View v) {
String textString = mText.getText().toString();
if (textString.length() > 0) {
if (mTts.isSpeaking()) {
mTts.stop();
}
mTts.setSpeechRate((float)(100.0f /100.0f));
mTts.speak(textString, TextToSpeech.QUEUE_FLUSH, null);
}
}
};
}
あわせて読みたい
- [Android] こいつ認識するぞ! | Android 1.5で追加された音声認識(RecognizerIntent) - adakoda
- [Android] Android で顔認識ができる FaceDetector クラス - adakoda
※追記:多少ですが見やすくなるよう変更しました・・・
