안녕하세요?
디바이스마트의 피토휘 솔다입니다
이번 시간에는 아두이노에게
진짜 '무야호'를 외치게 하는 시간이 되겠습니다
과정이 굉장히 복잡하기 때문에 포스팅을
차근차근 참고해가시며 따라하시는 것이 좋습니다
겟업만큼 과정이 복잡하다!
-
우선 사전 준비해야할 사항이 많습니다
윈도우10 기준입니다
-audacity 설치
-freemat 설치
-인코딩을 위한 .m 파일 다운로드
사용할 프로그램 설치먼저 해보겠습니다
첫번째 audacity의 설치입니다
아래의 링크를 통해 공식사이트로 접속해주세요
왕화살표가 가리키고 있는 다운로드 페이지로 접속합니다
빨간 네모칸에 있는 버튼 중
본인의 운영체제에 맞는 설치 파일을 받아줍시다
저는 윈도우를 선택했습니다
적당한 폴더에 다운로드 받았습니다
설치 파일을 실행시켜줍시다
설치할때 특별히 설정해줘야 할 부분이 없어서
빠르게 넘어가겠습니다
한글지원이 됩니다!
한글로 설치하겠습니다
쭉~ 다음다음다음
맨 마지막에 지금 실행할꺼냐는 체크박스는
해제하고 설치를 완료했습니다
두번째 freemat의 설치입니다
아래의 링크를 통해 공식사이트로 접속해주세요
이번에도 왕화살표가 가리키는 버튼을 눌러
다운로드 페이지로 진입합니다
다운로드 페이지로 가는 링크인 줄 알았는데
스크롤이 내려가네요
빨간줄을 그은 문장을 클릭해줍니다
이번에는 진짜 다운로드 페이지 링크였습니다
소스포지로 링크되어있는데
잠시 기다리시면 자동으로 다운로드를 시작합니다
다운받은 셋업파일을 실행시켜서 설치해줍시다
이번에도 달리 설정할건 없습니다
가능한 한 모든 프로그램을 종료하고 설치하라고 하지만
저는 그냥 설치했습니다 because 말안듣는 나쁜 어른이기 때문에
이제 쭉쭉 설치파일이 시키는데로 설치해주세요 어렵지 않습니다
짜잔~
이제 설치할만한건 다 설치 했습니다
그리고 마지막으로 다운로드 받을 파일이 있습니다
아래의 링크를 눌러 깃허브로 들어가주세요
녹색의 코드 단추를 눌러줍니다
그럼 이렇게 펼쳐지는데 여기서 [Download ZIP]을 눌러줍니다
다운받은 모습입니다
저번에 포스팅에서 받은 Talkie 라이브러리와 똑같이 생겼는데
이 친구는 Arduino IDE 1.0.X에서만 작동합니다
약... 8~9년전에 만들어졌기 때문입니다
압축을 풀어줍시다
이렇게까지 일단 사전 설치작업은 완료되었습니다
분량 너무많아~~
-
드디어 음성 파일을 만들 시간입니다
아래 링크의 사이트로 접속해주세요
왕화살표가 가리키는 주황색 단추를 눌러 가입해주세요
가입 과정은 생략하겠습니다
구글이나 페이스북 아이디가 있으면 가입이 좀 더 편합니다
가입이 완료되었다면 왕화살표가 가리키는 로그인 버튼을 눌러
로그인해줍시다
이런 화면이 나옵니다
왕화살표가 가리키는 녹색 [Create Audio] 버튼을 눌러주세요
세가지 선택지가 나오는데
우리는 TTS 기반으로 만들 예정이기 때문에
맨 왼쪽 선택지를 골라줍니다
왕화살표가 가리키는 곳을 클릭하면
언어와 목소리를 설정할 수 있습니다
지금은 영어로 되어있는데 이걸 한글로 바꿔줍시다
김연아의 왼발과 박지성의 오른발이 있는 나라를 선택해줍니다
한국어라면 아무 목소리를 선택하셔도 좋지만
저는 뭔가 어색한 목소리를 내는 '창민'이라는 목소리를 선택했습니다
말하고 싶은 단어를 써줍니다
저는 '무야호'라고 썼습니다
단어 앞에 스피커 모양을 눌러보면 들어보실 수 있습니다
억양이 느낌이 안살아서 '무 야호'로 수정했습니다
문장부호는 문장부호를 그대로 읽어서 '무~ 야호~'라고 쓰면
'무물결표 야호'라고 읽어버립니다
대신 읽는 속도를 바꿔줍시다
왕화살표가 가리키는 부분을 누르시면 속도를 조절하실 수 있습니다
저는 40%로 조절했습니다
원하는 정도로 조절이 되었다면
왕화살표가 가리키는 [Convert to Speech]를 눌러줍니다
그럼 이런 화면으로 나와지는데 왕화살표가 가리키는 [Download]를 눌러줍시다
그럼 '무 야호.mp3' 파일이 받아집니다
이제 mp3 파일까지 확보했습니다
아직 갈길이 머네요ㅠㅠ
-
생성된 mp3 파일을 특정 포멧의 wav 파일로 변환해줘야합니다
아래 링크의 사이트로 접속해주세요
이런 페이지가 나옵니다
왕화살표가 가리키는 [파일 열기]를 눌러줍니다
폴더 한켠에 재워놨던 [무 야호.mp3]파일을 선택해줍시다
WAV 파일로 젼환시켜줘야 하기 때문에
2번 칸에서 WAV를 선택해줍니다
[고급설정]을 눌러줍니다
샘플 전송률을 "8000kHz"로 채널을 "1"로 설정해줍니다
[변환]을 눌러줍니다
용량이 작기 때문에 금방 변환됩니다
[다운로드]를 눌러 다운로드해줍시다
[무 야호 (online-audio-converter.com).wav]라는 파일이 다운로드 됐습니다
많이 왔지만 아직도 할게 남았습니다
기네요.. 증말...
-
아~까 전에 설치했던 audacity를 실행해줍시다
저는 윈도우키를 눌러서 검색해서 실행했는데
설치할때 데스크탑에 바로가기 만들기를 체크 하셨다면
바탕화면에 바로가기 있으니 그걸로 실행하셔도 됩니다
실행하고 난 모습입니다
환영한다며 알림창이 하나 뜨는데 [확인]버튼을 눌러 치워줍시다
알림창 타이틀을 보니 한글로는 "오데시티"라고 부르나봅니다
[파일]=>[열기]를 눌러줍니다
아까 변환해준 wav파일을 선택해줍니다
열고나면 이런 모습이 됩니다
키보드의 [ctrl + a]를 눌러 전체선택을 해줍니다
선택이 되었다면 [효과]버튼을 눌러줍니다
[노멀라이즈...]를 선택해줍니다
따로 설정할건 없고 그냥 확인을 눌러줍니다
이런 모습이 됩니다
진폭의 최대/최소가 -1~+1에 균일한 비율로 가까워진 모습입니다
[파일]=>[내보내기]=>[WAV로 내보내기]를 눌러
WAV파일로 다시 내보내줍니다
인코딩 설정은 저게 기본인데 저대로 저장해주시면 됩니다
저는 파일명을 [무 야호(conv).wav]로 저장했습니다
그리고 나서 오데시티는 종료해주시면됩니다
종료하려고 하면 저장할거냐고 물어오는데
프로젝트를 따로 저장하실 필요는 없습니다
거의다 됐습니다
이제 한고비만 남았습니다!
-
이번엔 [freemat]을 실행시켜줍시다
저는 이번에도 [시작]의 검색기능을 이용해서 실행했습니다
이런 화면이 나옵니다
freemat을 사용하기 앞서 아까 만들어놨던 wav파일 먼저 옮겨야합니다
wav을 이번에 새로 받은 talkie의 하위 폴더로 옮겨줍니다
저는 다운로드 폴더에다가 Talkie라는 폴더를 만들어
파일들을 모아놓았기 때문에 경로는 아래와 같습니다
[...\Downloads\Talkie\Talkie-master\Talkie-master\Talkie\encoder\freemat]
저 경로로 파일을 옮겨줍니다
freemat의 우측상단 폴더모양 아이콘을 클릭해줍니다
아까 wav파일을 옮겨놓은 경로로 이동합니다
그리고 폴더선택을 눌러줍니다
그러고나면 왼쪽의 파일 리스트가 갱신됩니다
여기서 [calc.m]이라는 파일을 더블클릭하여 열어줍니다
이렇게 새 창이 뜹니다
여기서 세 부분을 수정해줘야하는데
먼저 [TomsDiner8.wav]라고 써있는 부분을 본인 파일명으로 수정합니다
저는 [무 야호(conv).wav]로 수정했습니다
이렇게 한군데를 수정했습니다
나머지 두 부분은 코드의 맨 끝 두 줄에 있습니다
[TomsDinerPitch.wav]를 [MooPitch.wav]로
[tomsDinerStream.csv]를 [MooStream.csv]로 변경했습니다
변경한 모습입니다
키보드의 [ctrl+s]를 눌러 저장해줍니다
실행버튼을 눌러 실행해줍시다
그럼 코드창 말고 처음에 켰던 freemat창에 알 수 없는 소수점이 막 찍히다가
[-->]이런 화살표가 나옵니다
이번엔 [calc.m]을 실행했던 파일브라우저에서
[romgen.m]을 실행(더블클릭)해서 진짜로 LPC인코딩을 해줍시다
코드 상단의 cvs파일명을 아까 생성한 cvs파일명으로 수정해줍시다
저는 [MooStream.csv]였습니다
수정하고 저장까지 해줬습니다
상단의 녹색버튼을 눌러 코드를 실행해줍니다
이번에도 역시 freemat창에 정체불명의 2진수가 막 출력됩니다
[-->] 이 화살표가 나오면 인코딩이 완료된겁니다
결과창에 '2진수만' [ctrl+c]로 복사해줍시다
길이가 기니까 스크롤을 약간 올려줘야 할 겁니다
곧!
-
금방 클립보드에 얻어놓은 바이너리 코드를
아두이노 C코드에 적용할 적절한 헥스코드로 변환해줘야합니다!
위 링크로 들어가줍시다
이런 초기화면이 나오는데 위쪽 텍스트박스에 기존 내용을 지우고
클립보드에 있던 바이너리코드를 [ctrl+v]로 붙여넣어줍시다
[Convert] 버튼을 눌러 변환해줍니다
꽤 긴 결과가 나왔습니다
이제 코딩만 하면 진짜로 끝납니다
진진자라지리지리자~
-
드디어 아두이노IDE를 실행해줍시다!
사실 저는 소스코드를 미리 작성해놨습니다
포스팅이 너~무 길어져서
소스코드만 따가실 수 있게 공유드리겠습니다
대신 배열은 너무 기니까 직접 입력해주세요
아까 16진수로 변환하신 데이터를 그대로 입력해주시면 됩니다
#include <Arduino.h>
#include "Talkie.h"
const int8_t Vo_Mooyaho[] PROGMEM = {
//여기에 배열 데이터 입력
};
Talkie voice;
void setup()
{
voice.say(Vo_Mooyaho);
}
void loop() {
}
|
cs |
아두이노 연결은 저번포스팅을 참고해주세요!
위 코드를 업로드까지 해주시면?
무~야호~
듣기로는 '우~야호'로 들리는데 압축할 때 손실이 발생해서
양순비음을 명확하게 표현하지 못한 것 같습니다
어쨌든 미션클리어!
-
이렇게 아두이노 말 트이기 2부작이 완성되었습니다
이렇게나 이미지를 많이 쓴적이 있나 싶을 정도로
많은 이미지를 쓴 헤비포스팅이었네요..
과정이 유기적으로 연결되기 때문에
3부작으로 차마 나눌수가 없었습니다
지루한 포스팅 여기까지 읽어주신 분들께 너무나 감사드립니다
그럼 좋은하루되세요!
1 댓글
혹시 play.ht유료결제 하셨나요?
답글삭제스탠다드 보이스로 했는데도 유료결제 창으로 넘어가서 어떻게 해야할지 모르겠네요ㅠ