Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the wordpress-seo domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/toplistWyAc/toplist.tfvp.org/public_html/wp-includes/functions.php on line 6114
Top 32 한글 Tts 오픈 소스 The 94 Latest Answer

Top 32 한글 Tts 오픈 소스 The 94 Latest Answer

You are looking for information, articles, knowledge about the topic nail salons open on sunday near me 한글 tts 오픈 소스 on Google, you do not find the information you need! Here are the best content compiled and compiled by the https://toplist.tfvp.org team, along with other related topics such as: 한글 tts 오픈 소스 한글 TTS, Tensorflow-tts, TTS API 무료, 카카오 음성 API 가격, 카카오 TTS 파이썬, 딥러닝 TTS, 카카오 TTS API, 카카오 TTS


Autohotkey로 무료 한글 TTS(Text To Speech) 프로그램 만들어 무료로 TTS사용하자
Autohotkey로 무료 한글 TTS(Text To Speech) 프로그램 만들어 무료로 TTS사용하자

[su_youtube_advanced url=”https://www.youtube.com/watch?v=zsHo-TphzHM”]


[오픈소스 리뷰기] TTS(Text-to-Speech) 음성합성기술 API 이용하기

  • Article author: www.dinolabs.ai
  • Reviews from users: 3161 ⭐ Ratings
  • Top rated: 3.3 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about [오픈소스 리뷰기] TTS(Text-to-Speech) 음성합성기술 API 이용하기 간단히 말하면 모델로 선정된 한 사람의 말소리를 녹음하여 일정한 음성 단위로 분할한 다음, 부호를 붙여 합성기에 입력하였다가 지시에 따라 필요한 … …
  • Most searched keywords: Whether you are looking for [오픈소스 리뷰기] TTS(Text-to-Speech) 음성합성기술 API 이용하기 간단히 말하면 모델로 선정된 한 사람의 말소리를 녹음하여 일정한 음성 단위로 분할한 다음, 부호를 붙여 합성기에 입력하였다가 지시에 따라 필요한 … 오픈소스 리뷰 : 슬기로운 오픈소스 사용법 리뷰해드립니다! #13 TTS(Text-to-Speech) 음성합성기술 API 이용하기 안녕하세요. 디노랩스입니다! 오늘 리뷰해드릴 오픈소스는 바로 TTS라는 기술을 이용해볼건데..
  • Table of Contents:

‘BLOG오픈소스 리뷰기’ Related Articles

검색

최근 포스트

태그

티스토리툴바

[오픈소스 리뷰기] TTS(Text-to-Speech) 음성합성기술 API 이용하기
[오픈소스 리뷰기] TTS(Text-to-Speech) 음성합성기술 API 이용하기

Read More

open TTS (Text to Speech) eSpeak

  • Article author: embedscope.com
  • Reviews from users: 10828 ⭐ Ratings
  • Top rated: 4.2 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about open TTS (Text to Speech) eSpeak 형식으로 파일에 텍스트를 적어 들어 볼 수 있습니다. 한글 지원 소스의 경우는. #>Makefile을 텍스트 에디터로 열어 내용중 python3 -> python 으로 모두 … …
  • Most searched keywords: Whether you are looking for open TTS (Text to Speech) eSpeak 형식으로 파일에 텍스트를 적어 들어 볼 수 있습니다. 한글 지원 소스의 경우는. #>Makefile을 텍스트 에디터로 열어 내용중 python3 -> python 으로 모두 … 오늘은 텍스트를 음성으로 변환해주는 TTS 중 괜찮은 오픈 소스가 있어 소개 해봅니다. eSpeak ( http://espeak.sourceforge.net ) 기능은 아주 심플합니다. 영문 텍스트를 입력하면 텍스트를 읽어 줍니다 기본은..
  • Table of Contents:

‘Software’ Related Articles

검색

open TTS (Text to Speech) eSpeak
open TTS (Text to Speech) eSpeak

Read More

MS 윈도우용 오픈소스 한국어/영어 TTS 프로그램 : 네이버 블로그

  • Article author: blog.naver.com
  • Reviews from users: 13482 ⭐ Ratings
  • Top rated: 4.9 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about MS 윈도우용 오픈소스 한국어/영어 TTS 프로그램 : 네이버 블로그 오픈소스 한국어/영어 TTS 프로그램의 사용법은 다음과 같습니다. ​. * 아래의 웹 페이지에 접속하여서 TTS.zip 파일을 다운로드한다. – https … …
  • Most searched keywords: Whether you are looking for MS 윈도우용 오픈소스 한국어/영어 TTS 프로그램 : 네이버 블로그 오픈소스 한국어/영어 TTS 프로그램의 사용법은 다음과 같습니다. ​. * 아래의 웹 페이지에 접속하여서 TTS.zip 파일을 다운로드한다. – https …
  • Table of Contents:

블로그

악성코드가 포함되어 있는 파일입니다

작성자 이외의 방문자에게는 이용이 제한되었습니다

MS 윈도우용 오픈소스 한국어/영어 TTS 프로그램 : 네이버 블로그
MS 윈도우용 오픈소스 한국어/영어 TTS 프로그램 : 네이버 블로그

Read More

Sooftware Speech – 한국어 Tacotron2

  • Article author: sooftware.io
  • Reviews from users: 38739 ⭐ Ratings
  • Top rated: 3.6 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about Sooftware Speech – 한국어 Tacotron2 Tacotron2 Tacotron2는 17년 12월 구글이 NATURAL TTS SYNTHESIS BY… … NVIDIA에서 Tacotron2 를 아주 잘 구현해서 오픈소스로 공개했습니다. …
  • Most searched keywords: Whether you are looking for Sooftware Speech – 한국어 Tacotron2 Tacotron2 Tacotron2는 17년 12월 구글이 NATURAL TTS SYNTHESIS BY… … NVIDIA에서 Tacotron2 를 아주 잘 구현해서 오픈소스로 공개했습니다. 한국어 Tacotron2 이번 포스팅에서는 Tacotron2 아키텍처로 한국어 TTS 시스템을 만드는 방법에 대해 다루겠습니다. Tacotron2 Tacotron2는 17년 12월 구글이 NATURAL TTS SYNTHESIS BY…
  • Table of Contents:

Soohwan Kim

Tacotron2

NVIDIA Tacotron2

NVIDIA Tacotron2 Data Format

NVIDIA Tacotron2 for Korean

Docker란

2021 SSDC 발표 – TUNiB Electra 개발기

Sooftware Speech - 한국어 Tacotron2
Sooftware Speech – 한국어 Tacotron2

Read More

구글STT와 네이버TTS를 대체하기 위한 Jasper 오픈 소스 플랫폼 · Issue #15 · pyj9293/iothome · GitHub

  • Article author: github.com
  • Reviews from users: 17274 ⭐ Ratings
  • Top rated: 4.7 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 구글STT와 네이버TTS를 대체하기 위한 Jasper 오픈 소스 플랫폼 · Issue #15 · pyj9293/iothome · GitHub 한글을 사용하기 위해서는 # return bool(re.search(ur’시간’, phrase, re.UNICODE)) # 과 같은 방식으로 수정해야합니다. Jasper가 실행되면 client/brain.py에서 modules … …
  • Most searched keywords: Whether you are looking for 구글STT와 네이버TTS를 대체하기 위한 Jasper 오픈 소스 플랫폼 · Issue #15 · pyj9293/iothome · GitHub 한글을 사용하기 위해서는 # return bool(re.search(ur’시간’, phrase, re.UNICODE)) # 과 같은 방식으로 수정해야합니다. Jasper가 실행되면 client/brain.py에서 modules … 먼저 Jasper란 STT와 TTS를 결합하고 있는 오픈 소스 플랫폼입니다. 가장 큰 특징으로 100% 오픈 소스라는 점과 Always-Listening(항상 음성인식 대기상태에 놓여있는 것), 그리고 음성인식을 통한 제어 방법을 기본적으로 제공하고 있다는 것입니다. 자세한 사항은 아래 주소를 참고 해주시기 바랍니다. https://jasperproject.github.io/
  • Table of Contents:

Comments

Footer

구글STT와 네이버TTS를 대체하기 위한 Jasper 오픈 소스 플랫폼 · Issue #15 · pyj9293/iothome · GitHub
구글STT와 네이버TTS를 대체하기 위한 Jasper 오픈 소스 플랫폼 · Issue #15 · pyj9293/iothome · GitHub

Read More

한국어 발음 프로그래밍 (한국어 tts)

  • Article author: eastriver-today.tistory.com
  • Reviews from users: 24665 ⭐ Ratings
  • Top rated: 4.9 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 한국어 발음 프로그래밍 (한국어 tts) 대중들에게 가장 잘 알려진 한국어 tts(text-to-speech) 서비스로는 … 제약이 있지만 언젠가는 쓸만한 오픈소스 한국어 tts를 만들 생각이 있다. …
  • Most searched keywords: Whether you are looking for 한국어 발음 프로그래밍 (한국어 tts) 대중들에게 가장 잘 알려진 한국어 tts(text-to-speech) 서비스로는 … 제약이 있지만 언젠가는 쓸만한 오픈소스 한국어 tts를 만들 생각이 있다. 대중들에게 가장 잘 알려진 한국어 tts(text-to-speech) 서비스로는 카카오 스피치, 네이버 클로바 더빙, 구글 클라우드 tts가 있다. 많은 tts 서비스는 영어를 기반으로 하고 있어, 해당 기술을 구현하기 위해서..
  • Table of Contents:

비트와 자장가

한국어 발음 프로그래밍 (한국어 tts) 본문

한국어 발음 프로그래밍 (한국어 tts)
한국어 발음 프로그래밍 (한국어 tts)

Read More

[RPI/Python] 라즈베리파이(or 리눅스) TTS 음성 출력

  • Article author: ddangeun.tistory.com
  • Reviews from users: 24900 ⭐ Ratings
  • Top rated: 4.6 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about [RPI/Python] 라즈베리파이(or 리눅스) TTS 음성 출력 TTS: TextToSpeech, 즉 텍스트를 음성으로 출력해보겠습니다. TTS 오픈소스는 다양하지만, 한글을 읽고 싶기 때문에 한국어를 지원해주는 eSpeak를 … …
  • Most searched keywords: Whether you are looking for [RPI/Python] 라즈베리파이(or 리눅스) TTS 음성 출력 TTS: TextToSpeech, 즉 텍스트를 음성으로 출력해보겠습니다. TTS 오픈소스는 다양하지만, 한글을 읽고 싶기 때문에 한국어를 지원해주는 eSpeak를 … TTS: TextToSpeech, 즉 텍스트를 음성으로 출력해보겠습니다. TTS 오픈소스는 다양하지만, 한글을 읽고 싶기 때문에 한국어를 지원해주는 eSpeak를 사용해보겠습니다. 라즈베리파이 오디오 설정 오디오 단자에 스..
  • Table of Contents:

공지사항

최근 포스트

검색

전체 방문자

티스토리툴바

[RPI/Python] 라즈베리파이(or 리눅스) TTS 음성 출력
[RPI/Python] 라즈베리파이(or 리눅스) TTS 음성 출력

Read More

[코드리뷰]타코트론2 TTS 시스템 1/2 – 새내기 코드 여행

  • Article author: joungheekim.github.io
  • Reviews from users: 9845 ⭐ Ratings
  • Top rated: 3.1 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about [코드리뷰]타코트론2 TTS 시스템 1/2 – 새내기 코드 여행 [4] ESPnet(한글) : 음성 인식 API(무료) ESPnet은 음성인식 모델을 개발할 수 있도록 과련 개발 모델 및 파이프라인을 잘 정리한 오픈소스입니다. …
  • Most searched keywords: Whether you are looking for [코드리뷰]타코트론2 TTS 시스템 1/2 – 새내기 코드 여행 [4] ESPnet(한글) : 음성 인식 API(무료) ESPnet은 음성인식 모델을 개발할 수 있도록 과련 개발 모델 및 파이프라인을 잘 정리한 오픈소스입니다. Machine Learning EngineerCode Journey, Machine Learning, Natural Language Process, Deep Learning, 머신러닝, 딥러닝
  • Table of Contents:

타코트론2 개인화 TTS 시스템 만들기

1 데이터 수집

2 음성 데이터 전처리

3 스크립트 전처리

전처리 작업 예시

[코드리뷰]타코트론2 TTS 시스템 1/2 - 새내기 코드 여행
[코드리뷰]타코트론2 TTS 시스템 1/2 – 새내기 코드 여행

Read More

글자를 음성으로 변환해 주는 TTS 웹사이트 베스트6

  • Article author: gameblockcode.tistory.com
  • Reviews from users: 6785 ⭐ Ratings
  • Top rated: 3.3 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 글자를 음성으로 변환해 주는 TTS 웹사이트 베스트6 Balabolka포터블 프로그램을 지원합니다. Balabolka에서는 무료 TTS 한글 엔진을 지원하며. 음성을 파일로 저장이 가능한 유일한 사이트라고 할수 … …
  • Most searched keywords: Whether you are looking for 글자를 음성으로 변환해 주는 TTS 웹사이트 베스트6 Balabolka포터블 프로그램을 지원합니다. Balabolka에서는 무료 TTS 한글 엔진을 지원하며. 음성을 파일로 저장이 가능한 유일한 사이트라고 할수 … 글자를 음성으로 변환해 주는 TTS 웹사이트 베스트6 TTS는 글자를 음성으로 변환해주는 기능으로 최근 포털에서도 기사 읽기 기능을 제공하고 있습니다. 과거에는 시각장애인용으로 많이 활용되어 왔지만 이북의..
  • Table of Contents:
글자를 음성으로 변환해 주는 TTS 웹사이트 베스트6
글자를 음성으로 변환해 주는 TTS 웹사이트 베스트6

Read More


See more articles in the same category here: 17+ tips for you.

[오픈소스 리뷰기] TTS(Text-to-Speech) 음성합성기술 API 이용하기

오픈소스 리뷰 : 슬기로운 오픈소스 사용법 리뷰해드립니다!

#13 TTS(Text-to-Speech) 음성합성기술 API 이용하기

안녕하세요. 디노랩스입니다!

오늘 리뷰해드릴 오픈소스는 바로 TTS라는 기술을 이용해볼건데요.

TTS는 Text to Speech의 약자로 한국어로 ‘음성합성’이라고 하는데요, 말소리의 음파를 기계가 자동으로 만들어 내는 기술입니다.

간단히 말하면 모델로 선정된 한 사람의 말소리를 녹음하여 일정한 음성 단위로 분할한 다음, 부호를 붙여 합성기에 입력하였다가 지시에 따라 필요한 음성 단위만을 다시 합쳐 말소리를 인위로 만들어내는 기술이죠!

우리 주변에서도 쉽게 볼 수 있는 음성합성기술! API 함께 사용해 볼까요?ㅎㅎ

01_Google gTTS

가장 먼저 gTTS 모듈을 통해 구글 TTS 기능을 사용할 수 있는 방법을 알아보겠습니다.

gTTS (Google Text-to-Speech)는 Google 번역 텍스트 음성 변환 API와 상호 작용하는 Python 라이브러리 및 CLI 도구로 설치 후 누구나 손쉽게 사용할 수 있습니다.

https://gtts.readthedocs.io/en/latest/index.html

# gTTS 모듈을 설치합니다. !pip install gTTS

# gTTS와 notebook 환경에서 audio 파일을 재생하기 위한 모듈을 불러옵니다. from gtts import gTTS from IPython.display import Audio from IPython.display import display

이제 원하는 텍스트를 입력한 뒤 TTS를 통해 오디오파일을 저장해보겠습니다.

text = “안녕하세요. 구글 TTS API 테스트 중입니다. 파이썬을 활용하면 무엇이든 해낼 수 있어요.” tts = gTTS(text, lang=”ko”) tts.save(“hi.mp3”)

# 현재 작업중인 디렉토리에 저장된 hi.mp3 파일을 재생해보겠습니다. wn = Audio(‘hi.mp3’, autoplay=True) display(wn)

gTTS 는 아래와 같은 다양한 언어들을 지원합니다.

from gtts import lang lang.tts_langs()

또 gTTS 는 영어, 프랑스어, 중국어, 스페인어, 포르투갈어의 경우 지역별로 다른 억양을 적용할 수 있습니다.

참고 : https://gtts.readthedocs.io/en/latest/module.html#localized-accents

wn = Audio(‘hello.mp3’, autoplay=True) display(wn)

# 먼저 영어 억양의 default인 미국 억양을 적용해보겠습니다. text = ‘Good afternoon. You can do anything with python’ tts = gTTS(text, lang=’en’) tts.save(‘hello.mp3’)

wn = Audio(‘hello.mp3’, autoplay=True) display(wn)

# 이번에는 tld 파라미터를 다르게 적용하여 영국 억양을 적용해보겠습니다. text = ‘Good afternoon. You can do anything with python’ tts = gTTS(text, lang=’en’, tld=’co.uk’) tts.save(‘hello.mp3’)

wn = Audio(‘hello.mp3’, autoplay=True) display(wn)

02_Kakao

다음으로는 카카오에서 개발한 음성합성 API 활용법을 알아보겠습니다.

아래 링크에서 시작하기 버튼을 클릭, 애플리케이션 추가하기 버튼을 클릭하여 앱 이름, 사업자명을 입력하여 생성을 완료합니다.

https://developers.kakao.com/product/voice

앱 생성을 완료하면 앱 설정에서 생성된 REST API 키값을 확인할 수 있습니다.

다음으로는 카카오 음성 API를 활용하기 위해 왼쪽 메뉴 버튼 중 ‘음성’을 클릭하여, 아래와 같이 음성 API를 활성화해야 합니다.

on 버튼을 클릭 후 사용목적을 입력하여 활성화를 완료해주세요.

이제 직접 코드를 작성하여 카카오 TTS api 를 활용해보겠습니다.

import os, requests, json, wave url = “https://kakaoi-newtone-openapi.kakao.com/v1/synthesize” key = ‘발급받은 키를 입력해주세요.’ headers = { “Content-Type”: “application/xml”, “Authorization”: “KakaoAK ” + key, }

카카오 api에서는 기본적으로 모든 음성은 태그로 감싸야 합니다.

아래와 같이 음성으로 변환하고자 하는 텍스트를 입력합니다.

# 텍스트를 입력합니다. text = “안녕하세요. 제 이름은 카카오 음성합성 API 입니다. 만나서 반가워요. ㅋㅋㅋ” # 입력한 텍스트를 변환하여 api를 호출합니다. data = f”{text}“.encode(‘utf-8’).decode(‘latin1’) res = requests.post(url, headers=headers, data=data) # 호출하여 불러온 결과값을 저장합니다. with open(‘hello_kakao.wav’, ‘wb’) as f: f.write(res.content)

wn = Audio(‘hello_kakao.wav’, autoplay=True) display(wn)

이번에는 카카오 TTS api에서 제공하는 다양한 옵션들을 몇가지 알아보도록 하겠습니다.

참고 : https://developers.kakao.com/assets/guide/kakao_ssml_guide.pdf

태그를 활용하면 다른 목소리를 적용할 수 있습니다.

WOMAN_READ_CALM : 여성 차분한 낭독체 (default)

MAN_READ_CALM : 남성 차분한 낭독체

WOMAN_DIALOG_BRIGHT : 여성 밝은 대화체

MAN_DIALOG_BRIGHT : 남성 밝은 대화체

data = ”’ 지금은 여성 차분한 낭독체입니다. 지금은 남성 차분한 낭독체입니다. 안녕하세요. 여성 밝은 대화체예요. 안녕하세요. 남성 밝은 대화체예요. ”’.encode(‘utf-8’).decode(‘latin1’) res = requests.post(url, headers=headers, data=data) with open(‘voice.wav’, ‘wb’) as f: f.write(res.content)

wn = Audio(‘voice.wav’, autoplay=True) display(wn)

prosody 태그를 활용하면 음성의 속도와 볼륨을 변경할 수 있습니다.

rate slow : 0.9 medium : 1.0 (default) fast : 1.1

volume soft : 0.7 medium : 1.0 (default) loud : 1.4

data = ”’ 안녕하세요. 반가워요. 안녕하세요. 반가워요. ”’.encode(‘utf-8’).decode(‘latin1’) res = requests.post(url, headers=headers, data=data) with open(‘prosody.wav’, ‘wb’) as f: f.write(res.content)

wn = Audio(‘prosody.wav’, autoplay=True) display(wn)

break 태그를 활용하면 의도적으로 문장과 문장 사이에 “쉼”을 줄 수 있습니다.

time : 150(0.15초) ~ 1500(1.5초)까지 지원, default는 150

data = ”’ 첫 번째 문장입니다. 두 번째 문장입니다 옵션을 안준 경우 기본 셋팅 150입니다. 세 번째 문장입니다 네 번째 문장입니다. 앞이랑 똑같죠? 다섯 번째 문장입니다. 길게 쉬죠? ㄹㅁㅌㄷㅊㄹ 여섯 번째 문장입니다. 앞에 문장이 실패해서 쉬지 않습니다. ”’.encode(‘utf-8’).decode(‘latin1’) res = requests.post(url, headers=headers, data=data) with open(‘break.wav’, ‘wb’) as f: f.write(res.content)

wn = Audio(‘break.wav’, autoplay=True) display(wn)

kakao:effect 태그를 활용하면 존대말을 반말로 변경할 수도 있습니다.

tone default : 기본 말투, 변경 없음 friendly : 친구같은 말투

data = ”’ 안녕하세요. 반가워요. 원래는 존댓말인데 반말로 바꿔보겠습니다. 잘 지내요? 여긴 존댓말 구역이에요. 저도 잘 지내요. ”’.encode(‘utf-8’).decode(‘latin1’) res = requests.post(url, headers=headers, data=data) with open(‘friendly.wav’, ‘wb’) as f: f.write(res.content)

wn = Audio(‘friendly.wav’, autoplay=True) display(wn)

여기까지입니다. 잘 따라오셨나요? 🙂

이렇게 오늘 구글과 카카오의 TTS API를 활용하는 법을 알려드렸는데요.

우리 주변에서의 여러 오픈소스들을 이렇게 쉽게, 다양하게 활용할 수 있답니다!

open TTS (Text to Speech) eSpeak

728×90

오늘은 텍스트를 음성으로 변환해주는 TTS 중 괜찮은 오픈 소스가 있어 소개 해봅니다.

eSpeak ( http://espeak.sourceforge.net )

기능은 아주 심플합니다. 영문 텍스트를 입력하면 텍스트를 읽어 줍니다

기본은 영문 지원인데 한글도 가능합니다 개발자 분에게 감사를~

한글의 경우는 https://github.com/puzzlet/espeak-korean

상기 사이트에서 받아 보실 수 있습니다.

설치 방법은 https://github.com/puzzlet/espeak-korean/blob/master/README.old.md

소스 빌드 및 테스트는 Ubuntu 12.04에서 진행하였으며

설치 방법은 간단히 #>make 하여 빌드 후 생성되는 espeak 실행파일을 사용하여

#>espaek “test test test”

또는

#> espaek -f text.txt

형식으로 파일에 텍스트를 적어 들어 볼 수 있습니다.

한글 지원 소스의 경우는

#>Makefile을 텍스트 에디터로 열어 내용중 python3 -> python 으로 모두 이름 변경 합니다

#>make

#>cd espeak/src

#>make

#>espeak -v ko “한글 한글 한글”

과 같이 수행하여 볼 수 있습니다.

※한글 지원 소스 빌드시에는

#>apt-get install espeak espaekedit

설치가 필요합니다

※참고로 espeak/src의 make 과정에서 libportaudio 를 필요로 하여 에러 발생 할 수 있는데

#>apt-get install libportaudio-dev

설치한 뒤 make 수행하면 됩니다

기능 자체야 적어놓은 텍스트를 스피커를 통해 말해주는 것이는 특이 할 사항은 없지만

여타 오픈 소스 TTS 들중에 가장 발음이 듣기 괜찮은것 같아 소개하여 봅니다.

728×90

Sooftware Speech – 한국어 Tacotron2

이번 포스팅에서는 Tacotron2 아키텍처로 한국어 TTS 시스템을 만드는 방법에 대해 다루겠습니다.

Tacotron2는 17년 12월 구글이 NATURAL TTS SYNTHESIS BY CONDITIONING WAVENET ON MEL SPECTROGRAM PREDICTIONS 논문에서 제안한 Text-To-Speech 모델입니다.

Text-To-Speech 아키텍처는 크게 텍스트에서 Mel-Spectrogram을 생성하는 Mel-Network와 Mel-Spectrogram에서 Audio Signal을 생성하는 Vocoder로 이루어져 있습니다. Tacotron2는 Mel-Network에 해당하는 구조입니다.

이 Tacotron2 논문에서 이미 Mel-Network는 성능이 상당히 좋아졌기 때문에 이후 연구들은 주로 Vocoder를 개선하거나 이 Tacotron2 구조를 개선해서 Multilingual, Cross-lingual, Multi-Speaker를 적용하는 연구가 많이 나왔습니다.

지금까지도 대부분의 연구에 Tacotron2가 베이스가 된 만큼 자연어처리에 트랜스포머가 있다면 TTS에는 Tacotron2가 있다고 보면 될 것 같습니다.

TTS의 어려운 점은 입문하기 위해서는 신호처리 개념이 많이 필요하다는 것입니다. 음성인식 같은 태스크도 어느 정도의 신호처리 개념이 필요하지만, TTS 시스템은 조금 더 신호처리 쪽에 예민하기 때문에 더 많은 지식이 요구됩니다.

음성인식 시스템의 경우 librosa 라이브러리에서 MFCC 혹은 Mel-Spectrogram과 같은 피쳐를 뽑아서 그냥 바로 사용해도 성능에 크게 문제가 있지는 않습니다만, TTS 시스템은 조금 더 정교하게 피쳐를 뽑아줄 필요가 있습니다.

저도 처음에 Tacotron2를 구현해본다고 그냥 librosa 라이브러리에서 Mel-Spectrogram을 뽑아서 학습했다가 모델 성능이 좋지 않았던 경험이 있습니다.

하지만 다행히도, NVIDIA에서 Tacotron2 를 아주 잘 구현해서 오픈소스로 공개했습니다. NVIDIA 구현체의 경우 apex 등을 이용해서 학습 최적화를 잘 해놔서 학습 속도도 빠르다는 장점이 있어서 현재는 많은 연구들에서도 Tacotron2를 쓰는 경우는 거의 NVIDIA 구현체를 사용하고 있을 정도로 표준이 됐습니다.

NVIDIA Tacotron2는 아래와 같은 데이터셋 포맷을 필요로 합니다.

오디오는 22050Hz의 샘플링 레이트를 가지는 오디오가 필요하며, 위 예시처럼 오디오 경로 와 해당하는 텍스트 를 | 로 구분한 형태의 txt 파일이 필요합니다.

NVIDIA Tacotron2 구현체는 대표적인 TTS 데이터셋인 LJ Speech 데이터를 예제로 제공합니다.

LJ Speech 데이터셋은 영어 데이터셋이기 때문에 한국어 데이터셋인 KSS 과 같은 데이터셋을 사용하기 위해서는 약간의 수정이 필요합니다.

영어든 한국어든 음성 처리는 똑같습니다만, 텍스트 처리를 수정해주어야 합니다. NVIDIA 구현체에서는 해당 소스코드가 text 폴더에 구현이 되어 있습니다.

여기서 우리가 구현해주어야 할건 text_to_sequence() 함수입니다. 해당 함수는 튜닙은 자연어처리 테크 스타트업입니다 와 같은 텍스트를 입력으로 받아 토크나이징 및 숫자 표현으로 인코딩해주는 역할을 수행합니다.

text_to_sequence() 함수는 크게 3가지 기능을 수행하면 됩니다.

먼저 TTS 인풋으로 어떤 문자열이 들어올지 모르므로, 허용 가능한 문자들만 들어오도록 제한해야 합니다.

그리고 한국어 TTS 구현시, 단위를 문자 단위가 아닌 자소(자음, 모음) 단위로 해주어야 성능이 더 좋다고 합니다.

즉 국 이란 문자가 있으면 이거를 ㄱㅜㄱ 으로 쪼개어 주어야 합니다. 그리고 여기서 중요한 점은 국의 처음에 나온 ㄱ 과 끝에 나온 ㄱ 이 서로 다르다는 점입니다. 우리 눈에는 똑같은 ㄱ 이지만, 컴퓨터 내에서는 초성과 종성을 다르게 처리할 수 있습니다.

한국어 TTS 시스템에서는 이렇게 초성과 종성을 서로 다르게 표현해주어야 합니다. 다음 예제처럼 unicodedata 라이브러리를 사용하면 쉽게 적용 가능합니다.

이렇게 NFKD 방식으로 문자열을 분해해주게 되면 초성, 중성, 종성을 분리할 수 있습니다.

참고: 이렇게 분리한 텍스트는 NFKC 방식으로 다시 문자 형태로 합칠 수 있습니다.

아래는 제가 구현한 텍스트 클리닝 함수입니다.

텍스트 클리닝을 했으면, 이제 토크나이징 및 인코딩을 수행해야 합니다.

이미 앞의 텍스트 클리닝 과정에서 NFKD로 텍스트를 분해해놨기 때문에, 텍스트를 for문만 돌리면 쉽게 토크나이징이 가능합니다.

하지만 토크나이징을 하면서 동시에 숫자 형태로 인코딩을 수행해주기 위해서는 Vocabulary를 먼저 정의해야합니다. Vocabulary는 모델에 입력될 수 있는 모든 텍스트를 숫자와 1:1 매핑을 시켜주는 dictionary 형태로 생각해주시면 됩니다.

저는 한국어 TTS 시스템에 사용할 Vocabulary를 다음과 같이 구성했습니다.

해당 Vocabulary를 구성하는 코드는 아래와 같습니다.

그리고 이렇게 정의한 VOCAB_DICT 를 이용해서 아래와 같이 tokenize 함수를 구현할 수 있습니다.

전체 구현은 아래와 같습니다.

So you have finished reading the 한글 tts 오픈 소스 topic article, if you find this article useful, please share it. Thank you very much. See more: 한글 TTS, Tensorflow-tts, TTS API 무료, 카카오 음성 API 가격, 카카오 TTS 파이썬, 딥러닝 TTS, 카카오 TTS API, 카카오 TTS

Leave a Comment