[Android] 「先生!ドロイド君が話すんです!」(;゚Д゚))))

| トラックバック(0) |

Android 1.6 から Text-to-speech (TTS) 機能がサポートされました!

テキストを音声に変換して再生することができます。

さっそく、サンプルを作ってみましたので、是非お試しください。

TTSDemo.png

 ※要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);
            }
        }
    };
}

 

あわせて読みたい

 

※追記:多少ですが見やすくなるよう変更しました・・・

トラックバック(0)

トラックバックURL: http://mt.adakoda.com/mt-tb.cgi/316

2016年8月

  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31