NEW 기획 디자인 개발 프로덕트 아웃소싱 프리랜싱

개발

헛소리하는 AI스피커 영실이를 따라해 봤다

드라마 스타트업 따라잡기 2: 한지평의 AI스피커


1탄 먼저 읽어보셔도 좋습니다.


한지평: 영실아 나 왜 잠이 안올까?

영실이: 신경쓰이는 문제가 있나보네요.

한지평: 어 있어! 어떻게 해결하지?

영실이: 잠을 푹 자보세요. 푹 자고 내일이 오면 문제를 해결할 새로운 아이디어가 떠오를 거에요.



영실이는 드라마 스타트업의 AI스피커입니다.
그리고 늘 그렇듯 오늘도 한지평씨의 고민을 해결해줬죠.

한지평씨의 전문 심리상담사를 자처하는 영실이는
"못 알아듣기"와 "헛소리”를 무기로
수지를 제치고 한지평씨의 마음을 사로잡는데 성공합니다.


첫번째 에피소드, 그것도 약 2분 30초
스타트업은 영실이의 헛소리를 신호탄으로 출발합니다.
"영실아 오늘 날씨 어때?"라는 한지평씨의 질문에
영실이는 운세를 읊어대죠.

애타게 다시 날씨를 물어보는 한지평씨의 마음을 아는지 모르는지
영실이는 끝까지 운세를 낭독합니다.

네 오늘은 이겁니다.
오늘 제가 만들어볼 것은
운세와 날씨를 헷갈려하는 음성비서죠.

영실이가 사람의 말을 듣고
대답을 하는 프로세스는 다음과 같은데요.

영실의 대답 프로세스

간단히 요약하자면
1. 우선 사람의 목소리를 인식해서 텍스트로 바꾸고
2. 텍스트에 맞는 정보를 분석해서
3. 해당 정보를 읽어주는 겁니다.


어휴 이번엔 정말.. 상상만해도 험난한 미래가 보이는데요.
사실 저는 이런 거 직접만들 능력도 없거니와..
의지도.. 없습니다.

오늘 영실이는 아무것도 안 할랍니다.
그냥 다른 똑똑이들한테 다 부탁해버리죠 뭐.

다른 누구한테 부탁할거냐구요?

음 … 음성인식은 국내 최고의 IT기업인 카카오한테
기상데이터는 한국 일기예보의 중심 기상청한테
음성합성은 세계 최고의 IT기업 구글한테 부탁할 겁니다.

버스는 내가 탈 건데 운전은 누가 할래?

이런 말도 안되는 부탁이 가능한 이유는
구글, 네이버 카카오 등 많은 기업들이
자신이 가지고 있는 기술을 외부의 개인이나 다른 서비스가 사용할 수 있도록 공개해두기 때문입니다.

우리는 이러한 것들을 API라고 부르는데요.
오늘 영실이가 음성비서 일을 하는데 필요한
음성<->텍스트 변환, 기상정보 검색 등도
모두 이 API로 가능한 기능들입니다.

API를 사용하는 법은 간단합니다.
해당 기업들에게 편지를 쓰는건데요.
“얘 카카오야 나 영실인데 이 소리 좀 텍스트로 바꿔줘.”라고 말이죠.
아 물론 이걸 컴퓨터가 알아듣게 하기위해 약간 바꿔줄 겁니다.

그래서 오늘의 목표는 영실이의 헛소리 기능을
이 API만으로 구현하고자 합니다.


혹시 API의 개념을 좀더 알고 싶은 분이 계신다면
아래 글을 읽어보세요.



01
Voice Recognition (Speech to Text)

목표 : 마이크로 녹음한 목소리를 텍스트로 변환하기
사용 API: kakaoAPI

영실이는 “소리”를 이해할 수 없습니다.
따라서 첫번째로 할 일은 목소리 파일을
영실이가 이해할 수 있게 텍스트로 바꾸는 거죠.

카카오 API를 활용한 STT

앞서 말했듯이 API를 사용하기 위해서 영실이는.
“카카오야 나 영실인데 소리 좀 텍스트로 바꿔줘”
라는 내용의 편지를 보내야합니다.

물론 컴퓨터가 한글을 이해할 리 없으니,
편지의 실제 내용은 이렇게 변형되어야 할 겁니다.

영실이가 카카오에게

즉, API형식에 맞춘 방식은
requests.post(kakao_url, header=’service=dictation’ api_key=영실, data=audio)
처럼 바뀌게 되는 것이죠.

우선 간단한 코드로
"시리야"라는 물음에
"네 지평님"이라는 말을 프린트하는 듣는 코드를 짜봤는데요.


테스트를 해보니

음성인식 테스트 동영상

이처럼 정상적으로 소리를 읽는 것을 확인할 수 있습니다.


자 이제 이렇게 만들어진 텍스트를
[운세]질문인지 [날씨]질문인지 구분해
“다음 똑똑이”인 기상청에게 물어보러 갈 겁니다.


* 본 과정의 진행순서
1. 카카오 개발자사이트에 애플리케이션 등록하여 API키 발급
2. speech recognition 라이브러리를 사용해서 마이크 소리 담기
3. API에서 받은 response의 value를 텍스트로 받기



02
기상청에서 날씨정보 가져오기

목표 : 위치와 날짜에 맞는 기상정보 가져오기
사용 API: 기상청 동네예보 API

전 장을 통해서 한지평씨의 요청을 이해하게 된 영실이는
질문에 맞는 기상정보들을 가져와야 합니다..

기상청 API를 활용 데이터 가져오기

이를 위해 이번에는
기상청에 편지를 쓰는데요.

영실이가 기상청에게

이번에도 역시 실제로는
requests.get(weather_url, header=’getVilageFcst, today, (66, 101)’ api_key=영실)
와 같이 API에 맞는 메시지를 보내게 됩니다.

간단히 목소리 파일만 줬던 카카오와는 달리
내가 어디 있는지(좌표 = 66,101)나
어느 날짜를 물어봤는지 (date = today)등의 정보를 포함해서 물어본 것이 눈에 띄네요.

이를 받은 기상청은
강수량, 구름상태, 기온, 습도 등의 정보를 담은 답장을 주는데요.

저는 이렇게 받은 수많은 정보 중
[기온, 풍속, 강수형태, 구름상태] 4가지의 정보를
”바람 한 점 없이 흐린 하루가 예상됩니다. 기온은 2도이며 비나 눈 소식은 없습니다.”
와 같은 문장으로 변형시키는 코드를 추가했습니다.



이번 과정을 통해
우리는 한지평씨의 질문이 “오늘 운세가 뭐야?”라는 질문에
위와 같이 날씨를 설명해주는 텍스트를 만들 수 있게 되었습니다.

아, 반대로 한지평씨가 “날씨”를 물어보면
그냥 "운명의 신이 당신의 잔잔한 일상에 미풍을 불어오는 날입니다."만 말하게 했습니다.
(운세 API는 못 찾겠더라구요)


* 본 과정의 진행순서
1. 기상청 open API 신청하여 동네예보 API key 발급
2. 질문 날짜(오늘 / 내일)와 질문자의 지역 좌표를 변환
3. API에서 받은 날씨정보를 문장으로 변환




03
Voice synthesize (Text to Speech)

목표 : 만든 텍스트를 음성으로 변환하기
사용 API: Google text to speech API

최근 "AI 프로젝트 다시 한번" 보셨나요?
12년전 돌아가신 터틀맨님의 목소리를
AI로 복구하는데 성공해 엄청난 반향을 일으켰죠.

여기서 쓰인 기술이 바로 음성 합성인데요.

이처럼 시리, 빅스비와 같은 음성비서 뿐만 아니라
키오스크, 로봇, 전자책 읽기 등
다양한 용도에서 사용되고 있죠.

이번 장에서는 기상청에게 부탁해서 만들어낸
"운명의 신이 당신의 잔잔한 일상에 미풍을 불어오는 날입니다."를
한지평씨에게 읽어줄 겁니다.

구글 API를 활용 텍스트 읽기

역시나 구글에게 편지를 쓸 건데요.

내용과 형태도 앞선 편지들과 크게 다르지 않습니다.
일반적으로는 “나 영실인데”를 증명하기 위해 API키를 썼다면
구글의 경우 환경변수 설정이라는 방법을 쓴다는 것만 다르네요.

영실이가 구글에게

* 본 과정의 진행순서
1. 구글 클라우드 플랫폼의 API 신청하여 환경변수 설정
2. 질문에 대한 대답문장을 구글 API를 활용하여mp3파일로 변환
3. playsound 라이브러리를 활용하여 mp3파일 재생

마침내 만들어진 텍스트를
읽어주는 기능까지 완성했습니다.

실제로 만들어진 영실이를 켜보면..!

최종 영실이 동영상

정상적으로(?) 운세질문에는 날씨를,
날씨 질문에 운세를 답해주는
친절한 영실이를 만날 수 있습니다.

오늘은 이렇게
다양한 API를 활용한 음성비서를 만들어봤는데요.

물론 운세나 날씨질문이 아닐 경우
“무슨 말씀이신지 모르겠어요”
만 뱉는 바보 음성비서라
아직 많이 부족하긴 합니다.



오늘은 드라마 스타트업 따라잡기의 두번째로
음성비서 영실이 따라하기를 해봤는데요.

스타트업의 후반부에 등장하는
“눈길” 서비스의 경우에도
1편에서 만들었던 물체인식 모델과
이번 편에서 만든 음성비서의 조합으로 만들어진 앱입니다.

향후 이 영실이에 기능들을 하나씩 추가하다 보면
정말로 “눈길”을 만들 수 있을지도 모르겠네요.

일단 당장 김원해씨의 얼굴을 보여주며
“이게 누구야?”라고 질문하면
“변기입니다!”라는 답은 들을 수 있을 테니 말이죠.

댓글 0

돌망

스타트업, IT 회사, VC 등을 경험하다 현재는 카이스트에서 Business Analytics를 공부하고 있습니다. 클릭 한번에 전문지식이 쏟아지는 시대, 고급스럽기보단 소화가 잘 되는 지식을 전하려 노력합니다.

같은 분야를 다룬 글들을 권해드려요.

요즘 인기있는 이야기들을 권해드려요.

일주일에 한 번!
전문가들의 IT 이야기를 전달해드려요.

[구독하기] 버튼을 누르면 개인정보 처리방침에 동의됩니다.

일주일에 한 번! 전문가들의 요즘IT 이야기를 전달해드려요.

[구독하기] 버튼을 누르면 개인정보 처리방침에 동의됩니다.