반응형
안드로이드(Android) 간단하게 TTS(Text-To-Speech) 구현하기 |
개발환경 : window 7 64bit, Eclipse Mars, Android 4.2.2 |
안드로이드에서는 텍스트를 소리로 바꿔주는 기능이 존재합니다. 1.6 버전부터 지원하고 있는데 거의 완벽하게 소리로 전환이 가능합니다. 이 기능에 대해서 간단하게 구현된 것입니다. |
TTS 를 사용하기 위해 두개의 클래스를 사용합니다.
실질적인 기능을 하는 TextToSpeech, 이벤트를
구현할 인터페이스 OnInitListener 입니다.
android.speech.tts.TextToSpeech; android.speech.tts.TextToSpeech.OnInitListener;
TextToSpeech 객체를 생성하는데 인수로 Context 와
OnInitListener 를 요구하므로 메인 Activity 에
OnInitListener 인터페이스를 상속합니다.
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_sample_activity6); myTTS = new TextToSpeech(this, this); }
그리고 OnInitListener 인터페이스 클래스에 제공되는
하나의 함수가 있는데 onInit 입니다.
이 함수를 구현하는데 이곳에 소리로 전환할
텍스트를 넣으면 됩니다.
onInit 함수는 텍스트를 소리로 전환하기 위해
speak() 라는 함수를 사용합니다. 여기에 옵션으로
들어가는 TextToSpeech.QUEUE_FLUSH 는 큐에 모든
값을 없애고 초기화한후 값을 넣는 옵션입니다.
TextToSpeech.QUEUE_ADD 는 현재 있는 큐값에
추가하는 옵션입니다.
public void onInit(int status) { String myText1 = "안녕하세요 안드로이드 블로그 녹두장군 입니다."; String myText2 = "말하는 스피치 입니다."; myTTS.speak(myText1, TextToSpeech.QUEUE_FLUSH, null); myTTS.speak(myText2, TextToSpeech.QUEUE_ADD, null); }
Activity 가 소멸되면 TTS 객체는 소멸해야 합니다.
그래서 onDestory() 함수에 그 소스가 있습니다.
@Override protected void onDestroy() { super.onDestroy(); myTTS.shutdown(); }이것을 구현한 메인 Activity 전체 소스 입니다.
import android.app.Activity; import android.os.Bundle; import android.speech.tts.TextToSpeech; import android.speech.tts.TextToSpeech.OnInitListener; public class SampleActivity7 extends Activity implements OnInitListener { private TextToSpeech myTTS; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_sample_activity6); myTTS = new TextToSpeech(this, this); } public void onInit(int status) { String myText1 = "안녕하세요 안드로이드 블로그 녹두장군 입니다."; String myText2 = "말하는 스피치 입니다."; myTTS.speak(myText1, TextToSpeech.QUEUE_FLUSH, null); myTTS.speak(myText2, TextToSpeech.QUEUE_ADD, null); } @Override protected void onDestroy() { super.onDestroy(); myTTS.shutdown(); } }
반응형
'안드로이드 개발' 카테고리의 다른 글
안드로이드(Android) AnimationDrawable 이용하여 애니메이션 만들기 (0) | 2014.10.28 |
---|---|
안드로이드(Android) 스레드를 이용하여 애니메이션 구현하기 (0) | 2014.10.28 |
안드로이드(Android) 간단한 스레드 사용법과 숫자값 올리기 (0) | 2014.10.27 |
안드로이드(Android) 아날로그 시계의 시간을 음성(TTS) 으로 알려주기 (3) | 2014.10.27 |
안드로이드(Android) WebView 브라우저기능중 URL 이동바 구현 (0) | 2014.10.26 |
안드로이드(Android) WebView 이용해 브라우저구현과 메뉴구현 (0) | 2014.10.25 |
안드로이드(Android) 스마트 폰에 모든 시스템 정보 알아보기 (1) | 2014.10.25 |
안드로이드(Android) CPU 버전 알아오기 (0) | 2014.10.24 |