Notice
Recent Posts
Recent Comments
Link
투케이2K
65. (AndroidStudio/android/java) tts (Text-to-Speech) 기능을 사용해 텍스트 파일 음성 출력 실시 본문
Android
65. (AndroidStudio/android/java) tts (Text-to-Speech) 기능을 사용해 텍스트 파일 음성 출력 실시
투케이2K 2021. 2. 26. 09:01/* =========================== */
[ 개발 환경 설정 ]
개발 툴 : AndroidStudio
개발 언어 : java
/* =========================== */
/* =========================== */
[소스 코드]
//======== [클래스 전역 변수 선언] ========
String data = "안녕"; //텍스트 데이터
public static TextToSpeech tts; //tts 객체 선언
boolean LangFlag = false; //한국어 지원 여부 확인을 위한 플래그
//======== [onCreate 부분 - 초기 tts 객체 생성] ========
try {
tts = new TextToSpeech(A_TTS.this, new TextToSpeech.OnInitListener() {
@Override
public void onInit(int status) {
if (status == TextToSpeech.SUCCESS) {
//TODO 작업 성공
int language = tts.setLanguage(Locale.KOREAN); //TODO 한국 언어 설정 지정
if (language == TextToSpeech.LANG_MISSING_DATA
|| language == TextToSpeech.LANG_NOT_SUPPORTED) { //TODO 한국 언어 설정을 지원하는지 확인 실시
// 언어 데이터가 없거나, 지원하지 않는경우
Log.d("---","---");
Log.d("//===========//","================================================");
Log.d("//A_TTS//","[TTS 음성 출력 기능]"+" ["+"실행 : 성공 - 한국어 지원 하지 않음"+"]");
Log.d("//===========//","================================================");
Log.d("---","---");
LangFlag = false; //TODO 플래그값 변경
}
else {
// 준비 완료
Log.d("---","---");
Log.d("//===========//","================================================");
Log.d("//A_TTS//","[TTS 음성 출력 기능]"+" ["+"실행 : 성공 - 한국어 지원 가능"+"]");
Log.d("//===========//","================================================");
Log.d("---","---");
LangFlag = true; //TODO 플래그값 변경
}
}
else {
// 작업 실패
Log.d("---","---");
Log.d("//===========//","================================================");
Log.d("//A_TTS//","[TTS 음성 출력 기능]"+" ["+"실행 : 실패"+"]");
Log.d("//===========//","================================================");
Log.d("---","---");
LangFlag = false; //TODO 플래그값 변경
}
}
});
}
catch (Exception e){
e.printStackTrace();
}
//======== [tts 실행 부분] ========
if(LangFlag == true){ //TODO 한국어를 지원하는 경우
tts.speak(data,TextToSpeech.QUEUE_FLUSH, null);
}
else {
tts.speak("default english",TextToSpeech.QUEUE_FLUSH, null);
}
//======== [액티비티 종료 메소드] ========
@Override
public void onDestroy(){
super.onDestroy();
Log.d("---","---");
Log.d("//===========//","================================================");
Log.d("","\n"+"[A_TTS > onDestroy() 메소드 : 액티비티 종료 실시]");
Log.d("//===========//","================================================");
Log.d("---","---");
//TODO === [tts 자원 해제 실시] ===
try {
if(tts != null){
tts.stop();
tts.shutdown();
tts = null;
}
}
catch (Exception e){
e.printStackTrace();
}
}
/* =========================== */
반응형
'Android' 카테고리의 다른 글
Comments