다빈치 SW 공모전

'언택트 시대에 유용한 앱 혹은 서비스를 주제로한 SW 공모전으로
2020-2학기 비공학 전공 재학생 2인 이상이면 참가 가능합니다.

자세히 알아보기

캡스톤 디자인 경진대회

캡스톤 디자인 교과목 수행 결과물 또는 졸업 작품 심사
2019년 2학기, 2020년 1학기 중 한 학기 이상 캡스톤 디자인 교과목을
수강한 학생만 참가 가능합니다.

자세히 알아보기

PE연구활동 발표대회

PE연구/개발 활동을 수행하면서 얻어진 다양한 형태의 결과물
(논문형태의 결과보고서, 논문, 발명품, 작품, 콘텐츠 등)을 심사

자세히 알아보기

SW·AI 창업아이디어경진대회

SW 관련 전공 학부생 여러분!
반짝이는 SW창업 아이디어로 여러분의 미래를 바꾸십시오!

자세히 알아보기

SW·AI융합우수성과 발표회

SW융합전공 / 복수 전공 학생 여러분!
SW융합전공 / 복수전공을 이수하는 과정에서 얻어진 성과를 뽐내 주세요.

자세히 알아보기

다빈치 주니어 SW 작품대회

창의적인 아이디어와 소프트웨어를 활용한
멋진 SW 작품을 만들어 보세요!

자세히 알아보기

다빈치오픈소스 SW·AI 딥러닝 해커톤

4차 산업혁명을 견인하는 심층학습을 주제로한 SW·AI 딥러닝 해커톤으로
소프트웨어대학 재학생으로 구성된 2인 이하 팀으로 참가 가능합니다.

자세히 알아보기

코딩경진대회

소프트웨어 중심 대학으로서 중앙대학교의 소프트웨어 관련
교육 프로그램 성과를 공유합니다.

자세히 알아보기

캡스톤 디자인 경진대회

  • Oh! sory

    팀장
    이민희 (소프트웨어학부 | 4학년)
    팀원
    박진영 (소프트웨어학부 | 4학년)
    이준협 (소프트웨어학부 | 3학년)
좋아요 108
답변 수 81

작품영상

작품(아이디어)명 : 자동 음성 녹음을 통한 개인 TTS 합성
  • 작품 소개
  • 개발 동기 및 필요성

     일반 사용자가 필요로 하는 기술을 개발하면 좋을 것 같다고 생각하여, 개인 맞춤형 서비스를 중심으로 주제를 찾기 시작했습니다.여러 방면으로 탐색하던 중, 최근에 음성합성 기술(Text-to-Speech, TTS)을 적용한 헤이 카카오나 구글 어시스턴트 등 다양한 제품들이 나오고 있으며, 이와 관련된 시장들이 빠르게 성장하고 있다는 기사를 접했습니다. 이렇게 각광받는 기술을 활용하여 개인 맞춤형 서비스를 제공한다면 많은 사람들이 이용할 수 있을 것이라고 생각했으며, 기술적으로도 새로운 도전이었기에 사용자 개인 맞춤형 음성합성 서비스로 주제를 선정하였습니다.



    차별성 및 장점

     현재 상용화 되어있는 음성합성 기술은 만드는 과정에 있어 전문적인 녹음실에서 녹음을 진행해야 했으며 많게는 수십시간 이상의 녹음 데이터가 필요해 비용이 많이 소모되었습니다. 또한 음성합성 서비스를 제공해주는 대다수의 플랫폼들은 전문 성우 혹은 유명인들을 대상으로 진행하고 있었기 때문에 일반인들이 사용하기에는 무리가 있었습니다. 저희는 이러한 맹점을 파고들어 사용자가 손쉽게 개인 음성합성을 체험해 볼 수 있는 어플을 개발하기로 하였습니다. 저희는 앞서 설명한 상용화된 음성합성 기술의 단점들을 해소하기 위하여, 2가지 측면에서 차별점을 두었습니다.

     첫번째는 접근성입니다. 일반적인 음성합성 기술은 직접 녹음실에 가서 상당한 시간동안 녹음을 해야 했으며 틀릴 경우에는 재녹음을 하는 등 불편한 점이 많았습니다. 이에 반해 저희는 모바일 어플리케이션을 통해 데이터를 수집하기 때문에 지정된 장소로 이동할 필요가 없으며, 사용자가 통화할 때 내부적으로 음성녹음을 진행하기 때문에 사용자의 시간을 따로 소모하지 않습니다. 또한 별도의 대본도 존재하지 않기 때문에 당연히 재녹음 할 필요도 없습니다.

     두번째는 범용성입니다. 기존의 음성합성 서비스를 제공하는 플랫폼들이 일반인들을 주 고객으로 삼지 않는 이유는 일반인들이 개인음성합성을 했다 하더라도 얻은 합성음에 대한 별도의 사용처가 따로 없었기 때문에 수요가 적을 것이라고 판단해서라고 생각했습니다. 그렇기 때문에 저희 어플은 완성된 합성음에 대한 사용처 또한 제공하기로 했습니다. 사용자들끼리 합성음의 대한 공유가 가능하도록 했으며 권한 설정 여부에 따라 단순히 합성음을 전달받는 것을 넘어 원하는 텍스트를 다른 사용자의 합성음으로 만들 수도 있게 하였습니다. 이를 통해 사용자는 연인의 목소리를 모닝콜로 설정한다거나, 부모의 목소리로 녹음된 오디오 북을 만드는 등 새로운 경험을 체험할 수 있으며, 일반인들이 주고객이 되는 플랫폼 또한 활성화될 것입니다.
  • 세부내용
  • 이론적 배경 및 기술 현황

     현재 상용화 되어 있는 음성합성은 대본을 통한 녹음으로 텍스트와 음성파일로 이루어진 쌍을 대량으로 만들어 낸 후 TTS(Text-to-Speech)합성 모델을 사용하여 합성 음성을 만들어냅니다. 저희 어플 또한 해당 방법으로 음성합성을 진행하지만 언급한 차별점을 구현하는데 있어 추가적인 기술 적용이 필요했습니다.
     통화를 녹음할 때 상대방의 목소리는 녹음되지 않도록 만들었고, 주변 소음이 언제나 존재하기 때문에 이를 제거해주는 음성 전처리 기술을 사용합니다. 그리고 별도의 대본이 존재하지 않으므로 STT(Speech-to-Text)모델을 사용하여 전처리된 음성으로부터 <텍스트, 음성> 쌍을 만듭니다. 데이터는 스마트폰으로 수집하고, 모델을 사용하는 많은 계산량을 요구하는 작업은 빠르고 원활하게 앱을 사용할 수 있도록 서버에서 처리하였습니다. 


      - 음성 전처리 기술
     스마트폰 환경에서 수집된 데이터의 다양한 소음은 STT 결과와 TTS 모델 학습 성능에 큰 영향을 끼치므로, 소음을 제거해주고 음질을 높이는 전처리 과정을 진행했습니다. 전처리는 Deep Feature Loss를 사용하는 오픈소스를 사용했습니다.(https://github.com/francoisgermain/SpeechDenoisingWithDeepFeatureLosses)
     해당 오픈소스 모델을 음성 데이터와 소음 데이터를 합성한 데이터들을 사용해 학습하였으며, 학습 결과 꽤 깔끔한 소음제거 성능을 보여주었습니다.(소음 전처리 결과는 발표 영상에서 확인해주세요!)


      - STT(Speech-to-Text)
     
    STT 모델은 카카오톡에서 무료로 제공하는 Kakao Speech API를 사용했습니다. 

      - TTS(Text-to-Speech)
     딥러닝을 통한 음성 합성 기술엔 Tacotron, Tacotron2, Deep voice1~3 등 다양한 모델이 있으며, 모델들을 분석, 선택 및 구현하는데 오랜 시간이 걸릴 것이라  판단해 오픈 소스(https://github.com/hccho2/Tacotron2-Wavenet-Korean-TTS)를 사용하였습니다. 해당 오픈소스는 Multi-Speaker Tacotron2 모델을 구현한 한국어 TTS입니다.
     해당 오픈 소스 모델의 성능을 최적화하기 위해 다양한 테스트셋을 가지고 여러 방법으로 실험을 진행했습니다. 실험을 진행하며 학습 데이터양을 최대한 효율적으로 학습시킬 수 있도록 아래와 같은 사항들을 결정하였습니다.

     
    - TTS 모델 학습을 어느 정도의 데이터가 쌓였을 때 시작할 것인가?
    - Single-Speaker와 Multi-Speaker 모델 중에 어떤 것을 사용할 것인가?
    - Pre-trained Model을 사용할 것인가?
    - Learning_rate의 최적값은 무엇인가?
    - Max iteration을 얼마로 설정할 것인가?

     실험 결과, Single-Speaker 모델 보다 적은 양의 데이터를 가진 사람도 학습시킬 수 있고, GPU 메모리도 많이 차지하지 않는 Multi-Speaker 모델을 사용하기로 했습니다. 또한, 발화자 수를 유동적으로 변화시키지 못하는 Pre-trained Model은 사용하지 않기로 결정했으며, 사용자의 데이터양이 1시간 이상 쌓였을 때 학습을 시작하도록 설정하였습니다.


    구성원 간 역할 분담

     - 박진영 학우: 서버 설계/구축, TTS 모델 담당
     - 이민희 학우: 어플리케이션 구현
     - 이준협 학우: 음성데이터 소음 전처리, STT 모델




    상세 설계 내용

       - 개발 환경
           서버: Django, DRF, Celery, Tensorflow 등
           알림 서버: Firebase
           DB: MariaDB
           Application: Android Studio



       - 프로세스
     image.png


     다음은 사용자가 데이터를 수집하는 부분부터 합성음을 내려받기까지의 전체적인 프로세스를 나타내는 그림입니다.

    1. 사용자가 통화를 할 경우 애플리케이션이 자동으로 사용자의 음성에 대한 녹음을 진행
    2. 일정량 이상의 데이터가 쌓였을 경우 서버로 수집된 데이터를 보냄
    3. 전송된 데이터는 Denoising 전처리 모델을 통해 사용자의 음성이 아닌 주변 환경을 (카페 소음, 차 소음, 기계 소음 등)을 제거
    4. STT(Speech-to-Text) 모델은 데이터에 무음이 많이 들어갈 경우 낮은 변환율을 보이기 때문에 소리의 에너지값을 사용하여 공백을 없앰
    5. STT 모델을 통해 <음성, 텍스트>쌍을 만들어내고 이를 사용하여 TTS 모델을 학습
    6. 모델 학습 완료 후 모델의 학습 정도를 애플리케이션 메인 화면에서 퍼센트를 확인 할 수 있음
    7. 사용자가 원하는 텍스트를 서버에 요청하면 완성된 TTS 모델로 해당 텍스트를 합성 음성 가능

     

    image (1).png

     
    다음은 사용자 사이에서 일어날 수 있는 다양한 공유 상황을 나타내고 있는 그림입니다.

    1. 완성된 TTS 음성파일은 디바이스 자체에 내부 저장, 공유 버튼을 통해 다양한 sns에 공유 가능
    2. 사용자끼리 모델 공유가 가능하며 모델을 공유 받은 사용자에 한해서 음성 주인의 합성음을 청취하거나 다운로드받을 수 있음
    3. 모델 주인은 청취 시 알림, 다운로드 시 알림을 설정할 수 있음
    4. 추가적으로 모델 주인의 허락이 있어야만 다운로드가 가능하도록 설정할 수 있음
    5. 언제든지 공유를 허락해 줬던 사용자들의 공유를 해제할 수 있고 해제했을 경우 해당 사용자는 더 이상 사용을 할 수 없음

  • 기대 효과
  • <Oh!sory>를 통해 만들어진 TTS 음성을 다양한 분야에 활용 가능할 것입니다.

    1. AI비서 : AI비서는 사용자의 음성에 따라 일정 관리, 이메일 전송 등 여러 작업을 수행합니다. <Oh!sory>를 통해 생성된 TTS 음성으로 원하는 사람의 목소리로 된 나만의 AI비서를 만들 수 있을 것입니다.

    2. 오디오 북: 바쁜 현대인의 삶 속에서 주목받고 있는 새로운 독서 방법인 ‘오디오 북’. 현재, 오디오 북에 사용되는 음성이 제한된 종류이지만, <Oh!sory>를 통해 TTS 기술이 보급화 된다면 다양한 억양, 톤으로 된 음성을 개인의 취향에 맞게 선택해 책을 들을 수 있을 것입니다.

    3. 교통수단, 콜센터, 키오스크 등의 안내 음성 : 안내 방송은 변경 사항이 많아 매번 녹음하기 어렵습니다. 또한, 기존의 TTS 시스템은 제공 음성이 한정적이고, 비용이 부담스럽다는 단점이 있습니다. <Oh!sory>를 사용한다면, 이러한 단점 없이 더 만족도 있는 서비스를 사용할 수 있을 것입니다.
  • 결과물
  • 슬라이드1.JPG

    슬라이드2.JPG

    슬라이드3.JPG

    슬라이드4.JPG

    슬라이드5.JPG

    슬라이드6.JPG

    슬라이드7.JPG

    슬라이드8.JPG

    슬라이드9.JPG

    슬라이드10.JPG

    구현 방법 및 코드가 궁금하신 분들은 아래의 주소를 참고해 주시길 바랍니다.
    Github 주소 : https://github.com/celi1004/Capstone_Ohsory

좋아요 참여 108

  • 학년 별

  • 학과 별

QnA 참여 81

중앙대학교 다빈치 sw tech fair 참가신청 닫기