안드로이드 TTS(Text-To-Speech) 입력받은 글자 음성 변환 읽는 예제


Android/코드창고 2011.11.30 16:37




.Java 파일

XXX   extends Activity implements OnInitListener {
   TextToSpeech _tts;
   boolean _ttsActive = false;
   EditText editT;
   Button bt_start;
   String str;
   
   public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
 // 옆으로
   setContentView(R.layout.main);
   editT = (EditText)findViewById(R.id.et);
  
   bt_start = (Button)findViewById(R.id.read);
   bt_start.setOnClickListener(new OnClickListener() {
             public void onClick(View v) {
              str = editT.getText().toString();
              _tts.setLanguage(Locale.US);
           _ttsActive = true;
           _tts.speak(str,
           TextToSpeech.QUEUE_FLUSH, null);
              }
       });
   }

   @Override
   public void onPause(){
   super.onPause();

   try{
    if (_tts != null){
     _tts.stop();
     _ttsActive = false;
    }
   }catch(Exception e){}
   }

   @Override
   public void onResume(){
   super.onResume();

   _tts = new TextToSpeech(getApplicationContext(), this);
   }

   @Override
   public void onDestroy(){
   super.onDestroy();
   try{
    if (_tts != null){
     _tts.shutdown();
     _tts = null;
    }
   }catch(Exception e){}
   }

   public void onInit(int status) {
   }
 }


Main.xml


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="What do you want say? SmartGrid"
    />
    <EditText
    android:id ="@+id/et"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    />
    <Button
    android:id="@+id/read"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Read"
    />
</LinearLayout>


재밌는 TTS 예제입니다. 기존에 있는 예제는 정해놓은 말만 하는데, 위는 EditText 값을 String 으로 받아와 읽어주는 예제입니다.
응용해서 재미있는 어플을 만들어볼 수 있겠네요. 참고로 TTS는 시스템 설정에서 따로 받아와서 설치를 해주어야 되며, 다음에 TTS 관련 어플 제작하면서 좀 더 깊게 파면서 포스팅 해볼 예정입니다.

저작자 표시 비영리 변경 금지
신고

WRITTEN BY
ShakeJ

0 ,