딥네츄럴 오피스에 방문한 박원순 시장님?!

...
박상원 (Anson)
2019년 1월 2일 · 4분 분량

대화형 인공지능을 위해 우리는 어떤 기술들이 필요할까요? 시스템이 어떤 환경에서 어떤 업무를 중점적으로 수행하는지에 따라 조금씩 차이가 있겠지만, 일반적으로 다음 4가지 카테고리로 구분해볼 수 있습니다:

  • 자연어이해 (Natural Language Understanding, NLU)
    • 사람들이 하는 말을 이해하고 내포되어 있는 발화의도를 파악합니다. 인공지능 기술이 많이 발전했지만 컴퓨터가 사람의 언어를 정확히 이해하는 것은 아직도 매우 어려운 태스크에 속합니다.
  • 대화관리 (Dialog Management, DM)
    • 우리가 누군가와 대화를 나누는 장면을 떠올려보면 대화의 주제, 당시 상황, 주변 공간, 대화의 분위기 등 다양한 문맥정보를 파악하고 활용하는 것을 쉽게 알 수 있습니다. 그리고 무엇보다도 대화의 흐름을 파악하고 있는것이 중요하죠.
  • 지식베이스 (Knowledge Base, KB)
    • 그리고 우리는 대화를 나눌때 다양한 지식을 활용합니다. 어릴적부터 학교에서 공부하며 얻은 정보들, 그동안 보고 듣고 경험하면서 쌓아온 지식들, 어젯밤 신문에서 읽은 뉴스, 최근에 읽고 있는 책, 지난 주말에 본 영화 등 다양한 지식과 정보를 자연스럽게 대화에 이용합니다. 또 우리는 직접적으로 보고 들은 정보 이외에도 논리적인 추론을 통해서 얻은 확장된 정보들도 매우 당연하게 활용하고 있습니다.
  • 자연어생성 (Natural Language Generation, NLG)
    • 다음으로, 컴퓨터는 하고자 하는 말을 사람의 언어로 표현할 수 있어야 합니다. 우리는 태어나 사람들 사이에서 어린시절을 보내며 자연스럽게 말하는 방법을 터득하지만 컴퓨터는 그런 능력이 없죠. 자연어생성은 어렵지만 매우 흥미롭고 도전적인 분야 중 하나입니다.

우리가 사람들과 대화를 나눌때처럼, 로봇들과 커뮤니케이션 할 때에도 귀로 듣고 목소리를 내어 이야기하는 것이 가장 자연스럽겠죠? 컴퓨터와의 보이스 커뮤니케이션을 위해서는 추가적으로 다음 기술들이 필요합니다:

  • 음성인식 (Speech to Text, STT or Speech Recognition)
    • 목소리를 텍스트로 변환합니다. 다르게 표현하자면, 웨이브폼으로 전달받은 소리 정보를 한국어, 영어 등 사람의 언어, 텍스트 형태로 변환하여 컴퓨터가 프로세싱하기 (상대적으로) 쉽게 만듭니다.
  • 음성합성 (Text to Speech, TTS or Speech Synthesis)
    • 사람들이 말을 하듯이, 컴퓨터도 텍스트로부터 목소리를 합성할 필요가 있습니다. 우리들이 성대와 호흡, 그리고 입술과 혀의 움직임으로 소리를 만들어내는 과정과 같습니다. 음성합성에서는 악센트와 톤, 감정 등이 자연스럽게 표현된 음성을 생성해내는 것이 매우 중요합니다.

사람의 언어를 처리하는 것은 컴퓨터에게 매우 복잡한 태스크이기 때문에 그동안 연구자들은 작은 단위의 모듈들을 개발하고 조합하는 방식으로 각각의 기술들을 만들어 왔습니다. 하지만 최근에는 End-to-End Deep Neural Network의 발견과 발전으로 하나의 모델을 통해 음성인식 또는 음성합성 엔진을 만드는 것이 가능해졌습니다. 언젠가는 각각의 기술들이 하나의 복잡하고 거대한 뉴럴 네트워크를 통해, 아니면 새로운 패러다임의 기술을 통해 하나로 통합되는 날이 올수도 있지 않을까 기대해봅니다.

음성합성을 위한 타코트론(Tacotron)은 End-to-End Deep Neural Network의 좋은 사례입니다:

저는 개인적으로 TTS에 많은 관심을 가지고 있었는데요. 나중에 제가 로봇과 대화를 나누고 있는 모습을 상상해보면, 그 친구들이 자신만의 개성있는 목소리로 저에게 말을 걸었으면 좋겠다는 생각이 들어서입니다. 로봇들이 감정없이 기계적이고 획일화된 목소리로 대화하는 것보다 DJ 유인나, 배철수님처럼 개성있고 매력적인 목소리로 대화를 한다면 훨씬 매력적이지 않을까요? 마치 우리가 한사람 한사람 유일한 목소리를 가지고 있는 것처럼 로봇들도 모두 특별한 목소리를 가졌으면 좋겠습니다 :)

그러면 이 시점에서, 보다 개성있고 자연스러운 음성을 합성하려면 우리는 어떤 데이터를 확보해야 할까요? 특정한 사람의 악센트와 톤을 유사하게 따라하려면 어떻게 음성 코퍼스를 구축해야 할까요? 어떤 코퍼스가 TTS에 적합한 코퍼스일까요? 저희 팀은 궁금증이 생겨 실험을 진행해보기로 했습니다. 우선, 목소리를 모사할 대상을 선택해야 했는데, 고민끝에 많은 사람들이 쉽게 알아차릴만한 목소리를 가진 박원순 서울시장님을 선택하게 되었습니다.

우선 인터넷 검색을 통해 17개의 영상을 수집하였는데, 영상들은 다음 3가지 타입으로 분류할 수 있습니다:

  • 토론
    • 6개의 영상 수집
    • 한명의 진행자와 여러명의 토론 참여자(박원순 시장님 포함)
    • 총 8시간 58분 분량의 영상에서, 13분 가량의 시장님 발화를 추출
  • 인터뷰
    • 7개의 영상 수집
    • 한명의 인터뷰 진행자와 한명의 참여자(= 박원순 시장님)
    • 총 2시간 49분 분량에서, 29분 가량의 시장님 발화를 추출
  • 연설
    • 4개의 영상 수집
    • 한명의 발화자(= 박원순 시장님)
    • 총 31분 분량의 영상에서, 24분 추출

연설 영상은 한명의 발화자만 있기 때문에 데이터를 가공하기가 비교적 쉽지만, 공식적인 자리에서의 연설 억양은 책을 읽듯 딱딱한 면이 있어 대화엔진 개발에 사용되기에는 적합해보이지 않았습니다. 반면 인터뷰와 토론 영상에서의 목소리는 상대방에게 이야기하듯 보다 자연스러웠지만, 다른 사람들의 목소리와 겹치고 다른 잡음이 섞여있는 등 전반적으로 노이즈가 많아 고품질 코퍼스를 만들기 까다로운 측면이 있었습니다.

아래 오디오 클립들은 저희가 구축한 박원순 시장님 음성합성 코퍼스의 샘플입니다:


토론 샘플



인터뷰 샘플



연설 샘플





코퍼스를 구축한 다음, 타코트론(Tacotron)을 학습시켜 박원순 시장님 목소리를 모사하는 음성합성기를 만들었습니다. 반복적인 실험 끝에 최종 모델을 학습시킬 때에는 인터뷰 영상과 토론 영상에서 추출한 41분 가량의 음성을 이용하고, 비교적으로 품질이 좋지 않은 연설 영상에서 추출한 음성은 제외시켰습니다. AI가 합성해낸 음성이 박원순 시장님 목소리와 유사한지 한번 들어보세요:


음성합성 결과샘플



이번 프로젝트에서 저희는 코퍼스 구축과 딥러닝 모델 학습을 반복적으로 실험하는 경험적 검증을 통해 TTS 엔진을 만들기에 어떠한 음성 코퍼스가 적절한지 살펴보았습니다. 그리고 코퍼스 구축 과정에서 발생한 작은 오류들이 축적되어 최종 모델의 성능에 부정적인 영향을 주는 것, 그리고 또 고품질 코퍼스 구축을 위해 언어 데이터의 특성을 이해하는것이 중요하다는 점을 다시 한번 확인했습니다.

저희는 약 4개월 전에 이 프로젝트를 마치고 TTS 데모 영상을 유튜브에 공개했었는데요:

매우 흥미롭게도, 2019년 시작과 동시에 박원순 시장님께서 저희 사무실에 방문하셨어요. 상상했던 일이 현실로, TTS 데모 비디오를 시장님께 직접 보여드리는 기회를 가졌습니다!


시장님께서는 자신의 목소리를 흉내내는 TTS 데모를 보시고 매우 흥미로워하셨어요. 그리고는 딥네츄럴 같은 인공지능 기술을 개발하는 스타트업들에게 본인과 서울시가 테스트베드 역할을 해주겠다고 말씀하셨습니다. 스타트업에서 일하는 가장 큰 장점 중 하나는 이렇게 재밌고 풍부한 경험을 하는것인데, 오랫동안 기억에 남을만한 좋은 추억을 이번에 또 하나 추가했습니다 :)

#ParkWonSoon #TTS #Corpus #DeepNatural

박상원 (Anson)
CEO at DeepNatural
Studied NLP at KAIST & TU Berlin

추천 블로그 포스트


데모데이

양재R&CD혁신허브 데모데이 참가!

서울시 주관, KAIST와 모두의연구소가 운영하는 양재R&CD혁신허브에서 '2018 AICON'과 함께 'AI 스타트업 데모데이 & 토크'를 개최했습니다. 혁신허브에 입주해있는 딥네츄럴도 이번 데모데이에 참여했는데요. 'Human + AI Collaboration for AI' 사업계획과 데모 영상을 발표했습니다 👏👏👏… 더보기

2018년 12월 18일, 상원님의 포스트