2010년 큰딸이 한글을 배우기 시작할 때 프로그래머인 아빠가 뭐해줄게 없을까 고민하다가 만들게 된 프로그램 이 있습니다. 나름 한글 공부하는데 도움이 됐으면 해서 이름도 한글 공부라고 짖고 아이들이 재미있어 했으면 좋겠다는 생각에 구현을 하다 보니 TTS 기능이 필요해서 구글 번역을 이용하기로 했습니다.
인터넷이 연결된 곳에서는 잘 작동을 했었거든요!!!
‘ㄱ’글자 버튼을 누르면 텍스트 박스에 ‘ㄱ’ 이 입력됩니다.
한글 공부시키려고 만들었었는데..
마우스 연습도 되네요!!!
물론 저걸로 한글을 깨우치진 않고 컴퓨터를 가지고 놀때 보여준 프로그램 입니다.

구글 번역 서비스를 사용하신분을 아시겠지만
구글 번역 서비스에 번역된 텍스트를 읽어주는 기능이 있습니다.
그서비스가 어떻게 구현회는지 분석하다보니 번역 URL에 테스트를 던지면
mp3파일형식의 스트림으로 전달해주길래
그기능을 이용해서 TTS기능을 구현해보았습니다.
소스는 정말 간단합니다.
인디컴포넌트중 idHTTP 컴포넌트를 사용했습니다.
var
Stream : TMemoryStream;
begin
// 구글 TTS 사용
Stream := TMemoryStream.Create;
try
// idHTTP를 사용할때 UserAgent를 입력해야 하더군요
IdHTTP1.Request.UserAgent := 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.3) Gecko/20100401';
// URL 주소를 보면아시겠지만 한글을 쓸꺼라 ko 입니다.
// 리턴받는 스트림이 mp3형태입니다.
IdHTTP1.Get(TIdURI.URLEncode('http://translate.google.com/translate_tts?tl=ko&q=' + txtHangul.Text), Stream);
finally
MediaPlayer1.Close;
// 파일을 임시로 저장하고
Stream.SaveToFile(ExtractFilePath(Application.ExeName) + 'temp.mp3');
// 미디어 플레이어 컴포넌트로 재생
MediaPlayer1.FileName := ExtractFilePath(Application.ExeName) + 'temp.mp3';
MediaPlayer1.Open;
MediaPlayer1.Play;
end;
end;
“안녕하세요” 라고 입력한후 실행시키면 아름다운(?) 여성의 목소리로 “안녕하세요” 라고 들립니다.
목소리 선택은 어떻게 하는지 아직 모르겠네요!
PS : 2017.09.29 현재 구글에서 막아서 동작 안 하네요ㅠ.ㅠ
저처럼 호출하는 사람들이 많았나 봐요!!!