안드로이드 스튜디오

3.1 안드로이드 스튜디오 Text2Speech

coding art 2020. 2. 22. 17:54
728x90


앱인벤터 코드 작성 시 첫 번째 실습이 바로 Text2Speech 이다. TextBox 에 문자열을 입력 받아 Sound 로 바꾸어 주는 즉 Text2Speech 기능을 사용하여 음성으로 바꾸어 주는 것이다. 간단하면서 아주 쉬운 예제이다. 하지만 안드로이드 스튜디오에서는 사용하는 안드로이드 OS 버전 문제까지 포함하여 제법 복잡하다. 따라서 앞부분은 블로그 설명대로 따라 해보고 LOLLIPOP 버전 처리 이후부터는 복사 붙여넣기 하여 시도해 보자.

 

안드로이드 스튜디오에서는 activity_main.xml에서 EditText 위젯을 사용하여 문자열을 입력하고 아울러 Button을 하나 설치해 둔 상태에서 MainActivity에서는 OnClickListener 명령에 의해 문자열이 입력 된 후 버튼이 클릭되기를 대기하면 된다.     TextToSpeech를 선택 더블 클릭하여 자동완성과 함께 import ∙∙∙라이브러리가 완성된다.


한편 빨간색 변수 tts를 처리함에 있어서 field를 생성시키고자 하면 private TextToSpeech tts 변수 생성이 동반된다. TextToSpeech는 위젯이 아닌 라이브러리이다.




setContentView 에 이어서 btn_Speak을 상속받아 setOnClick∙∙∙을 다음과 같이 코딩하면 자동 완성이 된다. btn_Speak 이 클릭되면 OnClickListner 가 실행된다.


onClick speakOut 명칭의 method를 입력하면 하부에 자동으로 생성이 되며 이 부분에 텍스트 문자를 처리할 수 있는 코드를 작성하자.


tts.speak 명령을 자동 완성 채움으로 작성하자. 앞서 준비했던 CharSequence text를 입력 데이터로 삼고 Queue 모드는 FLUSH 로 하자. ADD 와의 차이점은 코드를 완성 후 바꾸어서 시험해 볼 필요가 있다. 명령 롼성 후에 speak 하단에 붉은 줄이 남아 있어서 모니터 해보니 API 종속성 문제가 거론되어 있어 클릭하였더니 @RequiresAPI∙∙∙LOLLIPOP문이 헤더 영역에 생성되면서 해결되었다. LOLLIPOPIceCream Sandwitch처럼 안드로이드 OS 버전 명이다.



method speakOut()에 이어 @Overide onDestroy()를 입력한다.



onInit 코딩에서 입력된 문자열 언어가 지원가능한지를 체크하여 지원이 불가능하면 에러 메시지를 콘솔 Logcat 창을 통해 출력하자. 이 부분이 언어 선택 설정이므로 KOREA     로 바꾸어 시험해 보도록 한다.


 

사용언어를 다음과 같이 KOREA 로 바꾸어 보자. 결과를 시험하려면 에뮬레이터에서는 한글 자판이 뜨지 않으므로 반드시 자신의 스마트 폰을 연결하여 시험하자.



시험결과는 성공적이다. TextView의 크기를 늘려서 긴 문장을 말하도록 해보자. 다음과 같이 Pitch Speedrate를 사용하여 말의 높이와 속도를 조절해 보자. 속도 0.1 이면 충청도 수준이다.





위 내용은 다음 url 주소의 블로그를 참조하여 LoLLIPOP 버전 문제를 수정하였다.

Android Text to Speech converter code in Android Studio

https://www.androidtutorialpoint.com/basics/android-text-speech-converter-code-android-studio/

 

첨부된 코드를 다운받아 시험해 보자.

Text2Speech.zip






Text2Speech.zip
0.13MB