Android 台灣中文網

標題: Android怎麼實現語音朗讀 [打印本頁]

作者: 暗桌之光    時間: 2011-6-14 15:55
標題: Android怎麼實現語音朗讀
在Android 實現語音功能只需要幾段簡單的代碼即可完成。
  1. package com.terry;

  2. import java.util.Locale;

  3. import android.app.Activity;
  4. import android.os.Bundle;
  5. import android.speech.tts.TextToSpeech;
  6. import android.speech.tts.TextToSpeech.OnInitListener;
  7. import android.util.Log;
  8. import android.view.View;
  9. import android.view.View.OnClickListener;
  10. import android.widget.Button;
  11. import android.widget.EditText;

  12. public class speechActivity extends Activity {
  13.     private TextToSpeech mSpeech;
  14.     private Button btn;

  15.     private EditText mEditText;

  16.     /** Called when the activity is first created. */
  17.     @Override
  18.     public void onCreate(Bundle savedInstanceState) {
  19.         super.onCreate(savedInstanceState);
  20.         setContentView(R.layout.main);

  21.         btn = (Button) findViewById(R.id.Button01);
  22.         mEditText = (EditText) findViewById(R.id.EditText01);
  23.         btn.setEnabled(false);
  24.         mSpeech = new TextToSpeech(this, new OnInitListener() {

  25.             @Override
  26.             public void onInit(int status) {
  27.                 // TODO Auto-generated method stub
  28.                 if (status == TextToSpeech.SUCCESS) {
  29.                     int result = mSpeech.setLanguage(Locale.ENGLISH);
  30.                     if (result == TextToSpeech.LANG_MISSING_DATA
  31.                             || result == TextToSpeech.LANG_NOT_SUPPORTED) {
  32.                         Log.e("lanageTag", "not use");
  33.                     } else {
  34.                         btn.setEnabled(true);
  35.                         mSpeech.speak("i love you", TextToSpeech.QUEUE_FLUSH,
  36.                                 null);
  37.                     }
  38.                 }
  39.             }
  40.         });

  41.         btn.setOnClickListener(new OnClickListener() {

  42.             @Override
  43.             public void onClick(View v) {
  44.                 // TODO Auto-generated method stub
  45.                 mSpeech.speak(mEditText.getText().toString(),
  46.                         TextToSpeech.QUEUE_FLUSH, null);
  47.             }
  48.         });

  49.     }

  50.     @Override
  51.     protected void onDestroy() {
  52.         // TODO Auto-generated method stub
  53.         if (mSpeech != null) {
  54.             mSpeech.stop();
  55.             mSpeech.shutdown();
  56.         }
  57.         super.onDestroy();
  58.     }
  59. }
複製代碼

作者: danny9087    時間: 2011-11-10 19:52
package com.terry;

import java.util.Locale;

import android.app.Activity;
import android.os.Bundle;
import android.speech.tts.TextToSpeech;
import android.speech.tts.TextToSpeech.OnInitListener;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class speechActivity extends Activity {
    private TextToSpeech mSpeech;
    private Button btn;

    private EditText mEditText;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        btn = (Button) findViewById(R.id.Button01);
        mEditText = (EditText) findViewById(R.id.EditText01);
        btn.setEnabled(false);
        mSpeech = new TextToSpeech(this, new OnInitListener() {

            @Override
            public void onInit(int status) {
                // TODO Auto-generated method stub
                if (status == TextToSpeech.SUCCESS) {
                    int result = mSpeech.setLanguage(Locale.ENGLISH);
                    if (result == TextToSpeech.LANG_MISSING_DATA
                            || result == TextToSpeech.LANG_NOT_SUPPORTED) {
                        Log.e("lanageTag", "not use");
                    } else {
                        btn.setEnabled(true);
                        mSpeech.speak("i love you", TextToSpeech.QUEUE_FLUSH,
                                null);
                    }
                }
            }
        });

        btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                mSpeech.speak(mEditText.getText().toString(),
                        TextToSpeech.QUEUE_FLUSH, null);
            }
        });

    }

    @Override
    protected void onDestroy() {
        // TODO Auto-generated method stub
        if (mSpeech != null) {
            mSpeech.stop();
            mSpeech.shutdown();
        }
        super.onDestroy();
    }
}
作者: jamesliao66    時間: 2012-1-30 00:30
真好...昨天才在想文字轉語音要怎麼用...謝謝啦

作者: g6a2m1e2    時間: 2012-9-10 21:38
這樣的話要有語音檔嗎
還是自己用麥克風講話他就會轉成文字了?
作者: dennyding    時間: 2012-9-28 13:54
可以整個Project包,  一起Share嗎?
我貼在project裏,  有一推error.   看來是跟Layout有關.
作者: dennyding    時間: 2012-9-28 15:05
剛剛調出來. 只講英文.  請問要講中文要怎麼改?




歡迎光臨 Android 台灣中文網 (https://apk.tw/) Powered by Discuz! X3.1