SlideShare a Scribd company logo
How to use TextToSpeech
Android (4.0+)
What is a Text to speech!
I love you!
TextToSpeech Methods
TextToSpeech(Context context, OnInitListener onInitListener)
시스템 설정에서 선택된 Default Engine을 기준으로 생성
TextToSpeech(Context context, OnInitListener onInitListener, String Engine)
시스템 설정과는 별도로 사용하고자 하는 Engine을 사용하여 생성
* SDK 15 이상부터 지원
TextToSpeech Methods
areDefaultsEnforced()
해당 값이 true 이면 app에서의 tts engine 설정을 무시(ICE 이상부터 false)
getDefaultEngine()
System 에서 사용자가 설정한 Engine (ex, com.samsung.SMT, com.google.android.tts, etc.) 의
pakcage name 을 String Type으로 return
getDefaultLanguage()
System 에서 사용자가 설정한 Locale 정보를 return
getEngines()
System 에 설치되어 있는 TTS Engine Profile 정보의 List<EnginInfo>를 return
getFeatures(Locale locale)
locale 데이터 위치가 내장(embedded)인지 Network 인지 Set<String>를 return
(두가지 방식을 모두 지원할 수 있음)
setLanguage(Locale loc)
해당 Locale 데이터로 설정. 설정 결과 return
LANG_AVAILABLE, LANG_COUNTRY_AVAILABLE, LANG_COUNTRY_VAR_AVAILABLE, LANG_MISSING_DATA, LANG_NOT_SUPPORTED.)
getLanguage()
선택된 Locale 정보를 Return
isLanguageAvailable(Locale loc)
지원 가능한 Locale 인지 확인 후 값 return
LANG_AVAILABLE, LANG_COUNTRY_AVAILABLE, LANG_COUNTRY_VAR_AVAILABLE, LANG_MISSING_DATA, LANG_NOT_SUPPORTED.)
setPitch(float pitch)
음의 높낮이 설정. SUCESS / ERROR 반환
pitch == 1.0 normal / pitch < 1.0 lower / pitch > 1.0 higher
setSpeechRate(float speechRate)
음의 발음속도 설정. SUCESS / ERROR 반환
speechRate == 1.0 normal / speechRate < 1.0 slower / speechRate > 1.0 faster
getMaxSpeechInputLength()
file저장/speak String 의 최대 크기 (Android 내부 고정 값)
TextToSpeech Methods
setEngineByPackageName(String enginePackageName)
Engine Package (ex. Samsung TTS Engine / Android TTS Engine etc.) 변경
* This method was deprecated in API level 14.
isSpeaking()
현재 Speak 상태인지 검사 후 boolean return
setOnUtteranceCompletedListener(OnUtteranceCompletedListener listener)
발음과 관련된 Listener (발음 완료 후 체크도 할 수 있음)
* This method was deprecated in API level 15.
setOnUtteranceProgressListener(UtteranceProgressListener listener)
발음과 관련된 Listener (발음 완료 후 체크도 할 수 있음)
* SDK 15 이후 부터 이걸 사용해야함! (4.0.3+)
shutdown()
TTS Engine이 사용하는 모든 자원을 Release.
* 다시 사용하려면 TextToSpeech를 다시 Assign 해야함
stop()
TTS Engine이 현재 Speak 하는 것을 Stop 하기 위해 사용
TextToSpeech Methods
speak(String text, int queueMode, HashMap<String, String> params)
음성을 소리로 발성하는 Method. Utterance Listener를 통해 listening함
synthesizeToFile(String text, HashMap<String, String> params, String filename)
음성을 파일로 저장하는 Method. Utterance Listener를 통해 listening함
playEarcon(String earcon, int queueMode, HashMap<String, String> params)
이미지는 ICON, 소리로 나타내는 물체를 나타내는 것을 Earcon. 등록된 Earcon Play
addEarcon(...)
Earcon을 Key와 Wav(Audio파일) 로 해서 등록
addEarcon(“[Tick]”, “/mnt/sdcard/audio/tick.wav”);
addSpeech
TTS Engine 외에 Text 를 외부 wav를 통해 발성하도록 하기 위해 사용
addSpeech(“@#@$”, “/mnt/sdcard/audio/spacial_char.wav”);
playSilence(long durationInMs, int queueMode, HashMap<String, String> params)
쉼표나 마침표 등에서 조용한 음성이 Speak
TextToSpeech Methods
Utterance Listener
HashMap<String, String> params = new HashMap<String, String>();
TextToSpeech ttsEngine = new TextToSpeech(context, onInitListener() {
@Override void onInit(int status) { /* initialize */ }
});
…
if (Build.VERSION.SDK_INT >=15) {
ttsEngine.setOnUtteranceProgressListener(new UtteranceProgressListener() {
@Override public void onStart(String utterID) {}
@Override public void onDone(String utterID) {}
@Override public void onError(String utterID) {}
}
} else {
ttsEngine.setOnUtteranceCompletedListener(new OnUtteranceCompletedListener() {
@Override public void onUtteranceCompleted(String utterID) {}
});
}
…
params.put(Engine.KEY_PARAM_UTTERANCE_ID, “This is your hoped ID”);
ttsEngine.speak(text, TextToSpeech.QUEUE_FLUSH, params);
QUEUE_FLUSH/QUEUE_ADD
ttsEngine.speak(“Hello”, TextToSpeech.QUEUE_FLUSH, params); // #01 Speech
ttsEngine.speak(“Everyone!”, TextToSpeech.QUEUE_FLUSH, params); // #02 Speech
ttsEngine.speak(“See you later!”, TextToSpeech.QUEUE_FLUSH, params); // #LAST Speech
SPEAK > See you later!
ttsEngine.speak(“Hello”, TextToSpeech.QUEUE_ADD, params); // #01 Speech
ttsEngine.speak(“Everyone!”, TextToSpeech.QUEUE_ADD, params); // #02 Speech
ttsEngine.speak(“See you later!”, TextToSpeech.QUEUE_ADD, params); // #LAST Speech
SPEAK > Hello Everyone! See you later!
ttsEngine.speak(“Hello”, TextToSpeech.QUEUE_FLUSH, params); // #01 Speech
ttsEngine.speak(“Everyone!”, TextToSpeech.QUEUE_ADD, params); // #02 Speech
ttsEngine.speak(“See you later!”, TextToSpeech.QUEUE_ADD, params); // #LAST Speech
SPEAK > Hello Everyone! See you later!
ttsEngine.speak(“Hello”, TextToSpeech.QUEUE_FLUSH, params); // #01 Speech
ttsEngine.speak(“Everyone!”, TextToSpeech.QUEUE_ADD, params); // #02 Speech
ttsEngine.stop();
ttsEngine.speak(“See you later!”, TextToSpeech.QUEUE_ADD, params); // #LAST Speech
SPEAK > See you later!
addSpeech / addEarcon
ttsEngine.addSpeech(“glass.wav”, “/mnt/sdcard/glass.wav”);
ttsEngine.playSpeech(“glass.wav”, TextToSpeech.QUEUE_FLUSH, null);
SPEAK > /* glass.wav 의 녹음된 소리가 재생 됨 */
특징 1 : 데이터 영역에 존재하지 않는 것을 별도로 처리할 수 있음
특징 2 : 데이터 영역에 존재 하더라도 다른 소리가 나오도록 처리할 수 있음
ttsEngine.addSpeech(“glass.wav”, “/mnt/sdcard/glass.wav”);
ttsEngine.playSpeech(“Hello glass.wav”, TextToSpeech.QUEUE_FLUSH, null);
SPEAK > Hello glass.wav
특징 1 : 1:1로 매칭되는 경우만 wav 파일이 재생됨
ttsEngine.addEarcon(“[glass.wav]”, “/mnt/sdcard/glass.wav”);
ttsEngine.playEarcon(“[glass.wav]”, TextToSpeech.QUEUE_FLUSH, null);
SPEAK > /* glass.wav 의 녹음된 소리가 재생 됨 */
특징 1 : playSpeech와는 별도로 UI와 관련된 기능성 Play가 가능
ttsEngine.addEarcon(“[glass.wav]”, “/mnt/sdcard/glass.wav”);
ttsEngine.playEarcon(“Hello [glass.wav]”, TextToSpeech.QUEUE_FLUSH, null);
SPEAK > No play any sound!
특징 1 : 1:1 매칭되는 경우가 아니면 아무런 소리도 출력되지 않음
playSilence
ttsEngine.speak(“Hello”, TextToSpeech.QUEUE_FLUSH, null);
ttsEngine.playSlience(10000L, TextToSpeech.QUEUE_ADD, null);
ttsEngine.speak(“World!”, TextToSpeech.QUEUE_ADD, null);
SPEAK > Hello ~~~~ 10 seconds ~~~~ World!
synthesizeToFile
ttsEngine.speak(“Hello world!”, null, “/mnt/sdcard/test.wav”);
SPEAK > No Speak
FILE > /mnt/sdcard/test.wav 생성

More Related Content

PPTX
Android audio system(pcm데이터출력요청-서비스클라이언트)
PPTX
Unity cookbook 15
PPTX
Android audio system(audiopolicy_manager)
PPTX
Android audio system(오디오 플링거 서비스 초기화)
PDF
현재 자바스크립트 표준은 어디쯤
PPTX
Android audio system(오디오 출력-트랙생성)
PPTX
Android audio system(pcm데이터출력준비-서비스서버)
PDF
Function calling convention
Android audio system(pcm데이터출력요청-서비스클라이언트)
Unity cookbook 15
Android audio system(audiopolicy_manager)
Android audio system(오디오 플링거 서비스 초기화)
현재 자바스크립트 표준은 어디쯤
Android audio system(오디오 출력-트랙생성)
Android audio system(pcm데이터출력준비-서비스서버)
Function calling convention

What's hot (7)

PPTX
파이썬 쪼렙 탈출 1주차
PDF
Stack frame
PPTX
고급시스템프로그래밍
PDF
수퍼콜라이더 워크샵 자료
PPTX
Android audio system(오디오 출력-트랙활성화)
PDF
파이썬2.7 기초 공부한 것 정리
PDF
Tensorflow로 플로이드 클라우드에서 합성곱 신경망 (CNN) 구현해보기
파이썬 쪼렙 탈출 1주차
Stack frame
고급시스템프로그래밍
수퍼콜라이더 워크샵 자료
Android audio system(오디오 출력-트랙활성화)
파이썬2.7 기초 공부한 것 정리
Tensorflow로 플로이드 클라우드에서 합성곱 신경망 (CNN) 구현해보기
Ad

Viewers also liked (20)

PPTX
PPT on Android
PDF
[D2SF] Naver 오픈 API 가이드
PPTX
Introduction to myanmar Text-To-Speech
PPTX
Text to speech and word predicition
PDF
A Text To Speech Detection Methodology for Bangla in Android
PPT
안드로이드 개발하기 3rd week
PPSX
Text to-speech & voice recognition
PDF
Ionic adventures - Hybrid Mobile App Development rocks
DOCX
Mflavellpaper
DOC
Vitalii_Gonchar_P_updated
PPTX
Mike wagoner slideshow
PDF
Internal Control Certification – It’s Not Just an Accounting Thing (Credit Un...
PPTX
Notes 5.1 & 5.2 honors
PDF
Newsletter sample
PDF
Customizable newsletter for printers sample
PDF
2013 CPM Conference, Nov 6th, NoSQL Capacity Planning
PPTX
Orange Fight @ Walla Faces
PDF
ΟΔΗΓΙΕΣ ΣΥΜΠΛΗΡΩΣΗΣ ΤΗΣ ΑΙΤΗΣΗΣ – ΥΠΕΥΘΥΝΗΣ ΔΗΛΩΣΗΣ ΣΤΡΑΤΙΩΤΙΚΩΝ ΣΧΟΛΩΝ 2013
PDF
Publikacija za motivacija za volontiranje msp
PPT
Software engineering
PPT on Android
[D2SF] Naver 오픈 API 가이드
Introduction to myanmar Text-To-Speech
Text to speech and word predicition
A Text To Speech Detection Methodology for Bangla in Android
안드로이드 개발하기 3rd week
Text to-speech & voice recognition
Ionic adventures - Hybrid Mobile App Development rocks
Mflavellpaper
Vitalii_Gonchar_P_updated
Mike wagoner slideshow
Internal Control Certification – It’s Not Just an Accounting Thing (Credit Un...
Notes 5.1 & 5.2 honors
Newsletter sample
Customizable newsletter for printers sample
2013 CPM Conference, Nov 6th, NoSQL Capacity Planning
Orange Fight @ Walla Faces
ΟΔΗΓΙΕΣ ΣΥΜΠΛΗΡΩΣΗΣ ΤΗΣ ΑΙΤΗΣΗΣ – ΥΠΕΥΘΥΝΗΣ ΔΗΛΩΣΗΣ ΣΤΡΑΤΙΩΤΙΚΩΝ ΣΧΟΛΩΝ 2013
Publikacija za motivacija za volontiranje msp
Software engineering
Ad

Text to Speech 사용법

  • 1. How to use TextToSpeech Android (4.0+)
  • 2. What is a Text to speech! I love you!
  • 3. TextToSpeech Methods TextToSpeech(Context context, OnInitListener onInitListener) 시스템 설정에서 선택된 Default Engine을 기준으로 생성 TextToSpeech(Context context, OnInitListener onInitListener, String Engine) 시스템 설정과는 별도로 사용하고자 하는 Engine을 사용하여 생성 * SDK 15 이상부터 지원
  • 4. TextToSpeech Methods areDefaultsEnforced() 해당 값이 true 이면 app에서의 tts engine 설정을 무시(ICE 이상부터 false) getDefaultEngine() System 에서 사용자가 설정한 Engine (ex, com.samsung.SMT, com.google.android.tts, etc.) 의 pakcage name 을 String Type으로 return getDefaultLanguage() System 에서 사용자가 설정한 Locale 정보를 return getEngines() System 에 설치되어 있는 TTS Engine Profile 정보의 List<EnginInfo>를 return getFeatures(Locale locale) locale 데이터 위치가 내장(embedded)인지 Network 인지 Set<String>를 return (두가지 방식을 모두 지원할 수 있음)
  • 5. setLanguage(Locale loc) 해당 Locale 데이터로 설정. 설정 결과 return LANG_AVAILABLE, LANG_COUNTRY_AVAILABLE, LANG_COUNTRY_VAR_AVAILABLE, LANG_MISSING_DATA, LANG_NOT_SUPPORTED.) getLanguage() 선택된 Locale 정보를 Return isLanguageAvailable(Locale loc) 지원 가능한 Locale 인지 확인 후 값 return LANG_AVAILABLE, LANG_COUNTRY_AVAILABLE, LANG_COUNTRY_VAR_AVAILABLE, LANG_MISSING_DATA, LANG_NOT_SUPPORTED.) setPitch(float pitch) 음의 높낮이 설정. SUCESS / ERROR 반환 pitch == 1.0 normal / pitch < 1.0 lower / pitch > 1.0 higher setSpeechRate(float speechRate) 음의 발음속도 설정. SUCESS / ERROR 반환 speechRate == 1.0 normal / speechRate < 1.0 slower / speechRate > 1.0 faster getMaxSpeechInputLength() file저장/speak String 의 최대 크기 (Android 내부 고정 값) TextToSpeech Methods
  • 6. setEngineByPackageName(String enginePackageName) Engine Package (ex. Samsung TTS Engine / Android TTS Engine etc.) 변경 * This method was deprecated in API level 14. isSpeaking() 현재 Speak 상태인지 검사 후 boolean return setOnUtteranceCompletedListener(OnUtteranceCompletedListener listener) 발음과 관련된 Listener (발음 완료 후 체크도 할 수 있음) * This method was deprecated in API level 15. setOnUtteranceProgressListener(UtteranceProgressListener listener) 발음과 관련된 Listener (발음 완료 후 체크도 할 수 있음) * SDK 15 이후 부터 이걸 사용해야함! (4.0.3+) shutdown() TTS Engine이 사용하는 모든 자원을 Release. * 다시 사용하려면 TextToSpeech를 다시 Assign 해야함 stop() TTS Engine이 현재 Speak 하는 것을 Stop 하기 위해 사용 TextToSpeech Methods
  • 7. speak(String text, int queueMode, HashMap<String, String> params) 음성을 소리로 발성하는 Method. Utterance Listener를 통해 listening함 synthesizeToFile(String text, HashMap<String, String> params, String filename) 음성을 파일로 저장하는 Method. Utterance Listener를 통해 listening함 playEarcon(String earcon, int queueMode, HashMap<String, String> params) 이미지는 ICON, 소리로 나타내는 물체를 나타내는 것을 Earcon. 등록된 Earcon Play addEarcon(...) Earcon을 Key와 Wav(Audio파일) 로 해서 등록 addEarcon(“[Tick]”, “/mnt/sdcard/audio/tick.wav”); addSpeech TTS Engine 외에 Text 를 외부 wav를 통해 발성하도록 하기 위해 사용 addSpeech(“@#@$”, “/mnt/sdcard/audio/spacial_char.wav”); playSilence(long durationInMs, int queueMode, HashMap<String, String> params) 쉼표나 마침표 등에서 조용한 음성이 Speak TextToSpeech Methods
  • 8. Utterance Listener HashMap<String, String> params = new HashMap<String, String>(); TextToSpeech ttsEngine = new TextToSpeech(context, onInitListener() { @Override void onInit(int status) { /* initialize */ } }); … if (Build.VERSION.SDK_INT >=15) { ttsEngine.setOnUtteranceProgressListener(new UtteranceProgressListener() { @Override public void onStart(String utterID) {} @Override public void onDone(String utterID) {} @Override public void onError(String utterID) {} } } else { ttsEngine.setOnUtteranceCompletedListener(new OnUtteranceCompletedListener() { @Override public void onUtteranceCompleted(String utterID) {} }); } … params.put(Engine.KEY_PARAM_UTTERANCE_ID, “This is your hoped ID”); ttsEngine.speak(text, TextToSpeech.QUEUE_FLUSH, params);
  • 9. QUEUE_FLUSH/QUEUE_ADD ttsEngine.speak(“Hello”, TextToSpeech.QUEUE_FLUSH, params); // #01 Speech ttsEngine.speak(“Everyone!”, TextToSpeech.QUEUE_FLUSH, params); // #02 Speech ttsEngine.speak(“See you later!”, TextToSpeech.QUEUE_FLUSH, params); // #LAST Speech SPEAK > See you later! ttsEngine.speak(“Hello”, TextToSpeech.QUEUE_ADD, params); // #01 Speech ttsEngine.speak(“Everyone!”, TextToSpeech.QUEUE_ADD, params); // #02 Speech ttsEngine.speak(“See you later!”, TextToSpeech.QUEUE_ADD, params); // #LAST Speech SPEAK > Hello Everyone! See you later! ttsEngine.speak(“Hello”, TextToSpeech.QUEUE_FLUSH, params); // #01 Speech ttsEngine.speak(“Everyone!”, TextToSpeech.QUEUE_ADD, params); // #02 Speech ttsEngine.speak(“See you later!”, TextToSpeech.QUEUE_ADD, params); // #LAST Speech SPEAK > Hello Everyone! See you later! ttsEngine.speak(“Hello”, TextToSpeech.QUEUE_FLUSH, params); // #01 Speech ttsEngine.speak(“Everyone!”, TextToSpeech.QUEUE_ADD, params); // #02 Speech ttsEngine.stop(); ttsEngine.speak(“See you later!”, TextToSpeech.QUEUE_ADD, params); // #LAST Speech SPEAK > See you later!
  • 10. addSpeech / addEarcon ttsEngine.addSpeech(“glass.wav”, “/mnt/sdcard/glass.wav”); ttsEngine.playSpeech(“glass.wav”, TextToSpeech.QUEUE_FLUSH, null); SPEAK > /* glass.wav 의 녹음된 소리가 재생 됨 */ 특징 1 : 데이터 영역에 존재하지 않는 것을 별도로 처리할 수 있음 특징 2 : 데이터 영역에 존재 하더라도 다른 소리가 나오도록 처리할 수 있음 ttsEngine.addSpeech(“glass.wav”, “/mnt/sdcard/glass.wav”); ttsEngine.playSpeech(“Hello glass.wav”, TextToSpeech.QUEUE_FLUSH, null); SPEAK > Hello glass.wav 특징 1 : 1:1로 매칭되는 경우만 wav 파일이 재생됨 ttsEngine.addEarcon(“[glass.wav]”, “/mnt/sdcard/glass.wav”); ttsEngine.playEarcon(“[glass.wav]”, TextToSpeech.QUEUE_FLUSH, null); SPEAK > /* glass.wav 의 녹음된 소리가 재생 됨 */ 특징 1 : playSpeech와는 별도로 UI와 관련된 기능성 Play가 가능 ttsEngine.addEarcon(“[glass.wav]”, “/mnt/sdcard/glass.wav”); ttsEngine.playEarcon(“Hello [glass.wav]”, TextToSpeech.QUEUE_FLUSH, null); SPEAK > No play any sound! 특징 1 : 1:1 매칭되는 경우가 아니면 아무런 소리도 출력되지 않음
  • 11. playSilence ttsEngine.speak(“Hello”, TextToSpeech.QUEUE_FLUSH, null); ttsEngine.playSlience(10000L, TextToSpeech.QUEUE_ADD, null); ttsEngine.speak(“World!”, TextToSpeech.QUEUE_ADD, null); SPEAK > Hello ~~~~ 10 seconds ~~~~ World!
  • 12. synthesizeToFile ttsEngine.speak(“Hello world!”, null, “/mnt/sdcard/test.wav”); SPEAK > No Speak FILE > /mnt/sdcard/test.wav 생성