KR20220071522A - 합성 음성을 생성하는 방법 및 음성 합성 시스템 - Google Patents

합성 음성을 생성하는 방법 및 음성 합성 시스템 Download PDF

Info

Publication number
KR20220071522A
KR20220071522A KR1020200158769A KR20200158769A KR20220071522A KR 20220071522 A KR20220071522 A KR 20220071522A KR 1020200158769 A KR1020200158769 A KR 1020200158769A KR 20200158769 A KR20200158769 A KR 20200158769A KR 20220071522 A KR20220071522 A KR 20220071522A
Authority
KR
South Korea
Prior art keywords
spectrogram
spectrograms
synthesizer
speech
sequence
Prior art date
Application number
KR1020200158769A
Other languages
English (en)
Inventor
강진범
주동원
이승재
남용욱
Original Assignee
주식회사 자이냅스
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 자이냅스 filed Critical 주식회사 자이냅스
Priority to KR1020200158769A priority Critical patent/KR20220071522A/ko
Priority to US17/380,387 priority patent/US20220165247A1/en
Publication of KR20220071522A publication Critical patent/KR20220071522A/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/02Methods for producing synthetic speech; Speech synthesisers
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/08Text analysis or generation of parameters for speech synthesis out of text, e.g. grapheme to phoneme translation, prosody generation or stress or intonation determination
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/04Segmentation; Word boundary detection
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/03Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters
    • G10L25/18Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters the extracted parameters being spectral information of each sub-band
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/27Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique
    • G10L25/30Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique using neural networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Telephonic Communication Services (AREA)

Abstract

일 측면에 따른 음성 합성 시스템은, 구두 발화(verbal utterance)에 대응하는 제1 음성 신호에 기초하여 상기 구두 발화에 대응하는 화자 임베딩 벡터를 생성하는 인코더; 상기 화자 임베딩 벡터 및 특정 자연 언어로 구성된 텍스트의 시퀀스(sequence)에 기초하여 상기 텍스트의 시퀀스의 구두 발화에 대응하는 복수의 스펙트로그램(spectrogram)들을 생성하고, 상기 스펙트로그램들 중 제1 스펙트로그램을 선택하는 과정을 적어도 1회 이상 수행함으로써 상기 제1 스펙트로그램을 출력하는 합성기; 및 상기 제1 스펙트로그램에 기초하여 상기 텍스트의 시퀀스에 대응하는 제2 음성 신호를 생성하는 보코더;를 포함한다.

Description

합성 음성을 생성하는 방법 및 음성 합성 시스템 {A method and a TTS system for generating synthetic speech}
합성 음성을 생성하는 방법 및 음성 합성 시스템에 관한다.
최근 인공 지능 기술의 발달로 음성 신호를 활용하는 인터페이스가 보편화되고 있다. 이에 따라, 주어진 상황에 따라 합성된 음성을 발화할 수 있도록 하는 음성 합성(speech synthesis) 기술에 대한 연구가 활발히 진행되고 있다.
음성 합성 기술은 인공 지능에 기반한 음성 인식 기술과 접목하여 가상 비서, 오디오북, 자동 통번역 및 가상 성우 등의 많은 분야에 적용되고 있다.
종래의 음성 합성 방법으로는 연결 합성(Unit Selection Synthesis, USS) 및 통계 기반 파라미터 합성(HMM-based Speech Synthesis, HTS) 등의 다양한 방법이 있다. USS 방법은 음성 데이터를 음소 단위로 잘라서 저장하고 음성 합성 시 발화에 적합한 음편을 찾아서 이어붙이는 방법이고, HTS 방법은 음성 특징에 해당하는 파라미터들을 추출해 통계 모델을 생성하고 통계 모델에 기반하여 텍스트를 음성으로 재구성하는 방법이다. 그러나, 상술한 종래의 음성 합성 방법은 화자의 발화 스타일 또는 감정 표현 등을 반영한 자연스러운 음성을 합성하는 데 많은 한계가 있었다.
이에 따라, 최근에는 인공 신경망(Artificial Neural Network)에 기반하여 텍스트로부터 음성을 합성하는 음성 합성 방법이 주목받고 있다.
합성 음성을 생성하는 방법 및 음성 합성 시스템을 제공하는데 있다. 또한, 실제 발화자가 말하는 듯한 자연스러운 음성을 구현할 수 있는 인공 지능 기반의 음성 합성 기술을 제공하는 데 있다. 또한, 적은 양의 학습 데이터를 이용하는 고효율의 인공 지능 기반의 음성 합성 기술을 제공하는 데 있다.
해결하고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 유추될 수 있다.
일 측면에 따른 음성 합성 시스템은, 구두 발화(verbal utterance)에 대응하는 제1 음성 신호에 기초하여 상기 구두 발화에 대응하는 화자 임베딩 벡터를 생성하는 인코더; 상기 화자 임베딩 벡터 및 특정 자연 언어로 구성된 텍스트의 시퀀스(sequence)에 기초하여 상기 텍스트의 시퀀스의 구두 발화에 대응하는 복수의 스펙트로그램(spectrogram)들을 생성하고, 상기 스펙트로그램들 중 제1 스펙트로그램을 선택하는 과정을 적어도 1회 이상 수행함으로써 상기 제1 스펙트로그램을 출력하는 합성기; 및 상기 제1 스펙트로그램에 기초하여 상기 텍스트의 시퀀스에 대응하는 제2 음성 신호를 생성하는 보코더;를 포함한다.
상술한 시스템에 있어서, 상기 합성기는, 상기 복수의 스펙트로그램들 각각에 대응하는 얼라인먼트(alignment)에 기초하여 상기 제1 스팩트로그램을 선택하는 과정을 적어도 1회 이상 수행한다.
상술한 시스템에 있어서, 상기 합성기는, 기 설정된 임계값과 상기 얼라인먼트에 대응하는 스코어(score)에 기초하여 상기 스펙트로그램들 중 제1 스펙트로그램을 선택하고, 상기 스펙트로그램들 모두의 스코어가 상기 임계값보다 작은 경우 상기 텍스트의 시퀀스의 구두 발화에 대응하는 복수의 스펙트로그램을 재생성하고, 상기 스펙트로그램들 중 제2 스펙트로그램을 선택하는 과정을 적어도 1회 이상 수행한다.
상술한 시스템에 있어서, 상기 보코더는, 상기 제2 음성 신호의 기대 품질 및 기대 생성 속도에 기초하여 복수의 알고리즘들 중 어느 하나를 선택하고, 상기 선택된 알고리즘에 기초하여 상기 제2 음성 신호를 생성한다.
상술한 시스템에 있어서, 상기 합성기는, 인코더 신경망 및 어텐션 기반 디코더 신경망(attention-based decoder recurrent neural network)을 포함하고, 상기 인코더 신경망은, 상기 문자들의 시퀀스를 처리함으로써 상기 텍스트의 시퀀스에 포함된 문자들 각각의 인코딩된 표현을 생성하고, 상기 어텐션 기반 디코더 신경망은, 상기 인코더 신경망으로부터 입력되는 시퀀스 내의 각각의 디코더 입력에 대하여, 상기 스펙트로그램의 단일 프레임을 생성하도록 상기 디코더 입력 및 상기 인코딩된 표현을 처리한다.
다른 측면에 따른 컴퓨터로 읽을 수 있는 기록매체는 상술한 방법을 컴퓨터에서 실행시키기 위한 프로그램을 포함한다.
또 다른 측면에 따른 합성된 음성을 생성하는 방법은, 구두 발화(verbal utterance)에 대응하는 제1 음성 신호에 기초하여 상기 구두 발화에 대응하는 화자 임베딩 벡터를 생성하는 단계; 상기 화자 임베딩 벡터 및 특정 자연 언어로 구성된 텍스트의 시퀀스(sequence)에 기초하여 상기 텍스트의 시퀀스의 구두 발화에 대응하는 복수의 스펙트로그램(spectrogram)들을 생성하는 단계; 상기 복수의 스펙트로그램들을 생성하고 상기 생성된 스펙트로그램들 중 제1 스펙트로그램을 선택하는 과정을 적어도 1회 이상 수행함으로써 상기 제1 스펙트로그램을 출력하는 단계; 및 상기 제1 스펙트로그램에 기초하여 상기 텍스트의 시퀀스에 대응하는 제2 음성 신호를 생성하는 단계;를 포함한다.
상술한 방법에 있어서, 상기 출력하는 단계는, 상기 복수의 스펙트로그램들 각각에 대응하는 얼라인먼트(alignment)에 기초하여 상기 제1 스팩트로그램을 선택하는 과정을 적어도 1회 이상 수행한다.
상술한 방법에 있어서, 상기 출력하는 단계는, 기 설정된 임계값과 상기 얼라인먼트에 대응하는 스코어(score)에 기초하여 상기 스펙트로그램들 중 제1 스펙트로그램을 선택하는 단계; 및 상기 스펙트로그램들 모두의 스코어가 상기 임계값보다 작은 경우 상기 텍스트의 시퀀스의 구두 발화에 대응하는 복수의 스펙트로그램을 재생성하는 단계;를 포함하고, 상기 재생성하는 단계는 적어도 1회 이상 수행된다.
상술한 방법에 있어서, 제2 음성 신호를 생성하는 단계는, 상기 제2 음성 신호의 기대 품질 및 기대 생성 속도에 기초하여 복수의 알고리즘들 중 어느 하나를 선택하고, 상기 선택된 알고리즘에 기초하여 상기 제2 사운드 신호를 생성한다.
음성 합성 시스템이 복수의 멜 스펙트로그램들을 생성하고, 생성된 멜 스펙트로그램들 중 최고의 품질의 멜 스펙트로그램을 선택할 수 있다. 또한, 생성된 멜 스펙트로그램들이 소정의 품질 기준을 만족하지 못하는 경우, 음성 합성 시스템은 멜 스펙트로그램들을 생성하고 이들 중 어느 하나의 멜 스펙트로그램을 선택하는 과정을 적어도 1회 이상 수행할 수 있다. 이에 따라, 음성 합성 시스템은 최고 품질의 합성 음성을 출력할 수 있다.
도 1은 음성 합성 시스템의 동작을 개략적으로 나타내는 도면이다.
도 2는 음성 합성 시스템의 일 실시예를 나타내는 도면이다.
도 3은 합성기를 통해 멜 스펙트로그램을 출력하는 일 실시예를 나타내는 도면이다.
도 4는 합성기의 동작의 일 예를 설명하기 위한 도면이다.
도 5는 보코더의 동작의 일 예를 설명하기 위한 도면이다.
도 6은 합성 음성을 생성하는 방법의 일 예를 나타내는 흐름도이다.
본 실시예들에서 사용되는 용어는 본 실시예들에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 부분에서 상세히 그 의미를 기재할 것이다. 따라서, 본 실시예들에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 실시예들 전반에 걸친 내용을 토대로 정의되어야 한다.
본 실시예들은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 일부 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 실시예들을 특정한 개시형태에 대해 한정하려는 것이 아니며, 본 실시예들의 사상 및 기술범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 본 명세서에서 사용한 용어들은 단지 실시예들의 설명을 위해 사용된 것으로, 본 실시예들을 한정하려는 의도가 아니다.
본 실시예들에 사용되는 용어들은 다르게 정의되지 않는 한, 본 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미가 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 실시예들에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않아야 한다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이러한 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 본 명세서에 기재되어 있는 특정 형상, 구조 및 특성은 본 발명의 정신과 범위를 벗어나지 않으면서 일 실시예로부터 다른 실시예로 변경되어 구현될 수 있다. 또한, 각각의 실시예 내의 개별 구성요소의 위치 또는 배치도 본 발명의 정신과 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 행하여지는 것이 아니며, 본 발명의 범위는 특허청구범위의 청구항들이 청구하는 범위 및 그와 균등한 모든 범위를 포괄하는 것으로 받아들여져야 한다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 구성요소를 나타낸다.
한편, 본 명세서에서 하나의 도면 내에서 개별적으로 설명되는 기술적 특징은 개별적으로 구현될 수도 있고, 동시에 구현될 수도 있다.
본 명세서에서, “~부(unit)”는 프로세서 또는 회로와 같은 하드웨어 구성(hardware component), 및/또는 프로세서와 같은 하드웨어 구성에 의해 실행되는 소프트웨어 구성(software component)일 수 있다.
이하에서는, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 여러 실시예에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
도 1은 음성 합성 시스템의 동작을 개략적으로 나타내는 도면이다.
음성 합성(Speech Synthesis) 장치는 텍스트를 인위적으로 사람의 음성으로 변환하는 장치이다.
예를 들어, 도 1의 음성 합성 시스템(100)은 인공 신경망(Artificial Neural Network) 기반의 음성 합성 시스템일 수 있다. 인공 신경망은 시냅스의 결합으로 네트워크를 형성한 인공 뉴런이 학습을 통해 시냅스의 결합 세기를 변화시켜, 문제 해결 능력을 가지는 모델 전반을 의미한다.
음성 합성 시스템(100)은 PC(personal computer), 서버 디바이스, 모바일 디바이스, 임베디드 디바이스 등의 다양한 종류의 디바이스들로 구현될 수 있고, 구체적인 예로서 인공 신경망를 이용하여 음성 합성을 수행하는 스마트폰, 태블릿 디바이스, AR(Augmented Reality) 디바이스, IoT(Internet of Things) 디바이스, 자율주행 자동차, 로보틱스, 의료기기, 전자책 단말기 및 네비게이션 등에 해당될 수 있으나, 이에 제한되지 않는다.
나아가서, 음성 합성 시스템(100)은 위와 같은 디바이스에 탑재되는 전용 하드웨어 가속기(HW accelerator)에 해당될 수 있다. 또는, 음성 합성 시스템(100)은 인공 신경망의 구동을 위한 전용 모듈인 NPU(neural processing unit), TPU(Tensor Processing Unit), Neural Engine 등과 같은 하드웨어 가속기일 수 있으나, 이에 제한되지 않는다.
도 1을 참고하면, 음성 합성 시스템(100)은 텍스트 입력과 특정 화자 정보를 수신할 수 있다. 예를 들어, 음성 합성 시스템(100)은 텍스트 입력으로써 도 1에 도시된 바와 같이 “Have a good day!”를 수신할 수 있고, 화자 정보 입력으로써 “화자 1”을 수신할 수 있다.
“화자 1”은 기 설정된 화자 1의 발화 특징을 나타내는 음성 신호 또는 음성 샘플에 해당할 수 있다. 예를 들어, 화자 정보는 음성 합성 시스템(100)에 포함된 통신부를 통해 외부 장치로부터 수신될 수 있다. 또는, 화자 정보는 음성 합성 시스템(100)의 사용자 인터페이스를 통해 사용자로부터 입력될 수 있고, 음성 합성 시스템(100)의 데이터 베이스에 미리 저장된 다양한 화자 정보들 중 하나로 선택될 수도 있으나, 이에 제한되는 것은 아니다.
음성 합성 시스템(100)은 입력으로 수신한 텍스트 입력과 특정 화자 정보에 기초하여 음성(speech)를 출력할 수 있다. 예를 들어, 음성 합성 시스템(100)은 “Have a good day!” 및 “화자 1”을 입력으로 수신하여, 화자 1의 발화 특징이 반영된 “Have a good day!”에 대한 음성을 출력할 수 있다. 화자 1의 발화 특징은 화자 1의 음성, 운율, 음높이 및 감정 등 다양한 요소들 중 적어도 하나를 포함할 수 있다. 즉, 출력되는 음성은 화자 1이 “Have a good day!”를 자연스럽게 발음하는 듯한 음성일 수 있다. 음성 합성 시스템(100)의 구체적인 동작은 도 2 내지 도 4에서 후술한다.
도 2는 음성 합성 시스템의 일 실시예를 나타내는 도면이다. 도 2의 음성 합성 시스템(200)은 도 1의 음성 합성 시스템(100)과 동일할 수 있다.
도 2를 참조하면, 음성 합성 시스템(200)은 화자 인코더(speaker encoder)(210), 합성기(synthesizer)(220) 및 보코더(vocoder)(230)를 포함할 수 있다. 한편, 도 2에 도시된 음성 합성 시스템(200)에는 일 실시예와 관련된 구성요소들만이 도시되어 있다. 따라서, 음성 합성 시스템(200)에는 도 2에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음은 당해 기술분야의 통상의 기술자에게 자명하다.
도 2의 음성 합성 시스템(200)은 화자 정보 및 텍스트(text)를 입력으로 수신하여 음성(speech)를 출력할 수 있다.
예를 들어, 음성 합성 시스템(200)의 화자 인코더(210)는 화자 정보를 입력으로 수신하여 화자 임베딩 벡터(embedding vector)를 생성할 수 있다. 화자 정보는 화자의 음성 신호 또는 음성 샘플에 해당할 수 있다. 화자 인코더(210)는 화자의 음성 신호 또는 음성 샘플을 수신하여, 화자의 발화 특징을 추출할 수 있으며 이를 임베딩 벡터로 나타낼 수 있다.
화자의 발화 특징은 발화 속도, 휴지 구간, 음높이, 음색, 운율, 억양 또는 감정 등 다양한 요소들 중 적어도 하나를 포함할 수 있다. 즉, 화자 인코더(210)는 화자 정보에 포함된 불연속적인 데이터 값을 연속적인 숫자로 구성된 벡터로 나타낼 수 있다. 예를 들어, 화자 인코더(210)는 pre-net, CBHG 모듈, DNN(Deep Neural Network), CNN(convolutional neural network), RNN(Recurrent Neural Network), LSTM(Long Short-Term Memory Network), BRDNN(Bidirectional Recurrent Deep Neural Network) 등 다양한 인공 신경망 모델 중 적어도 하나 또는 둘 이상의 조합에 기반하여 화자 임베딩 벡터를 생성할 수 있다.
예를 들어, 음성 합성 시스템(200)의 합성기(220)는 텍스트(text) 및 화자의 발화 특징을 나타내는 임베딩 벡터를 입력으로 수신하여 음성 데이터를 출력할 수 있다.
예를 들어, 합성기(220)는 텍스트 인코더(미도시) 및 디코더(미도시)를 포함할 수 있다. 한편, 합성기(220)에는 상술한 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음은 당해 기술분야의 통상의 기술자에게 자명하다.
화자의 발화 특징을 나타내는 임베딩 벡터는 상술한 바와 같이 화자 인코더(210)로부터 생성될 수 있으며, 합성기(220)의 텍스트 인코더(미도시) 또는 디코더(미도시)는 화자 인코더(210)로부터 화자의 발화 특징을 나타내는 임베딩 벡터를 수신할 수 있다.
합성기(220)의 텍스트 인코더(미도시)는 텍스트를 입력으로 수신하여 텍스트 임베딩 벡터를 생성할 수 있다. 텍스트는 특정 자연 언어로 된 문자들의 시퀀스를 포함할 수 있다. 예를 들어, 문자들의 시퀀스는 알파벳 문자들, 숫자들, 문장 부호들 또는 기타 특수 문자들을 포함할 수 있다.
텍스트 인코더(미도시)는 입력된 텍스트를 자모 단위, 글자 단위 또는 음소 단위로 분리할 수 있고, 분리된 텍스트를 인공 신경망 모델에 입력할 수 있다. 예를 들어, 텍스트 인코더(미도시)는 pre-net, CBHG 모듈, DNN, CNN, RNN, LSTM, BRDNN 등 다양한 인공 신경망 모델 중 적어도 하나 또는 둘 이상의 조합에 기반하여 텍스트 임베딩 벡터를 생성할 수 있다.
또는, 텍스트 인코더(미도시)는 입력된 텍스트를 복수의 짧은 텍스트들로 분리하고, 짧은 텍스트들 각각에 대하여 복수의 텍스트 임베딩 벡터들을 생성할 수도 있다.
합성기(220)의 디코더(미도시)는 화자 인코더(210)로부터 화자 임베딩 벡터 및 텍스트 임베딩 벡터를 입력으로 수신할 수 있다. 또는, 합성기(220)의 디코더(미도시)는 화자 인코더(210)로부터 화자 임베딩 벡터를 입력으로 수신하고, 텍스트 인코더(미도시)로부터 텍스트 임베딩 벡터를 입력으로 수신할 수 있다.
디코더(미도시)는 화자 임베딩 벡터와 텍스트 임베딩 벡터를 인공 신경망 모델에 입력하여, 입력된 텍스트에 대응되는 음성 데이터를 생성할 수 있다. 즉, 디코더(미도시)는 화자의 발화 특징이 반영된 입력 텍스트에 대한 음성 데이터를 생성할 수 있다. 예를 들면, 음성 데이터는 입력된 텍스트에 대응되는 스펙트로그램(spectrogram) 또는 멜 스펙트로그램(mel-spectrogram)에 해당할 수 있으나, 이에 제한되는 것은 아니다. 다시 말해, 스펙트로그램 또는 멜 스펙트로그램은 특정 자연 언어로 구성된 문자들의 시퀀스(sequence)의 구두 발화(verbal utterance)에 대응한다.
스펙트로그램은 음성 신호의 스펙트럼을 시각화하여 그래프로 표현한 것이다. 스펙트로그램의 x축은 시간, y축은 주파수를 나타내며 각 시간당 주파수가 가지는 값을 값의 크기에 따라 색으로 표현할 수 있다. 스펙토그램은 연속적으로 주어지는 음성 신호에 STFT(Short-time Fourier transform)를 수행한 결과물일 수 있다.
STFT는 음성 신호를 일정한 길이의 구간들로 나누고 각 구간에 대하여 푸리에 변환을 적용하는 방법이다. 이 때, 음성 신호에 STFT를 수행한 결과물은 복소수 값이기 때문에, 복소수 값에 절대값을 취해 위상(phase) 정보를 소실시키고 크기(magnitude) 정보만을 포함하는 스펙트로그램을 생성할 수 있다.
한편, 멜 스펙트로그램은 스펙트로그램의 주파수 간격을 멜 스케일(Mel Scale)로 재조정한 것이다. 사람의 청각기관은 고주파수(high frequency) 보다 저주파수(low frequency) 대역에서 더 민감하며, 이러한 특성을 반영해 물리적인 주파수와 실제 사람이 인식하는 주파수의 관계를 표현한 것이 멜 스케일이다. 멜 스펙트로그램은 멜 스케일에 기반한 필터 뱅크(filter bank)를 스펙트로그램에 적용하여 생성될 수 있다.
한편, 도 2에는 도시되어 있지 않으나, 합성기(220)는 어텐션 얼라이먼트(attention alignment)를 생성하기 위한 어텐션 모듈을 더 포함할 수 있다. 어텐션 모듈은 디코더(미도시)의 특정 타임 스텝(time-step)의 출력이 텍스트 인코더(미도시)의 모든 타임 스텝의 출력 중 어떤 출력과 가장 연관이 있는가를 학습하는 모듈이다. 어텐션 모듈을 이용하여 더 고품질의 스펙트로그램 또는 멜 스펙트로그램을 출력할 수 있다.
도 3은 합성기를 통해 멜 스펙트로그램을 출력하는 일 실시예를 나타내는 도면이다. 도 3의 합성기(300)는 도 2의 합성기(220)와 동일할 수 있다.
도 3을 참조하면, 합성기(300)는 입력 텍스트들과 이에 대응되는 화자 임베딩 벡터들을 포함하는 리스트를 수신할 수 있다. 예를 들어, 합성기(300)는 'first sentence'라는 입력 텍스트와 이에 대응되는 화자 임베딩 벡터인 embed_voice1, 'second sentence'라는 입력 텍스트와 이에 대응되는 화자 임베딩 벡터인 embed_voice2, 'third sentence'라는 입력 텍스트와 이에 대응되는 화자 임베딩 벡터인 embed_voice3을 포함하는 리스트(310)를 입력으로 수신할 수 있다.
합성기(300)는 수신한 리스트(310)에 포함된 입력 텍스트의 개수만큼의 멜 스펙트로그램(310)을 생성할 수 있다. 도 3을 참고하면, 'first sentence', 'second sentence' 및 'third sentence' 각각의 입력 텍스트에 대응하는 멜 스펙트로그램들이 생성된 것을 알 수 있다.
또는, 합성기(300)는 입력 텍스트의 개수만큼의 멜 스펙트로그램(320) 및 어텐션 얼라인먼트를 함께 생성할 수 있다. 도 3에는 도시되어 있지 않으나, 예를 들어 'first sentence', 'second sentence' 및 'third sentence' 각각의 입력 텍스트에 대응하는 어텐션 얼라인먼트가 추가적으로 생성될 수 있다. 또는, 합성기(300)는 입력 텍스트들 각각에 대하여 복수의 멜 스펙트로그램 및 복수의 어텐션 얼라인먼트를 생성할 수도 있다.
다시 도 2를 참조하면, 음성 합성 시스템(200)의 보코더(230)는 합성기(220)에서 출력된 음성 데이터를 실제 음성(speech)으로 생성할 수 있다. 상술한 바와 같이 출력된 음성 데이터는 스펙트로그램 또는 멜 스펙트로그램일 수 있다.
예를 들어, 보코더(230)는 ISTFT(Inverse Short-Time Fourier Transform)를 이용하여 합성기(220)에서 출력된 음성 데이터를 실제 음성 신호로 생성할 수 있다. 그러나, 스펙트로그램 또는 멜 스펙트로그램은 위상 정보를 포함하고 있지 않으므로, ISTFT만으로는 실제 음성 신호를 완벽하게 복원할 수 없다.
이에 따라, 보코더(230)는 예를 들어 그리핀-림 알고리즘(Griffin-Lim algorithm)을 사용하여 합성기(220)에서 출력된 음성 데이터를 실제 음성 신호로 생성할 수 있다. 그리핀-림 알고리즘은 스펙트로그램 또는 멜 스펙트로그램의 크기 정보에서 위상 정보 추정하는 알고리즘이다.
또는, 보코더(230)는 예를 들어 뉴럴 보코더(neural vocoder)에 기 초하여 합성기(220)에서 출력된 음성 데이터를 실제 음성 신호로 생성할 수 있다.
뉴럴 보코더는 스펙트로그램 또는 멜 스펙트로그램을 입력으로 받아 음성 신호를 생성하는 인공 신경망 모델이다. 뉴럴 보코더는 스펙트로그램 또는 멜 스펙트로그램과 음성 신호 사이의 관계를 다량의 데이터를 통해 학습할 수 있고, 이를 통해 고품질의 실제 음성 신호를 생성할 수 있다.
뉴럴 보코더는 WaveNet, Parallel WaveNet, WaveRNN, WaveGlow 또는 MelGAN 등과 같은 인공 신경망 모델에 기반한 보코더에 해당할 수 있으나, 이에 제한되는 것은 아니다.
예를 들어, WaveNet 보코더는 여러 층의 dilated causal convolution layer들로 구성되며, 음성 샘플들 간의 순차적 특징을 이용하는 자기회귀(Autoregressive) 모델이다. 예를 들어, WaveRNN 보코더는 WaveNet의 여러 층의 dilated causal convolution layer를 GRU(Gated Recurrent Unit)로 대체한 자기회귀 모델이다.
예를 들어, WaveGlow 보코더는 가역성(invertible)을 지닌 변환 함수를 이용하여 음성 데이터셋(x)으로부터 가우시안 분포와 같이 단순한 분포가 나오도록 학습할 수 있다. WaveGlow 보코더는 학습이 끝난 후 변환 함수의 역함수를 이용하여 가우시안 분포의 샘플로부터 음성 신호를 출력할 수 있다.
도 2 및 도 3을 참조하여 상술한 바와 같이, 일 실시예에 따른 합성기(220, 300)는 복수의 스펙트로그램들(또는 멜 스펙트로그램들)을 생성할 수 있다. 구체적으로, 합성기(220, 300)는 입력 텍스트 및 화자 임베딩 벡터로 구성된 단일 입력 쌍(pair)에 대하여 복수의 스펙트로그램들(또는 멜 스펙트로그램들)을 생성할 수 있다.
또한, 합성기(220, 300)는 복수의 스펙트로그램들(또는 멜 스펙트로그램들) 각각에 대응하는 어텐션 얼라인먼트의 스코어를 연산할 수 있다. 구체적으로, 합성기(220, 300)는 어텐션 얼라인먼트의 인코더 스코어(encoder score), 디코더 스코어(decoder score) 및 전체 스코어(total score)를 연산할 수 있다. 이에 따라, 합성기(220, 300)는 연산된 스코어에 기초하여 복수의 스펙트로그램들(또는 멜 스펙트로그램들) 중 어느 하나를 선택할 수 있다. 여기에서, 선택된 스펙트로그램(또는 멜 스펙트로그램)은 단일 입력 쌍에 대하여 가장 높은 품질의 합성 음성을 나타내는 것일 수 있다.
또한, 보코더(230)는 합성기(220, 300)로부터 전달된 스펙트로그램(또는 멜 스펙트로그램)을 이용하여 음성 신호를 생성할 수 있다. 이 때, 보코더(230)는 생성될 음성 신호의 기대 품질 및 기대 생성 속도에 따라 음성 신호를 생성하는데 이용될 복수의 알고리즘들 중 어느 하나를 선택할 수 있다. 그리고, 보코더(230)는 선택된 알고리즘에 기초하여 음성 신호를 생성할 수 있다.
이에 따라, 음성 합성 시스템(100, 200)은 품질 및 속도 조건에 부합되는 합성 음성을 생성할 수 있다.
이하, 도 4 내지 도 6을 참조하여, 합성기(220, 300) 및 보코더(230)가 동작하는 예들을 상세하게 설명한다. 이하에서, 합성기(220, 300)가 복수의 스펙트로그램들(또는 복수의 멜 스펙트로그램들) 중 어느 하나를 선택하는 것으로 서술하나, 스펙트로그램(또는 멜 스펙트로그램)을 선택하는 모듈은 합성기(220, 300)가 아닐 수도 있다. 예를 들어, 음성 합성 시스템(100, 200)에 포함된 별도의 모듈 또는 음성 합성 시스템(100, 200)과 분리된 다른 모듈에 의하여 스펙트로그램(또는 멜 스펙트로그램)이 선택될 수도 있다.
또한, 이하에서, 스펙트로그램과 멜 스펙트로그램은 서로 혼용될 수 있는 용어로 기재한다. 다시 말해, 이하에서 스펙트로그램으로 기재되었다고 하더라도, 이는 멜 스펙트로그램으로 대체될 수도 있다. 또한, 이하에서, 멜 스펙트로그램으로 기재되었다고 하더라도, 이는 스펙트로그램으로 대체될 수도 있다.
도 4는 합성기의 동작의 일 예를 설명하기 위한 도면이다.
도 4에 도시된 합성기(400)는 도 2에 도시된 합성기(220) 또는 도 3에 도시된 합성기(300)와 동일한 모듈일 수 있다. 구체적으로, 합성기(400)는 입력 텍스트 및 화자 임베딩 벡터를 이용하여 복수의 스펙트로그램들을 생성하고, 이들 중 어느 하나를 선택할 수 있다.
410 단계에서, 합성기(400)는 입력 텍스트 및 화자 임베딩 벡터의 단일 쌍을 이용하여 n개의 스펙트로그램들을 생성한다(여기에서, n은 2 이상의 자연수).
예를 들어, 합성기(400)는 인코더 신경망 및 어텐션 기반 디코더 신경망(attention-based decoder recurrent neural network)을 포함할 수 있다. 여기에서, 인코더 신경망은 입력 텍스트의 시퀀스를 처리함으로써 상기 입력 텍스트의 시퀀스에 포함된 문자들 각각의 인코딩된 표현을 생성한다. 그리고, 어텐션 기반 디코더 신경망은 인코더 신경망으로부터 입력되는 시퀀스 내의 각각의 디코더 입력에 대하여, 스펙트로그램의 단일 프레임을 생성하도록 디코더 입력 및 인코딩된 표현을 처리한다.
종래의 기술에 의하면, 복수의 스펙트로그램을 생성할 이유가 없었기 때문에 보통 단일 입력 텍스트 및 단일 화자 임베딩 벡터로부터 단일 스펙트로그램을 생성하였다. 따라서, 생성된 스펙트로그램의 품질이 낮은 경우, 최종 음성(즉, 합성 음성)의 품질도 낮게 생성된다.
한편, 본 발명의 일 실시예에 따른 합성기(400)는 단일 입력 텍스트 및 단일 화자 임베딩 벡터를 이용하여 복수의 스펙트로그램들을 생성한다. 합성기(400)가 인코더 신경망 및 디코더 신경망을 포함함에 따라, 스펙트로그램이 생성될 때마다 해당 스펙트로그램의 품질이 동일하지 않을 수 있다. 따라서, 합성기(400)는 단일 입력 텍스트 및 단일 화자 임베딩 벡터에 대하여 복수의 스펙트로그램들을 생성하고, 생성된 스펙트로그램들 중 가장 높은 품질의 스펙트로그램을 선택함으로써, 합성 음성의 품질을 높일 수 있다.
420 단계에서, 합성기(400)는 생성된 스펙트로그램들의 품질을 확인한다.
예를 들어, 합성기(400)는 스펙트로그램에 대응하는 어텐션 얼라인먼트를 이용하여 스펙트로그램의 품질을 확인할 수 있다. 구체적으로, 어텐션 얼라인먼트는 스펙트로그램에 대응하여 생성될 수 있다. 예를 들어, 합성기(400)가 총 n개의 스펙트로그램을 생성하는 경우, 어텐션 얼라인먼트는 n개의 스펙트로그램들 각각에 대응하여 생성될 수 있다. 따라서, 어텐션 얼라인먼트를 통하여 이에 대응하는 스펙트로그램의 품질이 판단될 수 있다.
예를 들어, 데이터의 양이 많지 않거나 충분한 학습이 되지 않을 경우 합성기(400)는 고품질의 스펙트로그램을 생성하지 못할 수도 있다. 어텐션 얼라인먼트는, 합성기(400)가 스펙트로그램을 생성할 때에 집중하는 매 순간마다의 히스토리로 해석될 수 있다.
예를 들어, 어텐션 얼라인먼트를 나타내는 선이 진하고 노이즈가 적다면, 합성기(400)가 스펙트로그램을 생성하는 매 순간에서 자신감 있게 추론을 수행한 것으로 해석될 수 있다. 즉, 상술한 예의 경우, 합성기(400)가 고품질의 스펙트로그램을 생성했다고 판단될 수 있다. 따라서, 어텐션 얼라인먼트의 품질(예를 들어, 어텐션 얼라인먼트의 색이 진한 정도, 어텐션 얼라인먼트의 윤곽이 명확한 정도 등)은 합성기(400)의 추론 품질을 추측하는데 있어서, 매우 중요한 지표로 활용될 수 있다.
예를 들어, 합성기(400)는 어텐션 얼라인먼트의 인코더 스코어 및 디코더 스코어를 연산할 수 있다. 그리고, 합성기(400)는 인코더 스코어 및 디코더 스코어를 조합하여 어텐션 얼라인먼트의 전체 스코어를 연산할 수 있다.
430 단계에서, 합성기(400)는 최고 품질의 스펙트로그램이 소정의 기준을 만족하는지 여부를 판단한다.
예를 들어, 합성기(400)는 어텐션 얼라인먼트들 각각의 스코어 중 가장 높은 스코어를 갖는 어텐션 얼라인먼트를 선택할 수 있다. 여기에서, 스코어는 인코더 스코어, 디코더 스코어 및 전체 스코어 중 적어도 하나일 수 있다. 그리고, 합성기(400)는 해당 스코어가 소정의 기준을 만족하는지 여부를 판단할 수 있다.
합성기(400)가 가장 높은 스코어를 선택하는 것은 410 단계를 통하여 생성된 n개의 스펙트로그램들 중 최고 품질의 스펙트로그램을 선택하는 것과 동일하다. 따라서, 합성기(400)가 가장 높은 스코어를 소정의 기준과 비교함으로써, n 개의 스펙트로그램들 중에서 최고 품질의 스펙트로그램이 소정의 기준을 만족하는지 여부를 확인하는 것과 동일한 효과가 있다.
예를 들어, 소정의 기준은 스코어의 특정 값일 수 있다. 즉, 합성기(400)는 가장 높은 스코어가 특정 값 이상인지 여부에 따라, 최고 품질의 스펙트로그램이 소정의 기준을 만족하는지 여부를 판단할 수 있다.
만약, 최고 품질의 스펙트로그램이 소정의 기준을 만족하지 못하는 경우, 410 단계로 진행한다. 최고 품질의 스펙트로그램이 소정의 기준을 만족하지 못한다면, 나머지 n-1개의 스펙트로그램들도 모두 소정의 기준을 만족하지 못하는 것과 동일하다. 따라서, 합성기(400)는 410 단계를 다시 수행함으로써, n개의 스펙트로그램들을 재생성한다. 그리고, 합성기(400)는 420 단계 및 430 단계를 다시 수행한다. 즉, 합성기(400)는 최고 품질의 스펙트로그램이 소정의 기준을 만족하는지 여부에 따라 410 단계 내지 430 단계를 적어도 1회 이상 반복한다.
만약, 최고 품질의 스펙트로그램이 소정의 기준을 만족하는 경우, 440 단계로 진행한다.
440 단계에서, 합성기(400)는 최고 품질의 스펙트로그램을 선택한다. 그리고, 합성기(400)는 선택된 스펙트로그램을 보코더(230)에 전송한다.
다시 말해, 합성기(400)는 430 단계를 통하여 소정의 기준을 만족하는 스코어에 대응하는 스펙트로그램을 선택한다. 그리고, 합성기(400)는 선택된 스펙트로그램을 보코더(230)에 전송한다. 이에 따라, 보코더(230)는 소정의 기준을 만족하는 고품질의 합성 음성을 생성할 수 있다.
도 5는 보코더의 동작의 일 예를 설명하기 위한 도면이다.
도 5에 도시된 보코더(500)는 도 2에 도시된 보코더(230)와 동일한 모듈일 수 있다. 구체적으로, 보코더(500)는 스펙트로그램을 이용하여 음성 신호를 생성할 수 있다.
510 단계에서, 보코더(500)는 기대 품질 및 기대 생성 속도를 결정한다.
보코더(500)는 합성 음성의 품질 및 음성 합성 시스템(100, 200)의 속도에 영향을 미친다. 예를 들어, 보코더(500)가 정밀한 알고리즘을 채용하는 경우, 합성 음성의 품질이 높아지나, 합성 음성이 생성되는 속도는 낮아질 수 있다. 반대로, 보코더(500)가 정밀도가 낮은 알고리즘을 채용하는 경우, 합성 음성의 품질은 낮아지나, 합성 음성이 생성되는 속도는 높아질 수 있다. 따라서, 보코더(500)는 합성 음성의 기대 품질 및 기대 생성 속도를 결정하고, 이에 따라 음성 생성 알고리즘을 결정할 수 있다.
520 단계에서, 보코더(500)는 510 단계에서 결정된 기대 품질 및 기대 생성 속도에 따라 음성 생성 알고리즘을 결정한다.
예를 들어, 합성 음성의 생성 속도보다 합성 음성의 품질이 더 중요한 경우, 보코더(500)는 제1 음성 생성 알고리즘을 선택할 수 있다. 여기에서, 제1 음성 생성 알고리즘은 WaveRNN에 따른 알고리즘일 수 있으나, 이에 제한되지 않는다.
한편, 합성 음성의 품질보다 합성 음성의 생성 속도가 더 중요한 경우, 보코더(500)는 제2 음성 생성 알고리즘을 선택할 수 있다. 여기에서, 제2 음성 생성 알고리즘은 MelGAN에 따른 알고리즘일 수 있으나, 이에 제한되지 않는다.
530 단계에서, 보코더(500)는 520 단계에서 결정된 음성 생성 알고리즘에 따라 음성 신호를 생성한다.
구체적으로, 보코더(500)는 합성기(400)로부터 출력된 스펙트로그램을 이용하여 음성 신호를 생성한다.
도 6은 합성 음성을 생성하는 방법의 일 예를 나타내는 흐름도이다.
도 6을 참조하면, 합성 음성을 생성하는 방법은 도 1 내지 도 5에 도시된 음성 합성 시스템(100, 200)에서 시계열적으로 처리되는 단계들로 구성된다. 따라서, 이하에서 생략된 내용이라 하더라도 도 1 내지 도 5에 도시된 음성 합성 시스템(100, 200)에 관하여 이상에서 기술된 내용은 도 6의 합성 음성을 생성하는 방법에도 적용됨을 알 수 있다.
610 단계에서, 음성 합성 시스템(100, 200)은 구두 발화에 대응하는 제1 음성 신호에 기초하여 구두 발화에 대응하는 화자 임베딩 벡터를 생성한다.
구체적으로, 화자 인코더(210)는 구두 발화에 대응하는 화자 정보에 기초하여 화자 임베딩 벡터를 생성한다. 화자 인코더(210)가 화자 임베딩 벡터를 생성하는 예는 도 2 및 도 3을 참조하여 상술한 바와 같다.
620 단계에서, 음성 합성 시스템(100, 200)은 화자 임베딩 벡터 및 특정 자연 언어로 구성된 텍스트의 시퀀스에 기초하여 복수의 스펙트로그램들을 생성한다.
구체적으로, 합성기(220, 300, 400)는 화자 임베딩 벡터 및 텍스트의 시퀀스에 기초하여 복수의 스펙트로그램들을 생성한다. 합성기(220, 300, 400)가 복수의 스펙트로그램들을 생성하는 예는 도 2 내지 도 4를 참조하여 상술한 바와 같다.
630 단계에서, 음성 합성 시스템(100, 200)은 복수의 스펙트로그램들을 생성하고, 스펙트로그램들 중 제1 스펙트로그램을 선택하는 과정을 적어도 1회 이상 수행함으로써 제1 스펙트로그램을 출력한다.
구체적으로, 합성기(220, 300, 400)는 620 단계에서 생성된 스펙트로그램들 중 최고 품질의 스펙트로그램이 소정의 기준을 만족하지 못하는 경우, 복수의 스펙트로그램들을 재생성하고, 재생성된 스펙트로그램들 중 최고 품질의 스펙트로그램이 소정의 기준을 만족하는지 여부를 판단한다. 즉, 합성기(220, 300, 400)는 최고 품질의 스펙트로그램이 소정의 기준을 만족하는지 여부에 따라 620 단계 및 630 단계를 적어도 1회 이상 반복한다. 합성기(220, 300, 400)가 제1 스펙트로그램을 출력하는 예는 도 2 내지 도 4를 참조하여 상술한 바와 같다.
640 단계에서, 음성 합성 시스템(100, 200)은 제1 스펙트로그램에 기초하여 제2 음성 신호를 생성한다.
구체적으로, 보코더(230, 500)는 합성기(220, 300, 400)로부터 전송된 스펙트로그램에 기초하여 합성 음성을 생성한다. 보코더(230, 500)가 제2 음성 신호를 생성하는 예는 도 2, 도 3 및 도 5를 참조하여 상술한 바와 같다.
전술한 본 명세서의 설명은 예시를 위한 것이며, 본 명세서의 내용이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 실시예의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 포함되는 것으로 해석되어야 한다.
200: 음성 합성 시스템
210: 화자 인코더
220: 합성기
230: 보코더

Claims (5)

  1. 음성 합성 시스템에 있어서,
    구두 발화(verbal utterance)에 대응하는 제1 음성 신호에 기초하여 상기 구두 발화에 대응하는 화자 임베딩 벡터를 생성하는 인코더;
    상기 화자 임베딩 벡터 및 특정 자연 언어로 구성된 텍스트의 시퀀스(sequence)에 기초하여 상기 텍스트의 시퀀스의 구두 발화에 대응하는 복수의 스펙트로그램(spectrogram)들을 생성하고, 상기 스펙트로그램들 중 제1 스펙트로그램을 선택하는 과정을 적어도 1회 이상 수행함으로써 상기 제1 스펙트로그램을 출력하는 합성기; 및
    상기 제1 스펙트로그램에 기초하여 상기 텍스트의 시퀀스에 대응하는 제2 음성 신호를 생성하는 보코더;를 포함하는 음성 합성 시스템.
  2. 제 1 항에 있어서,
    상기 합성기는,
    상기 복수의 스펙트로그램들 각각에 대응하는 얼라인먼트(alignment)에 기초하여 상기 제1 스팩트로그램을 선택하는 과정을 적어도 1회 이상 수행하는 음성 합성 시스템.
  3. 제 2 항에 있어서,
    상기 합성기는,
    기 설정된 임계값과 상기 얼라인먼트에 대응하는 스코어(score)에 기초하여 상기 스펙트로그램들 중 제1 스펙트로그램을 선택하고,
    상기 스펙트로그램들 모두의 스코어가 상기 임계값보다 작은 경우 상기 텍스트의 시퀀스의 구두 발화에 대응하는 복수의 스펙트로그램을 재생성하고, 상기 스펙트로그램들 중 제2 스펙트로그램을 선택하는 과정을 적어도 1회 이상 수행하는 음성 합성 시스템.
  4. 제 1 항에 있어서,
    상기 보코더는,
    상기 제2 음성 신호의 기대 품질 및 기대 생성 속도에 기초하여 복수의 알고리즘들 중 어느 하나를 선택하고, 상기 선택된 알고리즘에 기초하여 상기 제2 음성 신호를 생성하는 음성 합성 시스템.
  5. 제 1 항에 있어서,
    상기 합성기는,
    인코더 신경망 및 어텐션 기반 디코더 신경망(attention-based decoder recurrent neural network)을 포함하고,
    상기 인코더 신경망은,
    상기 문자들의 시퀀스를 처리함으로써 상기 텍스트의 시퀀스에 포함된 문자들 각각의 인코딩된 표현을 생성하고,
    상기 어텐션 기반 디코더 신경망은,
    상기 인코더 신경망으로부터 입력되는 시퀀스 내의 각각의 디코더 입력에 대하여, 상기 스펙트로그램의 단일 프레임을 생성하도록 상기 디코더 입력 및 상기 인코딩된 표현을 처리하는 음성 합성 시스템.
KR1020200158769A 2020-11-24 2020-11-24 합성 음성을 생성하는 방법 및 음성 합성 시스템 KR20220071522A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200158769A KR20220071522A (ko) 2020-11-24 2020-11-24 합성 음성을 생성하는 방법 및 음성 합성 시스템
US17/380,387 US20220165247A1 (en) 2020-11-24 2021-07-20 Method for generating synthetic speech and speech synthesis system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200158769A KR20220071522A (ko) 2020-11-24 2020-11-24 합성 음성을 생성하는 방법 및 음성 합성 시스템

Publications (1)

Publication Number Publication Date
KR20220071522A true KR20220071522A (ko) 2022-05-31

Family

ID=81786359

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200158769A KR20220071522A (ko) 2020-11-24 2020-11-24 합성 음성을 생성하는 방법 및 음성 합성 시스템

Country Status (1)

Country Link
KR (1) KR20220071522A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102494422B1 (ko) * 2022-06-24 2023-02-06 주식회사 액션파워 Ars 음성이 포함된 오디오 데이터에서 발화 음성을 검출하는 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102494422B1 (ko) * 2022-06-24 2023-02-06 주식회사 액션파워 Ars 음성이 포함된 오디오 데이터에서 발화 음성을 검출하는 방법
US11967340B2 (en) 2022-06-24 2024-04-23 Actionpower Corp. Method for detecting speech in audio data

Similar Documents

Publication Publication Date Title
JP7436709B2 (ja) 非発話テキストおよび音声合成を使う音声認識
Zen et al. Statistical parametric speech synthesis using deep neural networks
KR102449209B1 (ko) 무음 부분을 자연스럽게 처리하는 음성 합성 시스템
KR102449223B1 (ko) 음성의 속도 및 피치를 변경하는 방법 및 음성 합성 시스템
KR102528019B1 (ko) 인공지능 기술에 기반한 음성 합성 시스템
KR20210059586A (ko) 텍스트 음성 변환과 함께 멀티태스크 학습을 사용한 감정적 음성 변환 방법 및 장치
US20220165247A1 (en) Method for generating synthetic speech and speech synthesis system
JP5807921B2 (ja) 定量的f0パターン生成装置及び方法、f0パターン生成のためのモデル学習装置、並びにコンピュータプログラム
KR20220071522A (ko) 합성 음성을 생성하는 방법 및 음성 합성 시스템
KR20220071523A (ko) 문자들의 시퀀스를 분할하는 방법 및 음성 합성 시스템
JP2017167526A (ja) 統計的パラメトリック音声合成のためのマルチストリームスペクトル表現
US11776528B2 (en) Method for changing speed and pitch of speech and speech synthesis system
KR102463570B1 (ko) 무음 구간 검출을 통한 멜 스펙트로그램의 배치 구성 방법 및 음성 합성 시스템
KR102463589B1 (ko) 멜-스펙트로그램의 길이에 기초하여 음성 데이터의 참조 구간을 결정하는 방법 및 음성 합성 시스템
KR102532253B1 (ko) 스펙트로그램에 대응하는 어텐션 얼라인먼트의 디코더 스코어를 연산하는 방법 및 음성 합성 시스템
KR102503066B1 (ko) 어텐션 얼라인먼트의 스코어를 이용하여 스펙트로그램의 품질을 평가하는 방법 및 음성 합성 시스템
KR102568145B1 (ko) 무음 멜-스펙트로그램을 이용하여 음성 데이터를 생성하는 방법 및 음성 합성 시스템
KR20240014257A (ko) 합성 음성을 생성하는 방법 및 음성 합성 시스템
KR102408638B1 (ko) 녹음의 품질을 평가하는 방법 및 시스템
KR20240014252A (ko) 멜-스펙트로그램의 무음 부분을 결정하는 방법 및 음성 합성 시스템
KR20240014250A (ko) 스펙트로그램에 대응하는 어텐션 얼라인먼트의 인코더 스코어를 연산하는 방법 및 음성 합성 시스템
JP6137708B2 (ja) 定量的f0パターン生成装置、f0パターン生成のためのモデル学習装置、並びにコンピュータプログラム
KR20230018312A (ko) 음성을 스코어링하여 음성을 합성하는 방법 및 시스템
KR20240014251A (ko) 음성의 속도 및 피치를 변경하는 방법 및 음성 합성 시스템
US20230037541A1 (en) Method and system for synthesizing speeches by scoring speeches