공식적으로 이번 2학기 컴퓨터 과학 개론의 마지막 과제가 되겠습니다.
보시다시피 이번 12단원의 주제는 AI입니다.
하지만...항상 그러하듯이 이번에도 책에 있는 내용을 심화있게 다루기보다는
책에서 절대로 비중있게 다루지 않은 것에 대해서 이야기 할 것입니다!
책에서 컴퓨터가 사람의 "언어"를 어떻게 처리하는가에 대해서 나오는데,
어떻게 컴퓨터가 사람의 음성을 인식하며,
어떻게 인간의 언어를 이해하며
어떻게 인간의 언어를 발음하는지에 대해서 설명합니다.
저는 이 중에서 컴퓨터가 어떻게 인간의 언어를 발음하는지에 대해서 알아보겠습니다!!!
(미리 앞서서 말씀을 드리자면, 이번에는 진지하게 컴퓨터적인 측면에서 접근하지 않고
개인의 취미에 맞춰서 진행할 예정입니다.
과제점수... 음... 글쎄요 ㅎ 이번에는 좀 낮아도 괜찮지 않을까나요 ㅎㅎㅎㅎ)
Voice Synthesis
즉 컴퓨터가 소리를 내는 방법에는 2가지 정도가 있습니다.
1.Voice Record
말 그대로 사람이 발음하는 것을 녹음한 뒤,
그것을 재생해주는 역할을 합니다.
책에서는 자동전화응답기를 예로 들어줬는데,
제 생각에, 이 기능이 가장 많이 쓰이는 곳은 아마도
대한민국 중, 고등학생의 필수품이라고 할 수 있는 전자사전일것입니다.

전자사전에서 "발음듣기" 버튼을 눌러주면,
원이민이 이미 녹음 해놓은, 저장되어있는 데이터가 재생되는 것이지요.
Voice Record방식은 컴퓨터가 사람이 사용하는 언어를 그대로 재생할 수 있지만
문제는 모든 단어마다 재생 파일이 필요하기 때문에
모든 단어를 발음하기 위해서는 엄청나게 많은 용량을 필요로 하겠지요.
2. Dynamic Voice Generation
Phonemes, 즉 음소를 단위로 해서 컴퓨터가 소리를 만들어내는 방법입니다.
음소란 쉽게 말하자면 발음의 한 단위라고 할 수 있습니다.
예를 들어서 "안녕하세요"를 발음하려고 하면
컴퓨터가 'ㅏ' + 'ㄴ(받침)' + 'ㄴ' + 'ㅕ' + 'ㅇ(받침)' + 'ㅎ' + 'ㅏ' + 'ㅅ' + 'ㅔ' + 'ㅛ'에 지정되어 있는 소리를 차례대로 재생하는 것으로
소리를 만들어내는 것입니다.
물론 Dynamic Voice Generation방법이 자체적으로 목소리를 만들어내는 것은 아닙니다.
사람이 말한 발음에서 특정 음소만을 추출해서 저장하는 것입니다.
Dynamic Voice Generation방법이 어디서 사용되는지는 조금 뒤에 언급하도록 하지요.
(엄청 많이 사용되기 때문이지요. 하하...<-랄까 이게 이 포스트의 중점일지도...)
Dynamic Voice Generation에는 문제가 있습니다.
단어가 매우 어색하게 들리지요.
우리가 말을 할 때는 음의 높낮이 등의 여러가지 수단을 사용해서 매끄럽게 말합니다.
중요하다고 생각하는 단어에 힘을 주어서 말한다거나...
화났을 때는 언성을 높이고 등등...
하지만 Dynamic Voice Generation방식은 그저 음소만 저장했을 뿐이니... 그런 것을 할 수가 없지요.
또한 말하는 것도 정말 기계적입니다.
이 영상을 함께 보시요
(고전짤을 들고와서 죄송합니다!!)
아직 기술이 덜 발전한 탓도 있지만, 각 음절, 또는 각 음소가 끊겨서 들리는 것은 어쩔 수 없는 현상이라고밖에...
하지만 장점은 Voice Record방법과 비교해보면 적은 용량만 있어도 소리를 구현할 수 있는 것이지요!
Dynamic Voice Generation이 더욱 발전될 수록 효율적이라고 생각할 수 있겠네요.
이렇게 Voice Record와 Dynamic Voice Generation에 대해서 알아보았습니다.
이제는 Dynamic Voice Generation를 사용하는 프로그램을 몇몇개 찾아보았습니다.
http://www.voiceware.co.kr/
보이스웨어라고, 국내 기업입니다.
Dynamic Voice Generation관련 프로그램을 판매하며,
홈페이지에서 데모 테스트를 해볼 수 있습니다.
http://www.voiceware.co.kr/demo/demo_text.html(데모 테스트 페이지)
http://download.cnet.com/Aloud-King/3000-2169_4-10778871.html
이 프로그램은 Aloud King이라는 프로그램으로, 오로지 영어만 지원합니다.
역시 영어는...악센트가 있어서 그런지, 한국어보다 발음이 이상하네요.
악센트가 없는 한국어는...그나마 위화감이 덜한데!!
http://www.nextup.com/
이건 TextAloud라는 역시 외국 프로그램인데
특이하게 한국어 지원이 있군요.
위에 있는 Aloud King보다는 더욱 깔끔한 소리를 지원합니다.
이쯤에서 하나를 투척해야겠군요.
열도(일본)의 센스 작렬입니다...
지금까지는 단어를 읽기만 하는 프로그램을 살펴봤는데
이번에는 약간 색다른 프로그램을 살펴보도록 하겠습니다.
WARNING...
하하... 저는 분명히 경고했습니다...
(이제 이게 취미포스팅인지 과제포스팅인지 구분되지 않는군요...)
이른바 하츠네 미쿠로 알려져 있는.

'보컬로이드'라고 불리는 제품들도 Dynamic Voice Generation의 일종이라고 볼 수 있지 않을까요?
물론...보컬로이드는 앞에서 설명한 프로그램들과는 다소 차이를 보여줍니다.
일단 첫째는 음소단위가 아니라 음절단위로 발음이 지정되었다는 점입니다.
한국어나 영어같은 경우는, 자음과 모음을 조합해서 발음을 만들기 때문에
음절단위로 발음을 저장하고 이를 재생해야하는 반면...(이렇게 안하면 너무 많은 경우의 수가 나오죠...)
일본어같은 경우는 음절이 아니라 음소를 조합해서 단어를 만들죠.
히라나가, 즉 50개+a로 이루어져있는 음소를 통해서 말입니다.
게다가 보컬로이드는 애초에 단어를 읽는게 아니라 노래를 부르는 프로그램이기 때문에
발음에 '음'이 존재합니다.
말 그대로 발음만이 있는 것이 아니라 '음'도 지정되어있다는거죠.
어찌 생각해보면 보컬로이드가 일본에서 만들어 질 수 밖에 없지 않나요...
앞에서 말했듯이 일본어는 음소가 단위라서... 음을 지정해주기 쉽다는거죠.
반면...영어나 한글은... 생각만 해도 머리아프네요.
(영어로도 보컬로이드같은 프로그램이 있다고 들었지만... 성능이 구려서 안쓴다고 합니다.)
물론 이 쪽도 Dynamic Voice Generation을 사용했으니까
실제 사람이 부르는거에 비해서 음이 매우 끊기는 것을 느낄 수 있죠.
그래도 어느정도 봐줄만 하니까 사람들이 사용하겠지요?
이렇게 이번 학기의 마지막 과제를 마치도록하겠습니다.
아... 아직 안배운 내용도 많은데...(특히... 17단원은 정말로 배우고 싶었지만서도...)
안타깝네요.. 독학으로 공부하기는...귀찮고!!!
어찌되었건 1학기 동안 수고한 저 자신을 스스로 자축하며...
그리고 1학기동안 수고해주신 교수님께도 감사의 말씀을 드리며.
포스트를 마치도록 하겠습니다.
사실 마지막은 하츠네 미쿠ver 고려대학교 교가로 장식하려고했는데... 분명 고파스에 있었는데 자료를 못찾아서 GG입니다.
보시다시피 이번 12단원의 주제는 AI입니다.
하지만...항상 그러하듯이 이번에도 책에 있는 내용을 심화있게 다루기보다는
책에서 절대로 비중있게 다루지 않은 것에 대해서 이야기 할 것입니다!
책에서 컴퓨터가 사람의 "언어"를 어떻게 처리하는가에 대해서 나오는데,
어떻게 컴퓨터가 사람의 음성을 인식하며,
어떻게 인간의 언어를 이해하며
어떻게 인간의 언어를 발음하는지에 대해서 설명합니다.
저는 이 중에서 컴퓨터가 어떻게 인간의 언어를 발음하는지에 대해서 알아보겠습니다!!!
(미리 앞서서 말씀을 드리자면, 이번에는 진지하게 컴퓨터적인 측면에서 접근하지 않고
개인의 취미에 맞춰서 진행할 예정입니다.
과제점수... 음... 글쎄요 ㅎ 이번에는 좀 낮아도 괜찮지 않을까나요 ㅎㅎㅎㅎ)
Voice Synthesis
즉 컴퓨터가 소리를 내는 방법에는 2가지 정도가 있습니다.
1.Voice Record
말 그대로 사람이 발음하는 것을 녹음한 뒤,
그것을 재생해주는 역할을 합니다.
책에서는 자동전화응답기를 예로 들어줬는데,
제 생각에, 이 기능이 가장 많이 쓰이는 곳은 아마도
대한민국 중, 고등학생의 필수품이라고 할 수 있는 전자사전일것입니다.

전자사전에서 "발음듣기" 버튼을 눌러주면,
원이민이 이미 녹음 해놓은, 저장되어있는 데이터가 재생되는 것이지요.
Voice Record방식은 컴퓨터가 사람이 사용하는 언어를 그대로 재생할 수 있지만
문제는 모든 단어마다 재생 파일이 필요하기 때문에
모든 단어를 발음하기 위해서는 엄청나게 많은 용량을 필요로 하겠지요.
2. Dynamic Voice Generation
Phonemes, 즉 음소를 단위로 해서 컴퓨터가 소리를 만들어내는 방법입니다.
음소란 쉽게 말하자면 발음의 한 단위라고 할 수 있습니다.
예를 들어서 "안녕하세요"를 발음하려고 하면
컴퓨터가 'ㅏ' + 'ㄴ(받침)' + 'ㄴ' + 'ㅕ' + 'ㅇ(받침)' + 'ㅎ' + 'ㅏ' + 'ㅅ' + 'ㅔ' + 'ㅛ'에 지정되어 있는 소리를 차례대로 재생하는 것으로
소리를 만들어내는 것입니다.
물론 Dynamic Voice Generation방법이 자체적으로 목소리를 만들어내는 것은 아닙니다.
사람이 말한 발음에서 특정 음소만을 추출해서 저장하는 것입니다.
Dynamic Voice Generation방법이 어디서 사용되는지는 조금 뒤에 언급하도록 하지요.
(엄청 많이 사용되기 때문이지요. 하하...<-랄까 이게 이 포스트의 중점일지도...)
Dynamic Voice Generation에는 문제가 있습니다.
단어가 매우 어색하게 들리지요.
우리가 말을 할 때는 음의 높낮이 등의 여러가지 수단을 사용해서 매끄럽게 말합니다.
중요하다고 생각하는 단어에 힘을 주어서 말한다거나...
화났을 때는 언성을 높이고 등등...
하지만 Dynamic Voice Generation방식은 그저 음소만 저장했을 뿐이니... 그런 것을 할 수가 없지요.
또한 말하는 것도 정말 기계적입니다.
이 영상을 함께 보시요
(고전짤을 들고와서 죄송합니다!!)
아직 기술이 덜 발전한 탓도 있지만, 각 음절, 또는 각 음소가 끊겨서 들리는 것은 어쩔 수 없는 현상이라고밖에...
하지만 장점은 Voice Record방법과 비교해보면 적은 용량만 있어도 소리를 구현할 수 있는 것이지요!
Dynamic Voice Generation이 더욱 발전될 수록 효율적이라고 생각할 수 있겠네요.
이렇게 Voice Record와 Dynamic Voice Generation에 대해서 알아보았습니다.
이제는 Dynamic Voice Generation를 사용하는 프로그램을 몇몇개 찾아보았습니다.
http://www.voiceware.co.kr/
보이스웨어라고, 국내 기업입니다.
Dynamic Voice Generation관련 프로그램을 판매하며,
홈페이지에서 데모 테스트를 해볼 수 있습니다.
http://www.voiceware.co.kr/demo/demo_text.html(데모 테스트 페이지)
http://download.cnet.com/Aloud-King/3000-2169_4-10778871.html
이 프로그램은 Aloud King이라는 프로그램으로, 오로지 영어만 지원합니다.
역시 영어는...악센트가 있어서 그런지, 한국어보다 발음이 이상하네요.
악센트가 없는 한국어는...그나마 위화감이 덜한데!!
http://www.nextup.com/
이건 TextAloud라는 역시 외국 프로그램인데
특이하게 한국어 지원이 있군요.
위에 있는 Aloud King보다는 더욱 깔끔한 소리를 지원합니다.
이쯤에서 하나를 투척해야겠군요.
열도(일본)의 센스 작렬입니다...
지금까지는 단어를 읽기만 하는 프로그램을 살펴봤는데
이번에는 약간 색다른 프로그램을 살펴보도록 하겠습니다.
WARNING...
하하... 저는 분명히 경고했습니다...
(이제 이게 취미포스팅인지 과제포스팅인지 구분되지 않는군요...)
이른바 하츠네 미쿠로 알려져 있는.

'보컬로이드'라고 불리는 제품들도 Dynamic Voice Generation의 일종이라고 볼 수 있지 않을까요?
물론...보컬로이드는 앞에서 설명한 프로그램들과는 다소 차이를 보여줍니다.
일단 첫째는 음소단위가 아니라 음절단위로 발음이 지정되었다는 점입니다.
한국어나 영어같은 경우는, 자음과 모음을 조합해서 발음을 만들기 때문에
음절단위로 발음을 저장하고 이를 재생해야하는 반면...(이렇게 안하면 너무 많은 경우의 수가 나오죠...)
일본어같은 경우는 음절이 아니라 음소를 조합해서 단어를 만들죠.
히라나가, 즉 50개+a로 이루어져있는 음소를 통해서 말입니다.
게다가 보컬로이드는 애초에 단어를 읽는게 아니라 노래를 부르는 프로그램이기 때문에
발음에 '음'이 존재합니다.
말 그대로 발음만이 있는 것이 아니라 '음'도 지정되어있다는거죠.
어찌 생각해보면 보컬로이드가 일본에서 만들어 질 수 밖에 없지 않나요...
앞에서 말했듯이 일본어는 음소가 단위라서... 음을 지정해주기 쉽다는거죠.
반면...영어나 한글은... 생각만 해도 머리아프네요.
(영어로도 보컬로이드같은 프로그램이 있다고 들었지만... 성능이 구려서 안쓴다고 합니다.)
물론 이 쪽도 Dynamic Voice Generation을 사용했으니까
실제 사람이 부르는거에 비해서 음이 매우 끊기는 것을 느낄 수 있죠.
그래도 어느정도 봐줄만 하니까 사람들이 사용하겠지요?
이렇게 이번 학기의 마지막 과제를 마치도록하겠습니다.
아... 아직 안배운 내용도 많은데...(특히... 17단원은 정말로 배우고 싶었지만서도...)
안타깝네요.. 독학으로 공부하기는...귀찮고!!!
어찌되었건 1학기 동안 수고한 저 자신을 스스로 자축하며...
그리고 1학기동안 수고해주신 교수님께도 감사의 말씀을 드리며.
포스트를 마치도록 하겠습니다.



덧글
덕후인증
지나가다 2011/06/06 20:39 # 삭제 답글
본문에 오류가 있어서 쓰고 갑니다. 한국어도 대표적인 "음절" 단위로 발음되는 언어입니다. 물론 일본어에 비해서 다양한 조합이 가능하죠. 소위 말하는 같은 machine gun language 로 분류됩니다. 발음이 음절단위로 되니 마치 기관총을 쏘듯이 다다다다다다다다 하고 발음하는 것 같이 들린다 하여 이렇게 불리기도 하지요.