한 글자씩 받은 것 들을 배열에 저장하고 마지막에 TextToSpeech 기능을 이용하여 TTS 기능을 사용하는 것인데 현재는 예를 들어
h, e, l, l, o를 입력하면 이 기능이 작동하질 않고 만약 i, n 을 입력하면 '인' 이라고 읽질 않고 '아이', '엔' 이런 식으로 읽습니다. 그리고 아예 4글자를 넘어가면
이렇게 한 글자씩도 읽질 못합니다. 제가 원하는 동작은
한 글짜식 아스키코드를 입력 받고(8비트 배열), 이를 배열에 저장하여 마지막에 speak라는 메소드를 이용하면 이 기계 아나운서가 쭉 읽어주는
ex) h, e, l, l, o를 입력시 '헬로우' 라고 읽는 기능을 원하고 있습니다. 어떤 부분이 잘못되었는지 알려주시면 감사하겠습니다!
mBtnTTS.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View view) {
tts.setPitch(1.0f); // 음성 톤은 기본 설정
tts.setSpeechRate(1.0f);
tts.setLanguage(Locale.KOREAN);
tts.speak(mTvReceiveData.getText().toString(), TextToSpeech.QUEUE_FLUSH, null);
mTvReceiveData.setText(null);
}
});
mBluetoothHandler = new Handler() {
public void handleMessage(Message msg) {
if (msg.what == BT_MESSAGE_READ) {
String readMessage =null ;
try {
readMessage = new String((byte[]) msg.obj, "UTF-8");
mTvReceiveData.append(readMessage);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
};
}