SlideShare a Scribd company logo
1 of 18
Download to read offline
2 / 20
[ 기존 TTS 서비스 ]
3 / 20
[ Jupyter 환경 모습 ]
Anaconda3를 이용한
가상환경 생성
[ tacotron 모델에 필요한 패키지 설치 ]
4 / 20
음성파일 생성
음성파일 묵음
구간으로 분리
SST API를 이용해
텍스트 파일 생성
alignment
파일 생성
.npz
dataset생성
[ Dataset 생성 과정 ]
[ alignment.json 파일 내부 모습 ]
[ Google Cloud SDK 중 SST API 사용 모습 ]
5 / 20
[ 유인나 + 코퍼스 학습 결과 loss graph ]
[ 손석희 + 김호연 학습 결과 loss graph ]
[ 유인나 + 코퍼스 학습 결과 sample]
[ 손석희 + 김호연 학습 결과 sample ]
6 / 20
[ 유인나 오디오북 + 한국어 코퍼스 + 이주형 + 김난희 학습 결과 loss graph ]
[학습 결과 sample]
유인나 오디오북, 한국어 코퍼스
이주형, 김난희
7 / 20
[ IP 설정 및 포트 설정 ]
app.py
main.js
[ Flask 웹에 사용할 UI ]
Index.html
app.py
web
audio
son+hozzi-trainingdate
synthesizecode1.wav
synthesizecode1.png
…
yuinna+kss-trainingdate
synthesizecode2.wav
synthesizecode2.png
…
static
css
main.css
js
templete
Index.html
main.js
siriwave.js
[ Flask Web 구조도 ]
8 / 20
[ UI 전체 모습 ]
[ 텍스트 입력 ]
[ 입력한 텍스트로 음성 합성 및 음성 출력 ]
9 / 20
1. 제약조건1: 학습 환경
학습을 위해서는 그래픽 카드나 GPU의 성능이 보다 좋은 환경이 필요함. Smart-Lab의 서버를 이용하여 학습 시간을 단축시켰다.
2. 제약조건2 : 음성 데이터 품질 및 텍스트 파일과의 매칭 정확도
보다 높은 질의 학습 결과를 출력하기 위해서는 필연적으로 학습에 이용되는 음성 파일이 화자의 목소리 외의 잡음 요소들이
없는 파일이여야 한다. 이러한 요소를 최소화 하기 위해 침묵 구간으로 잘라 음성파일을 분리하여 저장한다. 이렇게 저장된
음성파일을 기반으로 텍스트 파일과 매칭하는데, 구글 SST API로 생성된 텍스트 파일이 완벽하게 번역되지 않아 조금씩 틀리는
경우가 존재한다. 이를 해결하기 위해 잘못 잘라진 음성파일을 제외하거나 텍스트 파일을 수정하는 전 처리 작업을 통해 학습
데이터의 품질을 높일 수 있었다.
3. 제약조건3: 음성 학습 과정
Custom TTS에서 구현하고자 하는 다중화자의 경우 모든 화자에 대해서 각각 학습하는 것이 아니라 한번에 학습을 돌리는 것이
결과와 효율 모두 좋다. 하지만 4명의 음색이 모두 다르고 속도도 다르기 때문에 음성의 특성이 비슷한 화자끼리 모아서 학습을
진행하여 보다 좋은 결과를 얻을 수 있었다.
4. 제약조건4: 웹 어플리케이션
실시간으로 텍스트와 음성파일을 주고 받기 위한 UI가 필요했다. 현재 사용하는 개발환경이 jupyter로, 웹에서 개발할 수 있는
툴이기 때문에 웹 브라우저에서 페이지를 만들어 이를 해결했다. 기존에 flask 기반으로 제작된 웹 페이지를 수정하였다.
과제제목 : Deep Learning을 이용한 Custom TTS
12 / 8
[ 음성 합성 기술 동향 및 적용 사례 ]
https://wowtale.net/2019/11/15/naver-clova-premium-voice/
2) 개발 기간
음성 합성 기술
컨셉 선정
3월
1) 음성학습 모델 : Multi-Speaker-Tacotron
Baidu Deep Voice
Encoder
Decoder
Attention
Vocoder
Google Tacotron
개발 환경 및
학습 환경 구축
4월
음성 학습
5~10월
웹 페이지 구축
및 서비스화
11월
https://github.com/carpedm20/multi-speaker-tacotron-tensorflow
Google Tacotron
13 / 8
1) 학습 환경(Smart-lab) 2) 데이터셋 품질
1. 손석희 (손석희의 뉴스룸) : 43700줄(11시간)
2. 유인나 (유인나의 오디오북) : 3670줄(5시간)
3. 코퍼스 (한국어 코퍼스) : 12800줄(3시간)
4. 이주형, 김난희 (직접 녹음): 2930줄(3시간)
5. 김호연 (직접 녹음): 550줄(1시간)
[사용한 언어]
[학습 툴]
[기본 개발 환경]
[웹 환경]
*1번 손석희는 Google SST API를 이용해 많은 양의 데이터셋
을 만들 수 있었음
*4번 이주형, 김난희는 직접 녹음 및 데이터셋 작업을 했기에
데이터셋의 양이 적지만 많은 시간 만큼의 음성 합성 품질을
얻을 수 있었음
14 / 8
데이터셋 생성
Deep Voice Tacotron으로 학습
(200,000 ~ 500,000 Step)
화자 조합 선정
학습된 모델 저장
합성한 음성파일 출력
음성 주파수 대역 사진 출력
음성학습 결과 확인
유인나 손석희 코퍼스 김호연 김난희 이주형
데이터셋 생성
음성 파일 확보
음성 파일을 묵음 구간으로 자르기
음성에 맞는 텍스트 생성(.json 파일)
원하는 텍스트 길이에 맞는 텍스트 선별
올바르지 않은 음성 및 텍스트 제거
학습 과정
15 / 8
학습을 위한 최종 파일 생성 (.npz 파일)
음성 서비스 구현
음성 합성에 쓸 텍스트를 길이에 맞게 조절
서비스 선택
기본 / 편지쓰기 / 모닝콜 / 브리핑 / 생일축하
Pydub으로 음성 합성 파일과 배경음악과 합성
생일축하
[웹 페이지 구성]
HOME(메인페이지)
BASIC(기본 합성)
LETTER(편지 쓰기)
ALARM(알람)
ABOUT(소개/연락/다운로드)
모닝콜
일정브리핑
음량 크기 조절
합성된 음성 출력 및 지정된 경로에 저장
16 / 8
17 / 8
메인 홈페이지 기본 합성 페이지 편지 쓰기 페이지 알람 소개 페이지
소개/연락/다운로드모닝콜 페이지 일정 브리핑 페이지 생일축하 페이지
1. 제약조건1 : 데이터셋 생성 과정
음성 데이터의 양이 많을수록 음성 파일과 텍스트를 매칭하기 위한 작업이 수작업으로 하기에는 시간이 너무 많이 소요됨. 어느 정도
자동화를 하기 위해 구글 STT API를 사용해서 데이터셋을 생성하는 시간을 단축시켰음. 한국어 코퍼스는 오픈되어 있는 데이터
셋이지만 텍스트 파일이 양식에 맞지 않기 때문에 파이썬 코드를 작성해서 사용하고자 하는 데이터셋으로 바꾸어서 사용함. 이렇게
API와 파이썬 코드를 통해서 데이터셋 생성 시간을 단축시킴.
2. 제약조건3 : 음성 학습 과정
구현하고자 하는 다중화자의 경우 한 화자에 대해서만 학습하는 것이 아니라 다중 화자를 한번에 학습을 돌리는 것이 결과와 효율 모두
좋음. 하지만 5명의 음색이 모두 다르고 속도도 다르기 때문에 음성의 특성이 비슷한 화자끼리 모아서 학습을 진행하여 보다 좋은
결과를 얻을 수 있었음. 또한 음성 데이터 품질을 수치적으로 판단하기 힘들기 때문에 학습할 때에 Loss 그래프와 샘플 파일들을
들어보면서 잘 합성된 모델을 결정하였음.
3. 제약조건2 : 음성 합성에 맞는 웹 기반 서비스 개발
다양한 서비스 중에서 음성 합성이 적합하게 사용 될 수 있는 서비스를 선택해서 개발해야 함. 현재 음성 합성이 사용되고 있는 분야는
기본적으로 텍스트를 기반으로 하는 서비스임. 따라서 편지를 읽어주거나, 모닝콜, 브리핑 그리고 생일 축하와 같은 텍스트 기반
서비스들을 음성 합성으로 구현해서 보다 앞으로 구현될 수 있는 서비스를 구현하였음. 또한 목소리와 배경음악을 합성할 시 두 음성
파일의 볼륨이 다르기 때문에 이를 적절히 조절해서 합성할 필요가 있음. 개인의 휴대폰에 서비스 적용을 위해 웹 어플리케이션으로
환경을 선정함. 원하는 서비스를 사용한 후에 직접 음성 파일을 재생하고 파일을 다운로드 할 수 있게 함.
과제제목 : multi-speaker-tacotron을 이용한 개인 음성 합성 서비스
18 / 8

More Related Content

Similar to Custom TTS using multi-speaker-tacotron(nanheekim)

웹 Front-End 실무 이야기
웹 Front-End 실무 이야기웹 Front-End 실무 이야기
웹 Front-End 실무 이야기JinKwon Lee
 
제품소개서 (Pastel editor)
제품소개서 (Pastel editor)제품소개서 (Pastel editor)
제품소개서 (Pastel editor)Kevin Hyun
 
제품소개서( Pastel Editor)
제품소개서( Pastel Editor)제품소개서( Pastel Editor)
제품소개서( Pastel Editor)Kevin Hyun
 
2023 GDG Sondo DevFest - Flutter/ Flavor, PlatformChannel, Environment variab...
2023 GDG Sondo DevFest - Flutter/ Flavor, PlatformChannel, Environment variab...2023 GDG Sondo DevFest - Flutter/ Flavor, PlatformChannel, Environment variab...
2023 GDG Sondo DevFest - Flutter/ Flavor, PlatformChannel, Environment variab...MaRoKim4
 
U&i insight2012스터디설명회
U&i insight2012스터디설명회U&i insight2012스터디설명회
U&i insight2012스터디설명회Amy Young Ah Kim
 
Python과 Tensorflow를 활용한 AI Chatbot 개발 및 실무 적용
Python과 Tensorflow를 활용한  AI Chatbot 개발 및 실무 적용Python과 Tensorflow를 활용한  AI Chatbot 개발 및 실무 적용
Python과 Tensorflow를 활용한 AI Chatbot 개발 및 실무 적용Susang Kim
 
파이썬을 배워야하는 이유 발표자료 - 김연수
파이썬을 배워야하는 이유 발표자료 - 김연수파이썬을 배워야하는 이유 발표자료 - 김연수
파이썬을 배워야하는 이유 발표자료 - 김연수Yeon Soo Kim
 
Using CloudFront and S3 at SMARTSTUDY
Using CloudFront and S3 at SMARTSTUDYUsing CloudFront and S3 at SMARTSTUDY
Using CloudFront and S3 at SMARTSTUDYHyun-woo Park
 
CloudFront와 S3를 이용한 컨텐츠 배포 전략 - 박현우 CTO, SMARTSTUDY
CloudFront와 S3를 이용한 컨텐츠 배포 전략 - 박현우 CTO, SMARTSTUDYCloudFront와 S3를 이용한 컨텐츠 배포 전략 - 박현우 CTO, SMARTSTUDY
CloudFront와 S3를 이용한 컨텐츠 배포 전략 - 박현우 CTO, SMARTSTUDYAmazon Web Services Korea
 
[스마트스터디]CloudFront와 S3를 이용한 컨텐츠 배포 전략
[스마트스터디]CloudFront와 S3를 이용한 컨텐츠 배포 전략[스마트스터디]CloudFront와 S3를 이용한 컨텐츠 배포 전략
[스마트스터디]CloudFront와 S3를 이용한 컨텐츠 배포 전략smartstudy_official
 
[15.09.17] 인터넷과 웹의 역사 그리고 현재의 트렌드
[15.09.17] 인터넷과 웹의 역사 그리고 현재의 트렌드[15.09.17] 인터넷과 웹의 역사 그리고 현재의 트렌드
[15.09.17] 인터넷과 웹의 역사 그리고 현재의 트렌드Sanghun Yun
 
새로운 교육 패러다임을 리딩하기 위한 통합 교육 솔루션 Edupresso!
새로운 교육 패러다임을 리딩하기 위한 통합 교육 솔루션 Edupresso! 새로운 교육 패러다임을 리딩하기 위한 통합 교육 솔루션 Edupresso!
새로운 교육 패러다임을 리딩하기 위한 통합 교육 솔루션 Edupresso! Edupresso
 
chatbot-seminar-1806
chatbot-seminar-1806chatbot-seminar-1806
chatbot-seminar-1806juneyoungdev
 
[제9회 인터넷리더십] 비영리에게 유용한 웹서비스 - 배장훈
[제9회 인터넷리더십] 비영리에게 유용한 웹서비스 - 배장훈[제9회 인터넷리더십] 비영리에게 유용한 웹서비스 - 배장훈
[제9회 인터넷리더십] 비영리에게 유용한 웹서비스 - 배장훈daumfoundation
 
『빠르게 훑어보는 구글 클라우드 플랫폼』 - 맛보기
『빠르게 훑어보는 구글 클라우드 플랫폼』 - 맛보기『빠르게 훑어보는 구글 클라우드 플랫폼』 - 맛보기
『빠르게 훑어보는 구글 클라우드 플랫폼』 - 맛보기복연 이
 
파이썬 생존 안내서 (자막)
파이썬 생존 안내서 (자막)파이썬 생존 안내서 (자막)
파이썬 생존 안내서 (자막)Heungsub Lee
 
Sharing development experience of educational apps for the hard of hearing (P...
Sharing development experience of educational apps for the hard of hearing (P...Sharing development experience of educational apps for the hard of hearing (P...
Sharing development experience of educational apps for the hard of hearing (P...Youngki Moon
 
20070920 Roll Project
20070920 Roll Project20070920 Roll Project
20070920 Roll ProjectDaewoong Kim
 

Similar to Custom TTS using multi-speaker-tacotron(nanheekim) (20)

Speecher
SpeecherSpeecher
Speecher
 
웹 Front-End 실무 이야기
웹 Front-End 실무 이야기웹 Front-End 실무 이야기
웹 Front-End 실무 이야기
 
제품소개서 (Pastel editor)
제품소개서 (Pastel editor)제품소개서 (Pastel editor)
제품소개서 (Pastel editor)
 
제품소개서( Pastel Editor)
제품소개서( Pastel Editor)제품소개서( Pastel Editor)
제품소개서( Pastel Editor)
 
2023 GDG Sondo DevFest - Flutter/ Flavor, PlatformChannel, Environment variab...
2023 GDG Sondo DevFest - Flutter/ Flavor, PlatformChannel, Environment variab...2023 GDG Sondo DevFest - Flutter/ Flavor, PlatformChannel, Environment variab...
2023 GDG Sondo DevFest - Flutter/ Flavor, PlatformChannel, Environment variab...
 
U&i insight2012스터디설명회
U&i insight2012스터디설명회U&i insight2012스터디설명회
U&i insight2012스터디설명회
 
Python과 Tensorflow를 활용한 AI Chatbot 개발 및 실무 적용
Python과 Tensorflow를 활용한  AI Chatbot 개발 및 실무 적용Python과 Tensorflow를 활용한  AI Chatbot 개발 및 실무 적용
Python과 Tensorflow를 활용한 AI Chatbot 개발 및 실무 적용
 
자연어1 | 1차강의
자연어1 | 1차강의자연어1 | 1차강의
자연어1 | 1차강의
 
파이썬을 배워야하는 이유 발표자료 - 김연수
파이썬을 배워야하는 이유 발표자료 - 김연수파이썬을 배워야하는 이유 발표자료 - 김연수
파이썬을 배워야하는 이유 발표자료 - 김연수
 
Using CloudFront and S3 at SMARTSTUDY
Using CloudFront and S3 at SMARTSTUDYUsing CloudFront and S3 at SMARTSTUDY
Using CloudFront and S3 at SMARTSTUDY
 
CloudFront와 S3를 이용한 컨텐츠 배포 전략 - 박현우 CTO, SMARTSTUDY
CloudFront와 S3를 이용한 컨텐츠 배포 전략 - 박현우 CTO, SMARTSTUDYCloudFront와 S3를 이용한 컨텐츠 배포 전략 - 박현우 CTO, SMARTSTUDY
CloudFront와 S3를 이용한 컨텐츠 배포 전략 - 박현우 CTO, SMARTSTUDY
 
[스마트스터디]CloudFront와 S3를 이용한 컨텐츠 배포 전략
[스마트스터디]CloudFront와 S3를 이용한 컨텐츠 배포 전략[스마트스터디]CloudFront와 S3를 이용한 컨텐츠 배포 전략
[스마트스터디]CloudFront와 S3를 이용한 컨텐츠 배포 전략
 
[15.09.17] 인터넷과 웹의 역사 그리고 현재의 트렌드
[15.09.17] 인터넷과 웹의 역사 그리고 현재의 트렌드[15.09.17] 인터넷과 웹의 역사 그리고 현재의 트렌드
[15.09.17] 인터넷과 웹의 역사 그리고 현재의 트렌드
 
새로운 교육 패러다임을 리딩하기 위한 통합 교육 솔루션 Edupresso!
새로운 교육 패러다임을 리딩하기 위한 통합 교육 솔루션 Edupresso! 새로운 교육 패러다임을 리딩하기 위한 통합 교육 솔루션 Edupresso!
새로운 교육 패러다임을 리딩하기 위한 통합 교육 솔루션 Edupresso!
 
chatbot-seminar-1806
chatbot-seminar-1806chatbot-seminar-1806
chatbot-seminar-1806
 
[제9회 인터넷리더십] 비영리에게 유용한 웹서비스 - 배장훈
[제9회 인터넷리더십] 비영리에게 유용한 웹서비스 - 배장훈[제9회 인터넷리더십] 비영리에게 유용한 웹서비스 - 배장훈
[제9회 인터넷리더십] 비영리에게 유용한 웹서비스 - 배장훈
 
『빠르게 훑어보는 구글 클라우드 플랫폼』 - 맛보기
『빠르게 훑어보는 구글 클라우드 플랫폼』 - 맛보기『빠르게 훑어보는 구글 클라우드 플랫폼』 - 맛보기
『빠르게 훑어보는 구글 클라우드 플랫폼』 - 맛보기
 
파이썬 생존 안내서 (자막)
파이썬 생존 안내서 (자막)파이썬 생존 안내서 (자막)
파이썬 생존 안내서 (자막)
 
Sharing development experience of educational apps for the hard of hearing (P...
Sharing development experience of educational apps for the hard of hearing (P...Sharing development experience of educational apps for the hard of hearing (P...
Sharing development experience of educational apps for the hard of hearing (P...
 
20070920 Roll Project
20070920 Roll Project20070920 Roll Project
20070920 Roll Project
 

More from Nanhee Kim

Model compression
Model compressionModel compression
Model compressionNanhee Kim
 
Kalman filter(nanheekim)
Kalman filter(nanheekim)Kalman filter(nanheekim)
Kalman filter(nanheekim)Nanhee Kim
 
Creating touch screen based loop station using rapsberry pi and qt(nanheekim)
Creating touch screen based loop station using rapsberry pi and qt(nanheekim)Creating touch screen based loop station using rapsberry pi and qt(nanheekim)
Creating touch screen based loop station using rapsberry pi and qt(nanheekim)Nanhee Kim
 
MCU(nanheekim)
MCU(nanheekim)MCU(nanheekim)
MCU(nanheekim)Nanhee Kim
 
Book management system(nanheekim)
Book management system(nanheekim)Book management system(nanheekim)
Book management system(nanheekim)Nanhee Kim
 
ADC(nanheekim)
ADC(nanheekim)ADC(nanheekim)
ADC(nanheekim)Nanhee Kim
 
We can decide(Final)(nanheekim)
We can decide(Final)(nanheekim)We can decide(Final)(nanheekim)
We can decide(Final)(nanheekim)Nanhee Kim
 
My dream(ver2016)(nanheekim)
My dream(ver2016)(nanheekim)My dream(ver2016)(nanheekim)
My dream(ver2016)(nanheekim)Nanhee Kim
 
Control led using relay module and transistor(nanheekim)
Control led using relay module and transistor(nanheekim)Control led using relay module and transistor(nanheekim)
Control led using relay module and transistor(nanheekim)Nanhee Kim
 
Creating text to talk active image(nanheekim)
Creating text to talk active image(nanheekim)Creating text to talk active image(nanheekim)
Creating text to talk active image(nanheekim)Nanhee Kim
 
Searching algorithm(nanheekim)
Searching algorithm(nanheekim)Searching algorithm(nanheekim)
Searching algorithm(nanheekim)Nanhee Kim
 
Transfer learning of model alexnet for image classification to matlab(nanheekim)
Transfer learning of model alexnet for image classification to matlab(nanheekim)Transfer learning of model alexnet for image classification to matlab(nanheekim)
Transfer learning of model alexnet for image classification to matlab(nanheekim)Nanhee Kim
 
Digital clock using 7segment(nanheekim)
Digital clock using 7segment(nanheekim)Digital clock using 7segment(nanheekim)
Digital clock using 7segment(nanheekim)Nanhee Kim
 
Seminar 2legs robots(nanheekim)
Seminar 2legs robots(nanheekim)Seminar 2legs robots(nanheekim)
Seminar 2legs robots(nanheekim)Nanhee Kim
 
Imu sensor(nanhee_kim)
Imu sensor(nanhee_kim)Imu sensor(nanhee_kim)
Imu sensor(nanhee_kim)Nanhee Kim
 

More from Nanhee Kim (15)

Model compression
Model compressionModel compression
Model compression
 
Kalman filter(nanheekim)
Kalman filter(nanheekim)Kalman filter(nanheekim)
Kalman filter(nanheekim)
 
Creating touch screen based loop station using rapsberry pi and qt(nanheekim)
Creating touch screen based loop station using rapsberry pi and qt(nanheekim)Creating touch screen based loop station using rapsberry pi and qt(nanheekim)
Creating touch screen based loop station using rapsberry pi and qt(nanheekim)
 
MCU(nanheekim)
MCU(nanheekim)MCU(nanheekim)
MCU(nanheekim)
 
Book management system(nanheekim)
Book management system(nanheekim)Book management system(nanheekim)
Book management system(nanheekim)
 
ADC(nanheekim)
ADC(nanheekim)ADC(nanheekim)
ADC(nanheekim)
 
We can decide(Final)(nanheekim)
We can decide(Final)(nanheekim)We can decide(Final)(nanheekim)
We can decide(Final)(nanheekim)
 
My dream(ver2016)(nanheekim)
My dream(ver2016)(nanheekim)My dream(ver2016)(nanheekim)
My dream(ver2016)(nanheekim)
 
Control led using relay module and transistor(nanheekim)
Control led using relay module and transistor(nanheekim)Control led using relay module and transistor(nanheekim)
Control led using relay module and transistor(nanheekim)
 
Creating text to talk active image(nanheekim)
Creating text to talk active image(nanheekim)Creating text to talk active image(nanheekim)
Creating text to talk active image(nanheekim)
 
Searching algorithm(nanheekim)
Searching algorithm(nanheekim)Searching algorithm(nanheekim)
Searching algorithm(nanheekim)
 
Transfer learning of model alexnet for image classification to matlab(nanheekim)
Transfer learning of model alexnet for image classification to matlab(nanheekim)Transfer learning of model alexnet for image classification to matlab(nanheekim)
Transfer learning of model alexnet for image classification to matlab(nanheekim)
 
Digital clock using 7segment(nanheekim)
Digital clock using 7segment(nanheekim)Digital clock using 7segment(nanheekim)
Digital clock using 7segment(nanheekim)
 
Seminar 2legs robots(nanheekim)
Seminar 2legs robots(nanheekim)Seminar 2legs robots(nanheekim)
Seminar 2legs robots(nanheekim)
 
Imu sensor(nanhee_kim)
Imu sensor(nanhee_kim)Imu sensor(nanhee_kim)
Imu sensor(nanhee_kim)
 

Recently uploaded

MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionKim Daeun
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Kim Daeun
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Wonjun Hwang
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)Tae Young Lee
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Wonjun Hwang
 

Recently uploaded (6)

MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 

Custom TTS using multi-speaker-tacotron(nanheekim)

  • 1.
  • 2. 2 / 20 [ 기존 TTS 서비스 ]
  • 3. 3 / 20 [ Jupyter 환경 모습 ] Anaconda3를 이용한 가상환경 생성 [ tacotron 모델에 필요한 패키지 설치 ]
  • 4. 4 / 20 음성파일 생성 음성파일 묵음 구간으로 분리 SST API를 이용해 텍스트 파일 생성 alignment 파일 생성 .npz dataset생성 [ Dataset 생성 과정 ] [ alignment.json 파일 내부 모습 ] [ Google Cloud SDK 중 SST API 사용 모습 ]
  • 5. 5 / 20 [ 유인나 + 코퍼스 학습 결과 loss graph ] [ 손석희 + 김호연 학습 결과 loss graph ] [ 유인나 + 코퍼스 학습 결과 sample] [ 손석희 + 김호연 학습 결과 sample ]
  • 6. 6 / 20 [ 유인나 오디오북 + 한국어 코퍼스 + 이주형 + 김난희 학습 결과 loss graph ] [학습 결과 sample] 유인나 오디오북, 한국어 코퍼스 이주형, 김난희
  • 7. 7 / 20 [ IP 설정 및 포트 설정 ] app.py main.js [ Flask 웹에 사용할 UI ] Index.html app.py web audio son+hozzi-trainingdate synthesizecode1.wav synthesizecode1.png … yuinna+kss-trainingdate synthesizecode2.wav synthesizecode2.png … static css main.css js templete Index.html main.js siriwave.js [ Flask Web 구조도 ]
  • 8. 8 / 20 [ UI 전체 모습 ] [ 텍스트 입력 ] [ 입력한 텍스트로 음성 합성 및 음성 출력 ]
  • 9. 9 / 20 1. 제약조건1: 학습 환경 학습을 위해서는 그래픽 카드나 GPU의 성능이 보다 좋은 환경이 필요함. Smart-Lab의 서버를 이용하여 학습 시간을 단축시켰다. 2. 제약조건2 : 음성 데이터 품질 및 텍스트 파일과의 매칭 정확도 보다 높은 질의 학습 결과를 출력하기 위해서는 필연적으로 학습에 이용되는 음성 파일이 화자의 목소리 외의 잡음 요소들이 없는 파일이여야 한다. 이러한 요소를 최소화 하기 위해 침묵 구간으로 잘라 음성파일을 분리하여 저장한다. 이렇게 저장된 음성파일을 기반으로 텍스트 파일과 매칭하는데, 구글 SST API로 생성된 텍스트 파일이 완벽하게 번역되지 않아 조금씩 틀리는 경우가 존재한다. 이를 해결하기 위해 잘못 잘라진 음성파일을 제외하거나 텍스트 파일을 수정하는 전 처리 작업을 통해 학습 데이터의 품질을 높일 수 있었다. 3. 제약조건3: 음성 학습 과정 Custom TTS에서 구현하고자 하는 다중화자의 경우 모든 화자에 대해서 각각 학습하는 것이 아니라 한번에 학습을 돌리는 것이 결과와 효율 모두 좋다. 하지만 4명의 음색이 모두 다르고 속도도 다르기 때문에 음성의 특성이 비슷한 화자끼리 모아서 학습을 진행하여 보다 좋은 결과를 얻을 수 있었다. 4. 제약조건4: 웹 어플리케이션 실시간으로 텍스트와 음성파일을 주고 받기 위한 UI가 필요했다. 현재 사용하는 개발환경이 jupyter로, 웹에서 개발할 수 있는 툴이기 때문에 웹 브라우저에서 페이지를 만들어 이를 해결했다. 기존에 flask 기반으로 제작된 웹 페이지를 수정하였다. 과제제목 : Deep Learning을 이용한 Custom TTS
  • 10.
  • 11.
  • 12. 12 / 8 [ 음성 합성 기술 동향 및 적용 사례 ] https://wowtale.net/2019/11/15/naver-clova-premium-voice/
  • 13. 2) 개발 기간 음성 합성 기술 컨셉 선정 3월 1) 음성학습 모델 : Multi-Speaker-Tacotron Baidu Deep Voice Encoder Decoder Attention Vocoder Google Tacotron 개발 환경 및 학습 환경 구축 4월 음성 학습 5~10월 웹 페이지 구축 및 서비스화 11월 https://github.com/carpedm20/multi-speaker-tacotron-tensorflow Google Tacotron 13 / 8
  • 14. 1) 학습 환경(Smart-lab) 2) 데이터셋 품질 1. 손석희 (손석희의 뉴스룸) : 43700줄(11시간) 2. 유인나 (유인나의 오디오북) : 3670줄(5시간) 3. 코퍼스 (한국어 코퍼스) : 12800줄(3시간) 4. 이주형, 김난희 (직접 녹음): 2930줄(3시간) 5. 김호연 (직접 녹음): 550줄(1시간) [사용한 언어] [학습 툴] [기본 개발 환경] [웹 환경] *1번 손석희는 Google SST API를 이용해 많은 양의 데이터셋 을 만들 수 있었음 *4번 이주형, 김난희는 직접 녹음 및 데이터셋 작업을 했기에 데이터셋의 양이 적지만 많은 시간 만큼의 음성 합성 품질을 얻을 수 있었음 14 / 8
  • 15. 데이터셋 생성 Deep Voice Tacotron으로 학습 (200,000 ~ 500,000 Step) 화자 조합 선정 학습된 모델 저장 합성한 음성파일 출력 음성 주파수 대역 사진 출력 음성학습 결과 확인 유인나 손석희 코퍼스 김호연 김난희 이주형 데이터셋 생성 음성 파일 확보 음성 파일을 묵음 구간으로 자르기 음성에 맞는 텍스트 생성(.json 파일) 원하는 텍스트 길이에 맞는 텍스트 선별 올바르지 않은 음성 및 텍스트 제거 학습 과정 15 / 8 학습을 위한 최종 파일 생성 (.npz 파일)
  • 16. 음성 서비스 구현 음성 합성에 쓸 텍스트를 길이에 맞게 조절 서비스 선택 기본 / 편지쓰기 / 모닝콜 / 브리핑 / 생일축하 Pydub으로 음성 합성 파일과 배경음악과 합성 생일축하 [웹 페이지 구성] HOME(메인페이지) BASIC(기본 합성) LETTER(편지 쓰기) ALARM(알람) ABOUT(소개/연락/다운로드) 모닝콜 일정브리핑 음량 크기 조절 합성된 음성 출력 및 지정된 경로에 저장 16 / 8
  • 17. 17 / 8 메인 홈페이지 기본 합성 페이지 편지 쓰기 페이지 알람 소개 페이지 소개/연락/다운로드모닝콜 페이지 일정 브리핑 페이지 생일축하 페이지
  • 18. 1. 제약조건1 : 데이터셋 생성 과정 음성 데이터의 양이 많을수록 음성 파일과 텍스트를 매칭하기 위한 작업이 수작업으로 하기에는 시간이 너무 많이 소요됨. 어느 정도 자동화를 하기 위해 구글 STT API를 사용해서 데이터셋을 생성하는 시간을 단축시켰음. 한국어 코퍼스는 오픈되어 있는 데이터 셋이지만 텍스트 파일이 양식에 맞지 않기 때문에 파이썬 코드를 작성해서 사용하고자 하는 데이터셋으로 바꾸어서 사용함. 이렇게 API와 파이썬 코드를 통해서 데이터셋 생성 시간을 단축시킴. 2. 제약조건3 : 음성 학습 과정 구현하고자 하는 다중화자의 경우 한 화자에 대해서만 학습하는 것이 아니라 다중 화자를 한번에 학습을 돌리는 것이 결과와 효율 모두 좋음. 하지만 5명의 음색이 모두 다르고 속도도 다르기 때문에 음성의 특성이 비슷한 화자끼리 모아서 학습을 진행하여 보다 좋은 결과를 얻을 수 있었음. 또한 음성 데이터 품질을 수치적으로 판단하기 힘들기 때문에 학습할 때에 Loss 그래프와 샘플 파일들을 들어보면서 잘 합성된 모델을 결정하였음. 3. 제약조건2 : 음성 합성에 맞는 웹 기반 서비스 개발 다양한 서비스 중에서 음성 합성이 적합하게 사용 될 수 있는 서비스를 선택해서 개발해야 함. 현재 음성 합성이 사용되고 있는 분야는 기본적으로 텍스트를 기반으로 하는 서비스임. 따라서 편지를 읽어주거나, 모닝콜, 브리핑 그리고 생일 축하와 같은 텍스트 기반 서비스들을 음성 합성으로 구현해서 보다 앞으로 구현될 수 있는 서비스를 구현하였음. 또한 목소리와 배경음악을 합성할 시 두 음성 파일의 볼륨이 다르기 때문에 이를 적절히 조절해서 합성할 필요가 있음. 개인의 휴대폰에 서비스 적용을 위해 웹 어플리케이션으로 환경을 선정함. 원하는 서비스를 사용한 후에 직접 음성 파일을 재생하고 파일을 다운로드 할 수 있게 함. 과제제목 : multi-speaker-tacotron을 이용한 개인 음성 합성 서비스 18 / 8