KR102376552B1 - 음성 합성 장치 및 음성 합성 방법 - Google Patents
음성 합성 장치 및 음성 합성 방법 Download PDFInfo
- Publication number
- KR102376552B1 KR102376552B1 KR1020170029966A KR20170029966A KR102376552B1 KR 102376552 B1 KR102376552 B1 KR 102376552B1 KR 1020170029966 A KR1020170029966 A KR 1020170029966A KR 20170029966 A KR20170029966 A KR 20170029966A KR 102376552 B1 KR102376552 B1 KR 102376552B1
- Authority
- KR
- South Korea
- Prior art keywords
- voice
- unit
- service domain
- speech
- text
- Prior art date
Links
- 238000010189 synthetic method Methods 0.000 title 1
- 230000015572 biosynthetic process Effects 0.000 claims abstract description 89
- 238000003786 synthesis reaction Methods 0.000 claims abstract description 89
- 238000001308 synthesis method Methods 0.000 claims abstract description 16
- 238000000034 method Methods 0.000 claims description 39
- 238000000605 extraction Methods 0.000 claims description 13
- 230000002194 synthesizing effect Effects 0.000 claims description 10
- 230000004044 response Effects 0.000 description 30
- 230000008569 process Effects 0.000 description 24
- 238000003058 natural language processing Methods 0.000 description 21
- 239000000284 extract Substances 0.000 description 18
- 238000004891 communication Methods 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L13/00—Speech synthesis; Text to speech systems
- G10L13/08—Text analysis or generation of parameters for speech synthesis out of text, e.g. grapheme to phoneme translation, prosody generation or stress or intonation determination
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L13/00—Speech synthesis; Text to speech systems
- G10L13/02—Methods for producing synthetic speech; Speech synthesisers
- G10L13/027—Concept to speech synthesisers; Generation of natural phrases from machine-based concepts
Landscapes
- Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Machine Translation (AREA)
Abstract
본 발명은 음성 합성 방법에 관한 것으로, 더욱 상세하게는 서비스 도메인별로 음성 합성을 위한 음성 데이터베이스를 각각 구축한 상태에서, 입력된 텍스트에 대응하는 서비스 도메인을 확인한 후, 해당 서비스 도메인의 음성 데이터베이스를 기준으로 음성 합성을 수행함으로써, 서비스 분야를 고려하여 보다 더 자연스러운 합성음을 생성할 수 있다.
Description
본 발명은 음성 합성 방법에 관한 것으로, 더욱 상세하게는 서비스 도메인별로 음성 합성을 위한 음성 데이터베이스를 각각 구축한 상태에서, 입력된 텍스트에 대응하는 서비스 도메인을 확인한 후, 해당 서비스 도메인의 음성 데이터베이스를 기준으로 음성 합성을 수행함으로써, 서비스 분야를 고려하여 보다 더 자연스러운 합성음을 생성할 수 있는 음성 합성 장치 및 음성 합성 방법에 관한 것이다.
이 부분에 기술된 내용은 단순히 본 실시 예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.
음성 합성(Text To Speech) 기술이란 입력된 텍스트를 인간이 들을 수 있는 음성으로 변환하여 출력하는 기술을 의미한다. 일반적인 음성 합성 기술에 있어서, 화자의 녹음된 음성을 음소 단위로 분리하여 음성 데이터베이스를 구축한 후, 입력된 텍스트에 대한 형태소 및 구문 분석을 수행하고 발음 변환을 고려하여 적합한 음소를 추출하고 추출된 음소들을 연결함으로써 합성음을 생성하게 된다.
최근에는 음성 인식 기술의 발달에 따라, 인공지능 스피커와 같이 사용자가 발화한 음성을 인식하여 이에 적합한 응답 정보를 음성 합성 기술을 이용한 음성으로 제공하고자 하는 요구가 증대되고 있다.
이러한 서비스에 적용되는 음성 합성 기술은 사용자가 질의한 다양한 서비스 분야를 고려하여 최적의 합성음을 응답 정보로 제공해야 하나, 종래의 음성 합성에 적용되는 음성 데이터베이스들은 서비스의 분야를 고려하고 있지 않아 서비스별 최적의 합성음 생성이 어렵다는 문제점이 있다.
따라서, 서비스별로 최적화된 합성음을 생성할 수 있는 서비스 도메인 음성 데이터베이스를 각각 구축하고, 음성 합성 시 입력된 텍스트에 대응하는 서비스 도메인을 확인한 후, 해당 서비스 도메인의 음성 데이터베이스를 기준으로 음성 합성을 수행함으로써, 서비스 분야를 고려하여 보다 더 자연스러운 합성음을 생성할 수 있는 기술의 필요성이 증대되고 있다.
본 발명은 상기한 종래의 문제점을 해결하기 위해 제안된 것으로서, 서비스 별로 최적화된 운율이 설정된 음성 데이터베이스를 구축한 상태에서, 음성 합성 시 입력된 텍스트에 대응하는 서비스 도메인을 확인한 후, 해당 서비스 도메인의 음성 데이터베이스를 기준으로 음성 합성을 수행할 수 있는 음성 합성 장치 및 음성 합성 방법을 제공하는 데 목적이 있다.
또한 본 발명은 적합한 음성 데이터베이스에서 음성 유닛을 추출한 후 추출된 음성 유닛을 결합하여 합성음을 생성 시 음성 유닛에 대응하여 설정된 운율을 고려하여 합성음을 생성함으로써 고품질의 자연스러운 합성음을 생성할 수 있는 음성 합성 장치 및 음성 합성 방법을 제공하는 데 그 목적이 있다.
그러나, 이러한 본 발명의 목적은 상기의 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 명확하게 이해될 수 있을 것이다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 실시 예에 따른 서비스 도메인에 대응하여 운율이 설정된 음성 유닛을 저장하는 복수 개의 서비스 도메인 음성 데이터베이스를 포함하는 음성 합성 장치에 있어서, 상기 음성 합성 장치는 복수 개의 문자 유닛 및 태그로 구성되는 텍스트가 입력되면, 입력된 텍스트에서 상기 태그를 이용하여 서비스 도메인을 확인하는 텍스트 분석부; 상기 텍스트 분석부를 통해 확인된 서비스 도메인에 대응하는 서비스 도메인 음성 데이터베이스에서 상기 문자 유닛에 대응하는 음성 유닛을 추출하는 유닛 추출부; 및 상기 추출된 음성 유닛을 결합하여 합성음을 생성하는 합성음 생성부;를 포함하여 구성될 수 있다.
이때, 상기 텍스트 분석부는 상기 태그 중 도메인 태그를 이용하여 서비스 도메인을 확인할 수 있다.
또한, 상기 유닛 추출부는 상기 텍스트에서 특정 문자 유닛에 대응하여 서비스 도메인으로 지정된 데이터 태그가 존재하는 경우, 상기 데이터 태그에 대응하는 서비스 도메인 음성 데이터베이스에서, 상기 특정 문자 유닛에 대응하는 음성 유닛을 추출할 수 있다.
또한, 상기 음성 합성 장치는 운율이 설정되지 않은 음소열의 집합인 음성 유닛을 저장하는 범용 음성 데이터베이스를 더 포함하며, 상기 유닛 추출부는 상기 서비스 도메인 음성 데이터베이스에서 추출되지 못한 문자 유닛이 존재할 경우, 상기 범용 음성 데이터베이스에서 해당 문자 유닛에 대응하는 음소 유닛을 추출할 수 있다.
또한, 상기 합성음 생성부는 상기 추출된 음성 유닛의 운율을 조절하여 합성음을 생성할 수 있다.
또한, 상기 합성음 생성부는 서로 다른 서비스 도메인 음성 데이터베이스에서 추출된 음성 유닛이 존재하는 경우 기준 서비스 도메인 음성 데이터베이스에서 추출된 음성 유닛의 운율에 따라 다른 음성 유닛의 운율을 조절하여 합성음을 생성할 수 있다.
또한, 상기 합성음 생성부는 서비스 도메인 음성 데이터베이스에서 추출된 제1 음성 유닛과 범용 음성 데이터베이스에서 추출된 제2 음성 유닛을 결합하는 경우, 상기 제1 음성 유닛의 운율에 따라 제2 음성 유닛의 운율을 설정하여 합성음을 생성할 수 있다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 실시 예에 따른 서비스 도메인에 대응하여 운율이 설정된 음성 유닛을 저장하는 복수 개의 서비스 도메인 음성 데이터베이스를 포함하는 음성 합성 장치에서의 음성 합성 방법에 있어서, 상기 음성 합성 장치가 복수 개의 문자 유닛 및 태그로 구성되는 텍스트가 입력되면, 입력된 텍스트에서 상기 태그를 이용하여 서비스 도메인을 확인하는 단계; 확인된 서비스 도메인에 대응하는 서비스 도메인 음성 데이터베이스에서 상기 문자 유닛에 대응하는 음성 유닛을 추출하는 단계; 및 상기 추출된 음성 유닛을 결합하여 합성음을 생성하는 단계;를 포함하여 이뤄질 수 있다.
이때, 상기 음성 유닛을 추출하는 단계 이후에, 상기 서비스 도메인 음성 데이터베이스에서 추출되지 못한 문자 유닛이 존재하는 지 여부를 판단하는 단계; 및 추출되지 못한 문자 유닛이 존재할 경우, 운율이 설정되지 않은 음소열의 집합인 음성 유닛을 저장하는 범용 음성 데이터베이스에서 상기 문자 유닛에 대응하는 음소 유닛을 추출하는 단계;를 더 포함하여 이뤄질 수 있다.
또한, 상기 합성음을 생성하는 단계는 상기 추출된 음성 유닛의 운율을 조절하여 합성음을 생성하되, 서로 다른 서비스 도메인 음성 데이터베이스에서 추출된 음성 유닛이 존재하는 경우 기준 서비스 도메인 음성 데이터베이스에서 추출된 음성 유닛의 운율에 따라 다른 음성 유닛의 운율을 조절하여 합성음을 생성하며, 서비스 도메인 음성 데이터베이스에서 추출된 음성 유닛과 범용 음성 데이터베이스에서 추출된 음성 유닛을 결합하는 경우, 상기 서비스 도메인 음성 데이터베이스에서 추출된 음성 유닛의 운율에 따라 상기 범용 음성 데이터베이스에서 추출된 음성 유닛의 운율을 설정하여 합성음을 생성할 수 있다.
추가로 본 발명은 상술한 바와 같은 방법을 실행하는 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체를 제공할 수 있다.
본 발명의 음성 합성 장치 및 음성 합성 방법에 의하면, 날씨, 음악, 영화 등과 같은 서비스 도메인별로 최적의 운율이 설정된 음성 데이터베이스를 각각 구축한 상태에서, 입력된 텍스트에 대응하는 서비스 도메인을 확인한 후, 해당 서비스 도메인의 음성 데이터베이스를 기준으로 음성 합성을 수행함으로써, 서비스 분야를 고려하여 보다 더 자연스러운 합성음을 생성할 수 있게 된다.
아울러, 본 발명의 서비스 도메인별로 최적의 운율이 설정된 음성 데이터베이스는 자연어 처리 과정에서 필요한 데이터베이스로 활용될 수 있어, 음성 데이터베이스의 활용이 증대될 수 있으며, 음성 데이터베이스에 구축된 정보가 증가하더라도, 서비스 도메인에 해당하는 음성 데이터베이스를 먼저 검색하여 음성 유닛을 추출함으로써 보다 효율적인 음성 합성이 가능하게 된다.
또한, 서비스 도메인별로 음성 데이터베이스를 각각 구축하여 관리함으로써, 유지 보수가 보다 더 용이해질 수 있으며, 시대의 흐름에 따라 자주 사용되는 특정 문장의 패턴을 음소 단위가 아닌 어절 또는 문장과 같은 긴 유닛(long unit) 단위로 음성 데이터베이스를 구축함으로써 원음에 가까운 자연스러운 운율 표현이 가능할 수 있다.
아울러, 상술한 효과 이외의 다양한 효과들이 후술될 본 발명의 실시 예에 따른 상세한 설명에서 직접적 또는 암시적으로 개시될 수 있다.
도 1 및 도 2는 본 발명의 실시 예에 따른 음성 합성 시스템을 설명하기 위한 구성도이다.
도 3은 본 발명의 실시 예에 따른 음성 합성 장치의 주요 구성을 도시한 블록도이다.
도 4는 본 발명의 실시 예에 따른 음성 합성 방법을 설명하기 위한 흐름도이다.
도 5는 본 발명의 다른 실시 예에 따른 음성 합성 방법을 설명하기 위한 흐름도이다.
도 3은 본 발명의 실시 예에 따른 음성 합성 장치의 주요 구성을 도시한 블록도이다.
도 4는 본 발명의 실시 예에 따른 음성 합성 방법을 설명하기 위한 흐름도이다.
도 5는 본 발명의 다른 실시 예에 따른 음성 합성 방법을 설명하기 위한 흐름도이다.
본 발명의 과제 해결 수단의 특징 및 이점을 보다 명확히 하기 위하여, 첨부된 도면에 도시된 본 발명의 특정 실시 예를 참조하여 본 발명을 더 상세하게 설명한다.
다만, 하기의 설명 및 첨부된 도면에서 본 발명의 요지를 흐릴 수 있는 공지 기능 또는 구성에 대한 상세한 설명은 생략한다. 또한, 도면 전체에 걸쳐 동일한 구성 요소들은 가능한 한 동일한 도면 부호로 나타내고 있음에 유의하여야 한다.
이하의 설명 및 도면에서 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위한 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서 본 명세서에 기재된 실시 예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시 예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다.
또한, 제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하기 위해 사용하는 것으로, 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용될 뿐, 상기 구성요소들을 한정하기 위해 사용되지 않는다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제2 구성요소는 제1 구성요소로 명명될 수 있고, 유사하게 제1 구성요소도 제2 구성요소로 명명될 수 있다.
더하여, 어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급할 경우, 이는 논리적 또는 물리적으로 연결되거나, 접속될 수 있음을 의미한다. 다시 말해, 구성요소가 다른 구성요소에 직접적으로 연결되거나 접속되어 있을 수 있지만, 중간에 다른 구성요소가 존재할 수도 있으며, 간접적으로 연결되거나 접속될 수도 있다고 이해되어야 할 것이다.
또한, 본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 또한, 본 명세서에서 기술되는 "포함 한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
이하, 본 발명의 실시 예에 따른 음성 합성 장치 및 음성 합성 방법에 대하여 도면을 참조하여 상세하게 설명하도록 한다.
먼저, 본 발명의 실시 예에 따른 음성 합성 시스템에 대해 설명하도록 한다.
도 1 및 도 2는 본 발명의 실시 예에 따른 음성 합성 시스템을 설명하기 위한 구성도이다.
먼저, 도 1은 본 발명의 음성 합성 장치가 적용된 일 실시 예에 따른 음성 합성 시스템(200)을 설명하기 위한 예시도로, 본 발명의 음성 합성 시스템(200)은 음향 장치(100)로부터 음성이 입력되면, 입력된 음성을 인식하여 처리하고, 입력된 음성에 대응하는 응답 정보를 음향 장치(100)로 제공하는 역할을 수행한다.
보다 구체적으로, 본 명세서에서 정의하는 음향 장치(100)는 마이크와 스피커를 포함하여 구성될 수 있다. 음향 장치(100)는 마이크를 통해 일정 반경 내 사용자가 발화하는 사용자의 음성을 입력 받아 전기적 형태의 음성 신호를 생성하고 생성된 음성 신호를 통신망(300)을 경유하여 음성 합성 시스템(200)으로 전달할 수 있다. 그리고, 음향 장치(100)는 음성 합성 시스템(200)으로부터 전달한 음성 신호에 대응하는 응답 정보가 전달되면 응답 정보를 스피커를 통해 출력되는 과정을 제어할 수 있다. 이때, 응답 정보는 음성 신호 형태이며, 음향 장치(100)는 수신된 응답 정보를 사용자가 인지할 수 있는 가청 주파수 대역으로 변환하여 이를 스피커를 통해 출력하는 과정을 수행할 수 있다.
이러한 음향 장치(100)는 인공 지능 스피커를 비롯하여 마이크와 스피커를 포함하는 장치라면 다양한 형태로 구현될 수 있다. 예컨대, 사용자의 PC, 스마트폰(smart phone), 태블릿(tablet), 노트북 등의 사용자 단말이 마이크 및 스피커를 포함하여 구성된다면, 상기 사용자 단말은 본 발명의 음향 장치(100)로 사용될 수 있다. 한편, 설명의 편의를 위해 음향 장치(100)가 마이크와 스피커를 모두 포함하는 구성을 중심으로 설명하였으나, 반드시 이에 한정되는 것은 아니며 구현 방식에 따라 음향 장치(100)는 독립된 마이크 장치 및 스피커 장치로 구분되어 구성될 수도 있다. 이때 마이크 장치는 사용자의 음성이 입력되면 음성 합성 시스템(200)으로 전달하는 역할을 수행할 수 있으며, 스피커 장치는 음성 합성 시스템(200)으로부터 전달되는 응답 정보를 출력하는 역할만을 수행할 수 있다. 아울러, 마이크 장치 및 스피커 장치는 통신망(300)을 통해 직접 음성 합성 시스템(200)에 연결될 수 있으나, 마이크 장치 및 스피커 장치가 논리적 또는 물리적으로 연결되는 경우 스피커 장치가 마이크 장치로부터 음성을 전달받아 음성 합성 시스템(200)으로 전달하는 역할을 수행할 수도 있다.
반면, 본 발명의 음성 합성 시스템(200)은 음향 장치(100)로부터 전달되는 사용자의 음성을 인식하여, 자연어 처리 과정을 수행하고 이에 대한 응답 정보를 음성 신호 형태로 생성한 후 음향 장치(100)로 전달하는 과정을 수행하게 된다.
이러한, 음성 합성 시스템(200)은 사용자 음성을 인식하고 사용자 요청에 따른 응답 정보를 생성하여 생성된 응답 정보를 음성의 형태로 음향 장치(100)로 전송할 수 있으며, 사용자가 직접 특정 문장을 선택하거나 입력한 경우, 사용자가 선택한 문장 또는 입력한 문장을 음성 신호 형태로 출력할 수 있는 기능을 포함할 수도 있다. 이러한 음성 합성 시스템(200)는 자동응답 서비스(ARS; Automatic Response Service) 시스템을 비롯하여 음성으로 정보를 제공할 수 있는 시스템을 모두 포함하는 개념이 될 수 있다.
이러한 본 발명의 음성 합성 시스템(200)에 대해 도 2를 참조하여 보다 더 구체적으로 설명하도록 한다.
도 2는 본 발명의 실시 예에 따른 음성 합성 시스템을 설명하기 위한 구성도로, 도 2에 도시된 바와 같이, 본 발명의 음성 합성 시스템(200)은 인터페이스 장치(210), 음성 인식 장치(220), 자연어 처리 장치(230) 및 음성 합성 장치(240)를 포함하여 구성될 수 있다.
먼저, 인터페이스 장치(210)는 음향 장치(100)와의 인터페이싱 과정을 제어하게 된다. 특히, 본 발명의 인터페이스 장치(210)는 음향 장치(100)가 전달하는 사용자의 음성이 입력(input)되면, 이를 음성 인식 장치(220)로 전달할 수 있으며, 음성 합성 장치(240)가 생성한 응답 정보를 출력(output)으로 음향 장치(100)로 전달하는 과정을 수행할 수 있다.
본 발명의 인터페이스 장치(210)는 도 1에 도시된 바와 같이 통신망(300)을 경유하여 음향 장치(100)와 논리적으로 연결될 수 있다. 즉, 본 발명의 통신망(300)은 인터넷 망과 같은 IP 기반의 유선 통신망뿐만 아니라, LTE(Long term evolution) 망, WCDMA 망과 같은 이동통신망, Wi-Fi망과 같은 다양한 종류의 무선망, 및 이들의 조합으로 이루어질 수 있으며, 본 발명의 인터페이스 장치(210)는 통신망(300)이 지원하는 통신 방식에 따라 통신망(300)에 연결되어 통신망(300)을 통해 음향 장치(100)와 연결될 수 있다. 이때, 본 발명의 통신망(300)이 스트리밍 서비스를 지원하는 경우 인터페이스 장치(210)는 스트리밍 통신 방식에 따라 음성 합성 장치(240)로부터 전달되는 응답 정보를 순차적으로 음향 장치(100)로 전달할 수도 있다.
음성 인식 장치(220)는 인터페이스 장치(210)가 전달한 사용자의 음성 신호를 인식하여 처리하는 과정을 수행한다. 특히, 음성 인식 장치(220)는 전달되는 음성 신호에서 음성 특징 벡터를 추출할 수 있으며, 음성 특징 벡터에 대응하는 음소를 데이터베이스에서 검색하여 구성하고, 이에 따른 단어열을 구성하여 문장을 완료함으로써 음성 인식 과정을 수행할 수 있다.
그리고, 음성 인식 장치(220)는 음성 인식에 따른 결과 텍스트를 자연어 처리 장치(230)로 전달된다.
자연어 처리 장치(230)는 음성 인식에 따른 결과 텍스트를 이해하고, 이에 대응하는 응답 정보를 음성 합성 형태로 제공하기 위하여, 음성 합성을 위한 자연어 문장을 생성하는 과정을 수행하게 된다. 이러한 자연어 처리 장치(230)는 자연어 이해(NLU; Natural Language Understanding), 대화 관리(DB; Dialog Management), 자연어 생성(NLG; Natural Language Generation) 과정을 수행할 수 있다.
예를 들어, 음성 인식 장치(220)로부터 자연어 처리 장치(230)로 전달된 결과 텍스트가 "오늘 날씨가 어때?"라고 한다면, 자연어 처리 장치(230)는 상기 결과 텍스트를 이해하고, 사용자가 오늘 날씨를 질의한 것으로 이해할 수 있다. 그리고 자연어 처리 장치(230)는 이에 대응하는 응답 텍스트를 생성하기 위하여 날씨 서버와 연계하여 현재 시점의 날씨 정보를 질의하여 확인할 수 있다. 이때, 자연어 처리 장치(230)는 사용자의 현재 위치를 확인하여 현재 위치에서의 현재 시점에 대한 날씨 정보를 확인할 수도 있다. 그리고 자연어 처리 장치(230)는 "지금 서울 하늘에는 구름이 많고, 기온은 영상 1도입니다."와 같은 응답 텍스트를 생성할 수 있다.
이때, 본 발명의 자연어 처리 장치(230)는 응답 텍스트를 구성 시 태그 정보를 설정하여 구성할 수 있다. 예를 들어 자연어 처리 장치(230)는 문자 유닛에 대응하여 지정된 단어가 존재하는 것으로 확인되면, 해당 문자 유닛과 함께 태그를 설정하는 과정을 수행하여 문자 유닛 및 태그 정보를 포함하는 응답 텍스트를 구성하게 된다.
이후, 자연어 처리 장치(230)는 응답 텍스트를 음성 합성 장치(240)로 전달하게 된다.
음성 합성 장치(240)는 자연어 처리 장치(230)로부터 전달된 응답 텍스트를 대응하는 음성 유닛을 음성 데이터베이스에서 추출한 후 추출된 음성 유닛을 결합하여 합성음을 출력하는 과정을 수행하는 TTS(Text to Speech) 엔진을 의미한다. 특히, 본 발명의 음성 합성 장치(240)는 추출된 음성 유닛 간의 운율을 고려하여 추출된 음성 유닛간의 운율을 조정하는 과정을 수행할 수 있으며, 이러한 과정을 통해 보다 더 자연스러운 합성음을 생성하여 출력할 수 있게 된다.
일반적인 TTS 엔진의 경우, 텍스트가 입력되면, 먼저 어절 단위로 문장을 분석하고, 어절에 대응하는 음소열을 확인하여 합성음을 생성하게 된다. 예를 들어, "소녀시대의 소원을 말해봐 들려드릴께요."라는 텍스트가 입력되면, 종래의 TTS 엔진은 상기 텍스트에 대한 서비스 도메인에 대해서는 전혀 고려하지 않고, 먼저 어절 단위에 대응하는 음소열을 확인하게 된다. 예컨대, '소녀시대의 / 소원을 / 말해봐 / 들려드릴께요' 와 같이 어절을 분석하고, 어절에 대응하는 음소열 'ㅅ ㅗ ㄴ ㅕ ㅅ ㅣ ㄷ ㅐ ㅇ ㅡ ㅣ'을 음성 데이터베이스에서 확인하여 추출할 수 있다. 그리고 기존의 TTS엔진은 추출된 음소열을 순차적으로 합성하여 합성음을 생성하게 된다. 최근에는 TTS 엔진이 어절 간의 발음 변화 규칙을 더 고려하여 적합한 음소열을 추출한 후 합성음을 생성하기도 하나, 단순히 발음 정도만을 고려하고 있을 뿐, 텍스트의 주제, 즉 음악, 영화, 날씨 등과 같이 텍스트에 대한 서비스 도메인에 대해서는 전혀 고려하고 있지 않다.
반면, 본 발명의 음성 합성 장치(240)는 서비스 도메인에 대응하여 운율이 함께 설정된 음성 유닛을 저장하는 음성 데이터베이스를 서비스 도메인별로 각각 구축한 상태에서, 자연어 처리 장치(230)로부터 텍스트가 전달되면, 먼저 태그를 확인하여 태그에 대응하는 서비스 도메인을 확인하게 된다. 그리고 본 발명의 음성 합성 장치(240)는 서비스 도메인에 대응하는 음성 데이터베이스를 확인하고, 해당하는 음성 데이터베이스에서만 의미있는 단위로 저장된 음성 유닛을 추출하여 합성음을 생성하게 된다. 즉, 같은 단어라도 해당 단어의 쓰임에 따라 문장에서 주는 분위기, 느낌 등의 운율이 서로 다를 수 있으므로, 본 발명의 음성 합성 장치(240)는 이와 같이 단어가 사용되는 서비스 분야에 따라 각각 의미있는 음성 유닛을 녹음하여 구축한 상태에서, 입력된 텍스트에 대응하는 음성 유닛을 추출하여 합성음을 생성하게 되는 것이다.
보다 구체적인 음성 합성 장치(240)에서의 동작에 대해서는 도 3을 참조하여 설명하도록 하며, 이상으로 본 발명의 실시 예에 따른 음성 합성 시스템(200)에 대해 설명하였다.
본 발명의 음성 합성 시스템(200)은 도면에는 도시하지 않았으나 날씨 서버와 같이 컨텐츠 제공 서버(미도시)와 연동할 수 있다. 여기서, 음성 합성 시스템(200)이 연동 할 수 있는 컨텐츠 제공 서버(미도시)는 컨텐츠 제공자(CP; Contents Provider)의 장치로, 음성 합성 시스템(200)의 질의 종류 또는 자신이 제공하는 컨텐츠의 종류에 따라 서로 다른 형태의 응답을 전송할 수 있다. 예컨대 컨텐츠 제공 서버 A가 음원에 대한 스트리밍 서비스를 제공할 수 있는 컨텐츠 제공 서버라면 해당 음원을 스트리밍 할 수 있는 링크 정보를 전송할 수 있다. 반면, 컨텐츠 제공 서버 B가 날씨, 온도 등의 특정한 컨텐츠를 제공할 수 있는 서버라면 확인된 특정 정보(현재 날씨, 현재 온도 등)를 제공할 수 있다.
아울러, 본 발명의 실시 예에 따른 음성 합성 시스템(200)은 음성 인식 장치(220), 자연어 처리 장치(230) 및 음성 합성 장치(240)로 구성되는 것을 예로 들어 설명하나, 반드시 이에 한정되는 것은 아니며, 구현 방식에 따라 음성 합성 시스템(200)이 사용자의 키 입력에 따라 응답 정보를 음성으로 제공하는 ARS 시스템인 경우, 음성 인식 장치(220) 및 자연어 처리 장치(230)는 생략될 수 있다.
이하에서는 본 발명의 실시 예에 따른 음성 합성 시스템(200) 중 TTS 기능을 수행하는 음성 합성 장치(240)의 주요 구성에 대해 보다 더 구체적으로 설명하도록 한다.
도 3은 본 발명의 실시 예에 따른 음성 합성 장치의 주요 구성을 도시한 블록도이다.
도 3을 참조하면, 본 발명의 음성 합성 장치(240)는 텍스트 분석부(241), 유닛 추출부(242), 합성음 생성부(243), 합성음 출력부(244) 및 음성 데이터베이스(245)를 포함하여 구성될 수 있다.
텍스트 분석부(241)는 음성으로 변환하고자 하는 텍스트가 입력되면, 입력된 텍스트를 분석하여 대상 언어, 숫자, 기호 등을 구분하고 분석하는 역할을 수행한다. 여기서 음성으로 변환하고자 하는 텍스트는 자연어 처리 장치(230)를 통해 전달된 응답 텍스트가 될 수 있다. 그러나, 반드시 이에 한정되는 것은 아니며 텍스트 분석부(241)는 미리 저장된 문장을 로딩(loading)하는 과정을 통해 음성으로 변환하고자 하는 텍스트를 확인할 수도 있다.
특히, 본 발명의 텍스트는 전체 문장을 구성하는 문자 유닛과 문자 유닛에 대한 속성 정보를 나타내는 태그를 포함할 수 있다. 이러한 텍스트는 ML(Markup Language)의 규칙에 따라 정의될 수 있으며, 본 발명의 텍스트 분석부(241)는 입력된 텍스트를 분석하여, 서비스 도메인을 확인하는 과정을 수행할 수 있다.
<skml domain="music"> <sk_artist> 소녀시대</sk_artist> 의 <sk_songtitle> 소원을 말해봐</sk_songtitle> 들려드릴께요. </skml> |
예를 들어, <표 1>에 도시된 바와 같이 본 발명의 텍스트는 '소녀시대', '의', '소원을 말해봐', '들려드릴께요.'와 같이 의미있는 단위인 문자 유닛과 지정된 키호 예컨대 <>로 정의되는 태그를 포함할 수 있다.
본 발명의 텍스트 분석부(241)는 이러한 텍스트가 입력되면 먼저 도메인 태그를 확인하여 텍스트에 대한 서비스 도메인을 확인하게 된다. 서비스 도메인은 예컨대 'domain' 태그로 정의될 수 있으며, 텍스트 분석부(241)는 텍스트에서 'domain' 태그를 확인한 결과, 음악(music)인 것을 확인할 수 있다.
또한, 본 발명의 텍스트 분석부(241)는 도메인 태그 이외의 또 다른 태그가 존재하는 지 확인할 수 있다. 본 발명의 도메인 태그는 텍스트의 시작 부분에 'domain'으로 정의될 수 있는 태그로, 텍스트 전체의 서비스 분야를 규정하게 된다. 반면, 문자 유닛에 대한 속성 정보를 나타내는 데이터 태그가 존재할 수 있다. 전술한 <표 1>에서 <sk_artist>, <sk_songtitle> 태그는 해당하는 문자 유닛에 대한 속성을 규정한 데이터 태그로, 구현 방식에 따라 데이터 태그에 대응하여 또 다른 음성 데이터베이스가 구축될 수도 있다. 다시 말해, 서비스 도메인에 대응하는 '음악' 음성 데이터베이스 이외의 artist, songtitle 각각에 대한 음성 데이터베이스를 구축할 수 있으며, 텍스트 분석부(241)는 이러한 데이터 태그가 존재하는 지 분석하여 확인할 수 있게 된다.
이후, 본 발명의 유닛 추출부(242)는 텍스트 분석부(241)를 통해 확인된 서비스 도메인에 대응하는 음성 데이터베이스를 확인하고, 해당 음성 데이터베이스에서 문자 유닛에 대응하는 음성 유닛을 추출하게 된다.
이를 위해 본 발명의 음성 데이터베이스는 복수 개의 서비스 도메인별로 구축된 서비스 도메인 음성 데이터베이스(245a)를 포함하며, 유닛 추출부(242)는 확인된 서비스 도메인, 예컨대 음악 서비스 도메인에 대응하는 음성 데이터베이스에서 문자 유닛에 대응하는 음성 유닛을 추출하게 된다.
이때, 본 발명의 유닛 추출부(242)는 텍스트 분석부(241)를 통해 데이터 태그가 존재하는 것으로 확인되면, 데이터 태그에 대응하여 구축된 또 다른 음성 데이터베이스를 확인할 수도 있다. 예컨대, <표 1>에서 예시한 바와 같이 <sk_artist>, <sk_songtitle> 태그는 해당하는 문자 유닛에 대한 속성을 규정한 데이터 태그이며, 데이터 태그에 대응하여 '가수', '노래제목'에 대한 음성 데이터베이스가 구축된 상태라면, 해당 음성 데이터베이스에서 태그로 지정된 문자 유닛에 대한 음성 유닛을 추출할 수도 있다. 이때, '가수', '노래제목'에 대한 음성 데이터베이스는 '음악' 음성 데이터베이스의 하위 DB로 구현될 수 있으며, 이 경우, 각각의 음성 데이터베이스는 서로 동일 또는 유사한 운율이 설정된 음성 유닛을 포함할 수 있다.
또 다른 예를 들어, 유닛 추출부(242)는 확인된 '주문'에 대응하는 음성 데이터베이스에서 음성 유닛을 추출하되, 데이터 태그에 대응하여 또 다른 '주소' 음성 데이터베이스를 확인하고, 문자 유닛에 대응하는 음성 유닛을 추출할 수도 있다.
또한, 본 발명의 유닛 추출부(242)는 서비스 도메인의 음성 데이터베이스에서 음성 유닛을 추출하되, 문자 유닛에 대응하는 태그가 확인된 서비스 도메인과 다른 서비스 도메인을 포함할 경우, 또 다른 서비스 도메인의 음성 데이터베이스에서 음성 유닛을 추출할 수도 있다.
또한, '의', '들려드릴께요'와 같은 문자 유닛은 별도의 태그가 지정되어 있지 않은 문자 유닛이며, 이 경우 전체 서비스 도메인에 해당하는 음성 데이터베이스에서 문자 유닛에 대응하는 음성 유닛을 추출하게 된다. 전술한 예에서 확인된 서비스 도메인은 '음악'이므로 음악 음성 데이터베이스에서 '의', '들려드릴께요' 문자 유닛에 대한 음성 유닛을 추출할 수 있다.
이때, 본 발명의 음성 유닛은 종래의 음성 데이터베이스에 음소 단위로 저장되는 방식과는 다르게, '들려드릴께요'와 같이 하나의 어절과 같이 의미 있는 단위로 저장될 수 있으며, 본 발명의 유닛 추출부(242)는 의미 있는 단위로 저장된 음성 유닛을 추출할 수 있다.
반면, 본 발명의 유닛 추출부(242)는 서비스 도메인의 음성 데이터베이스에서 문자 유닛에 대응하는 음성 유닛을 추출하게 되는 데, 이때 서비스 도메인의 음성 데이터베이스에서 대응하는 음성 유닛이 존재하지 않을 경우, 일반 범용 음성 데이터베이스에서 대응하는 음성 유닛을 추출할 수 있다.
예컨대, '의', '들려드릴께요'에 대응하는 음성 유닛이 음악 서비스 도메인의 음성 데이터베이스에 없을 경우, 유닛 추출부(242)는 상기 문자 유닛을 음소 단위로 분석하고, 이에 대응하여 음소열 형태로 저장된 음성 유닛을 범용 음성 데이터베이스에서 추출하게 된다.
즉, 서비스 도메인의 음성 데이터베이스에서는 '의', '들려드릴께요'라는 문자 유닛에 대응하는 음성 그 자체를 저장하고 있다면, 범용 음성 데이터베이스는 일반적인 TTS 엔진에서 사용되는 음성 데이터베이스로 'ㅇ ㅡ ㅣ', 'ㄷ ㅡ ㄹ ㄹ ㅕ', 'ㄷ ㅡ ㄹ ㅣ ㄹ ㄲ ㅔ ㅇ ㅛ'와 같은 일련의 음소열 단위로 음성 유닛을 저장하게 된다. 따라서, 유닛 추출부(242)는 서비스 도메인의 음성 데이터베이스에서 해당하는 음성 유닛이 없을 경우 범용 음성 데이터베이스에서 음소열의 음성 유닛을 추출할 수 있다.
이때 범용 음성 데이터베이스에서 추출되는 음성 유닛은 서비스 도메인의 음성 데이터베이스에서 추출되는 음성 유닛에 비해 그 저장 단위가 작을 수 있다. 즉, 서비스 도메인의 음성 데이터베이스에서는 '들려드릴께요'와 같이 긴 단위(long unit)로 음성 유닛이 저장된다면, 범용 음성 데이터베이스에서는 'ㄷ ㅡ ㄹ ㄹ ㅕ', 'ㄷ ㅡ ㄹ ㅣ ㄹ ㄲ ㅔ ㅇ ㅛ'와 같이 음소 단위의 비교적 짧은(short unit) 음성 유닛이 저장되게 된다.
이러한 과정을 거쳐 음성 유닛이 추출되면 유닛 추출부(242)는 추출된 음성 유닛을 합성음 생성부(243)로 전달한다.
합성음 생성부(243)는 유닛 추출부(242)를 통해 추출된 음성 유닛을 순차적으로 합성하여 합성음을 생성하게 된다. 특히, 본 발명의 합성음 생성부(242)는 추출된 음성 유닛 간의 운율, 즉 음의 억양(intonation), 높이(pitch), 말투(speech) 등의 운율을 고려하여 합성음을 생성하는 과정을 수행할 수 있다.
주문하신 / 상품을 / 학여울역으로 / 전달하였습니다 |
예를 들어, <표 2>에 도시된 바와 같이 유닛 추출부(242)가 추출한 음성 유닛이 '주문하신', '상품을', '학여울역으로', '전달하였습니다' 라고 가정한다. 이때, '주문하신', '상품을', '전달하였습니다'는 '주문' 서비스 도메인의 음성 데이터베이스에서 추출된 음성 유닛이며, '학여울역으로'는 '주소' 서비스 도메인의 음성 데이터베이스에서 추출된 음성 유닛일 수 있다.
본 발명의 합성음 생성부(242)는 서로 다른 서비스 도메인의 음성 데이터베이스에서 추출된 음성 유닛 간의 운율을 확인하고, 운율을 조정하는 과정을 수행하게 되는 데, 이때 기준 서비스 도메인의 음성 데이터베이스에서 추출된 음성 유닛의 운율에 맞춰 조정할 수 있다. 예컨대 전술한 예에서, '주문' 서비스 도메인은 도메인 태그를 통해 확인된 서비스 도메인이며, '주소' 서비스 도메인은 데이터 태그를 통해 확인된 서비스 도메인이라고 한다면, 기준은 전체 서비스 도메인을 나타내는 '주문' 서비스 도메인이 될 수 있다. 따라서, 본 발명의 합성음 생성부(242)는 '주소' 서비스 도메인의 음성 데이터베이스에서 추출된 음성 유닛을 '주문' 서비스 도메인에서 추출된 음성 유닛의 운율에 맞춰 조정하게 된다.
또한 본 발명의 합성음 생성부(242)는 추출된 음성 유닛이 서비스 도메인 음성 데이터베이스에서 추출된 제1 음성 유닛과 범용 음성 데이터베이스에서 추출된 제2 음성 유닛이 존재할 경우, 제2 음성 유닛은 운율을 고려하지 않은 음성 유닛이므로, 제1 음성 유닛의 운율에 따라 제2 음성 유닛에 운율을 설정하여 합성음을 생성할 수 있다.
<표 1>을 참조하여 예시한 설명에서, '의', '들려드릴께요'의 문자 유닛에 대응하는 음성 유닛이 범용 음성 데이터베이스에서 추출되었다고 하면, 범용 음성 데이터베이스는 음성 유닛에 운율이 설정되지 않은 상태이므로, 서비스 도메인 음성 데이터베이스에서 추출된 '소녀시대', '소원을 말해봐'에 설정된 운율에 따라 '의', '들려드릴께요'에 운율을 설정하여 합성음을 생성할 수 있다. 이때, 복수 개의 서비스 도메인 음성 데이터베이스에서 음성 유닛이 추출되었다면, 범용 음성 데이터베이스에서 추출된 제2 음성 유닛의 운율은 제2 음성 유닛 앞뒤로 위치하고 있는 제1 음성 유닛의 운율을 고려하여 설정될 수 있다.
아울러, 본 발명의 합성음 생성부(242)가 운율을 고려하는 과정은 음의 강약, 장단, 고저 등을 설정하거나 조정하는 과정을 포함할 수 있다.
합성음 출력부(244)는 합성음 생성부(243)를 통해 생성된 합성음을 출력하여 인터페이스 장치(210)로 전달하는 과정을 수행할 수 있다.
아울러, 본 발명의 음성 데이터베이스는 전술한 바와 같이 서비스 도메인별로 구축되는 복수 개의 서비스 도메인 음성 데이터베이스(245a) 및 범용 음성 데이터베이스(245b)를 포함하여 구성될 수 있다.
본 발명의 서비스 도메인은 예컨대, 날씨, 주소, 알람, 음악, 영화, 백과사전, 상용구 등 특정 기준에 따라 구분된 도메인을 의미한다. 그리고 본 발명에서는 서비스 도메인별로 음성 데이터베이스를 각각 구축하게 되며, 서비스 도메인 음성 데이터베이스(245a)에 저장되는 음성 유닛은 중복될 수 있다. 그러나 서비스 도메인 음성 데이터베이스(245a)별로 음성 유닛이 중복되더라도 설정되는 운율은 서로 다를 수 있다. 예컨대, 주소 서비스 도메인 음성 데이터베이스에 저장된 '서울' 음성 유닛과, 음악 서비스 도메인 음성 데이터베이스에 저장된 '서울' 음성 유닛에 설정된 운율을 서로 다르게 되며, 문자 유닛에 대응하는 음성 유닛을 추출 시 해당 서비스 도메인을 고려하여 추출함으로써, 실제 사람이 발화하는 것과 같이 보다 더 현실적인 운율감을 느낄 수 있게 된다.
아울러, 본 발명의 서비스 도메인별 음성 데이터베이스는 '날씨', '음악', '영화'와 같이 서비스 도메인별로 각각 독립되어 구축될 수 있으며, '음악' 음성 데이터베이스 안에 '가수', '노래제목', '영화' 음성 데이터베이스 안에 '영화배우' 등과 같이 계층적인 형태로 구축될 수도 있다.
또한, 본 발명의 서비스 도메인 음성 데이터베이스(245a)에 저장되는 음성 유닛은 어절 단위, 문장 단위로 저장될 수 있으며, 반면 범용 음성 데이터베이스(245b)에 저장된 음성 유닛은 서비스 도메인 음성 데이터베이스(245a)에 저장된 음성 유닛보다 작은 음소의 집합인 음소열 단위로 저장될 수 있다.
이상으로 본 발명의 실시 예에 따른 장치의 주요 구성에 대해 개략적으로 설명하였다. 본 발명의 실시 예에 따른 각 장치에 탑재되는 프로세서는 본 발명에 따른 방법을 실행하기 위한 프로그램 명령을 처리할 수 있다. 일 구현 예에서, 이 프로세서는 싱글 쓰레드(Single-threaded) 프로세서일 수 있으며, 다른 구현 예에서 본 프로세서는 멀티 쓰레드(Multithreaded) 프로세서일 수 있다. 나아가 본 프로세서는 메모리 혹은 저장 장치 상에 저장된 명령을 처리하는 것이 가능하다.
이하, 본 발명의 실시 예에 따른 음성 합성 방법에 대해 설명하도록 한다.
도 4는 본 발명의 실시 예에 따른 음성 합성 방법을 설명하기 위한 흐름도이다.
도 2 및 도 4를 참조하면, 본 발명의 음성 합성 장치(240)는 텍스트를 입력 받는다(S101). 여기서, 텍스트는 도 2에 도시된 자연어 처리 장치(230)를 처리된 결과 텍스트일 수 있으며, 사용자 요청에 따라 선택되어 로딩된 특정 문장일 수 있다.
이후, 음성 합성 장치(240)는 입력된 텍스트를 분석하여 태그를 확인한다(S103). 본 발명의 텍스트는 전체 문장을 구성하는 문자 유닛과 문자 유닛에 대한 속성 정보를 나타내는 태그를 포함할 수 있다. 이러한 텍스트는 ML(Markup Language)의 규칙에 따라 정의될 수 있으며, 본 발명의 음성 합성 장치(240)는 태그를 분석하여 서비스 도메인을 먼저 확인할 수 있다(S105). 이때, 본 발명의 음성 합성 장치(240)는 도메인(domain)으로 지정된 태그를 확인하여 서비스 도메인을 확인할 수 있다.
그리고, 본 발명의 음성 합성 장치(240)는 서비스 도메인의 음성 데이터베이스에서 입력된 텍스트의 문자 유닛에 대응하는 음성 유닛을 추출한다(S107).
이때, 본 발명의 음성 합성 장치(240)는 문자 유닛에 대응하여 또 다른 태그가 존재할 경우, 태그를 확인하여 또 다른 서비스 도메인의 음성 데이터베이스에서 음성 유닛을 추출할 수 있다.
그리고, 본 발명의 음성 합성 장치(240)는 추출된 음성 유닛을 결합하여 합성음을 생성하게 된다(S109). 이때 본 발명의 음성 합성 장치(240)는 추출된 음성 유닛 간의 운율을 고려하여 합성음을 생성할 수 있으며, 서로 다른 서비스 도메인의 음성 데이터베이스에서 추출된 음성 유닛이 있을 경우, 기준 서비스 도메인의 음성 데이터베이스의 운율을 중심으로 합성음을 생성할 수 있다. 여기서 기준 서비스 도메인은 도메인(domain) 태그로 지정된 서비스 도메인이 될 수 있다.
이후, 본 발명의 음성 합성 장치(230)는 생성된 합성음을 음향 장치(100)로 제공할 수 있다(S111).
한편, 본 발명의 음성 합성 장치(230)는 서비스 도메인 음성 데이터베이스에서 입력된 텍스트 문자 유닛에 대응하는 음성 유닛이 없을 경우, 범용 음성 데이터베이스에서 음성 유닛을 추출하여 결합하여 합성음을 생성할 수도 있다.
이에 대해 도 5를 참조하여 설명하도록 한다.
도 5는 본 발명의 다른 실시 예에 따른 음성 합성 방법을 설명하기 위한 흐름도이다.
도 2 및 도 5를 참조하면, 본 발명의 음성 합성 장치(240)는 텍스트가 입력되면(S201), 입력된 텍스트를 분석하여 태그를 확인한다(S203). 본 발명의 텍스트는 전체 문장을 구성하는 문자 유닛과 문자 유닛에 대한 속성 정보를 나타내는 태그를 포함할 수 있다. 이러한 텍스트는 ML(Markup Language)의 규칙에 따라 정의될 수 있으며, 본 발명의 음성 합성 장치(240)는 태그를 분석하여 서비스 도메인을 먼저 확인할 수 있다(S205). 이때, 본 발명의 음성 합성 장치(240)는 도메인(domain)으로 지정된 태그를 확인하여 서비스 도메인을 확인할 수 있다.
그리고, 본 발명의 음성 합성 장치(240)는 서비스 도메인의 음성 데이터베이스에서 입력된 텍스트의 문자 유닛에 대응하는 제1 음성 유닛을 추출한다(S207). 이때, 본 발명의 음성 합성 장치(240)는 문자 유닛에 대응하여 또 다른 태그가 존재할 경우, 태그를 확인하여 또 다른 서비스 도메인의 음성 데이터베이스에서 음성 유닛을 추출할 수 있다.
그리고 텍스트에 해당하는 모든 음성 유닛이 추출되었다면(S209), 합성음 생성 과정을 수행할 수 있으며, 그렇지 않을 경우, 범용 음성 데이터베이스에서 제2 음성 유닛을 추출하게 된다(S209).
예를 들어 설명하면, 입력된 텍스트가 <표 3>과 같다고 가정한다.
<skml domain="weather"> 지금 <sk_addr>서울</sk_addr> 하늘에는 구름이 많고 기온은 영상 1도 입니다. </skml> |
음성 합성 장치(240)는 먼저, 입력된 텍스트의 태그를 분석하여 태그에 대응하는 서비스 도메인을 확인하게 된다.
여기서, 서비스 도메인은 domain 태그를 통해 확인될 수 있으며, <표 3>의 예시에서, 서비스 도메인은 날씨(weather)이다.
그리고, 음성 합성 장치(240)는 확인된 날씨 서비스 도메인 음성 데이터베이스에서 문자 유닛에 대응하는 제1 음성 유닛을 추출하게 된다. 이때, 음성 합성 장치(240)는 문자 유닛을 <표 4>에 도시된 바와 같이 어절 단위로 분석할 수도 있다.
<skml domain="weather"> 지금 <sk_addr>서울</sk_addr> 하늘에는 / 구름이 많고 / 기온은 / 영상 1도 / 입니다 </skml> |
그리고, 음성 합성 장치(240)는 각각의 문자 유닛에 대응하는 제1 음성 유닛을 먼저 날씨 서비스 도메인 음성 데이터베이스에서 확인하게 된다. 즉, '지금', '하늘에는', '구름이 많고', '기온은', '입니다'의 문자 유닛에 대응하는 제1 음성 유닛을 추출할 수 있다.
이때, 음성 합성 장치(240)는 텍스트에 포함된 태그 중 서비스 도메인으로 확인된 태그 이외의 또 다른 서비스 도메인으로 지정된 데이터 태그, 예컨대 주소(addr)가 존재하는 것으로 확인되면, 주소 서비스 도메인 음성 데이터베이스에서 '서울'에 대응하는 음성 유닛을 추출할 수도 있다.
반면, '영상 1도'의 문자 유닛에 대응하는 음성 유닛이 날씨 서비스 도메인 음성 데이터베이스에서 확인되지 않을 경우, 서비스 도메인 음성 데이터베이스에 존재하지 않는 음성 유닛이므로, 범용 음성 데이터베이스에서 제2 음성 유닛을 추출하게 된다(S211).
이를 위해, 음성 합성 장치(240)는 해당 문자 유닛을 음소 단위로 분석하고, 이에 대응하여 음소열 형태로 저장된 음성 유닛을 범용 음성 데이터베이스에서 추출할 수 있다. 즉, 음성 합성 장치(240)는 '영상 1도'를 'ㅇ ㅕ ㅇ ㅅ ㅏ ㅇ ㅇ ㅣ ㄹ ㄷ ㅗ'의 각각의 음소 단위로 분석할 수 있다. 이때, 본 발명의 음성 합성 장치(240)는 숫자를 비롯하여 발음 변환 규칙을 고려하여 음소 단위로 분석할 수 있다. 예컨대, 발음을 고려하여 'ㅇ ㅕ ㅇ ㅅ ㅏ ㅇ ㅇ ㅣ ㄹ ㄸ ㅗ'의 형태로 분석을 할 수 있으며, 이후, 범용 음성 데이터베이스에서 음소열 형태로 저장된 제2 음성 유닛을 추출할 수 있다(S211).
이후, 본 발명의 음성 합성 장치(240)는 제1 음성 유닛 및 제2 음성 유닛을 결합하여(S213), 합성음을 생성할 수 있으며(S217), 이때 본 발명의 음성 합성 장치(240)는 운율을 서로 조정하는 과정을 수행할 수 있다.
즉, 제1 음성 유닛의 경우 유닛에 대응하는 운율이 설정된 상태이지만, 제2 음성 유닛은 음소열 형태로 저장되어 있을 뿐 운율은 설정된 상태가 아니므로, 제1 음성 유닛의 운율, 예컨대 피치에 따라 제2 음성 유닛의 피치를 설정하여(S215) 합성음을 생성함으로써, 보다 더 자연스러운 합성음을 생성할 수 있게 된다.
이상으로 본 발명의 실시 예에 따른 음성 합성 방법에 대해 설명하였다.
상술한 바와 같은 본 발명의 음성 합성 방법은 컴퓨터 프로그램 명령어와 데이터를 저장하기에 적합한 컴퓨터로 판독 가능한 매체의 형태로 제공될 수도 있다.
특히, 본 발명의 컴퓨터 프로그램은 복수 개의 문자 유닛 및 태그로 구성되는 텍스트가 입력되면, 입력된 텍스트에서 상기 태그를 이용하여 서비스 도메인을 확인하는 단계, 확인된 서비스 도메인에 대응하는 서비스 도메인 음성 데이터베이스에서 상기 문자 유닛에 대응하는 음성 유닛을 추출하는 단계 및 상기 추출된 음성 유닛을 결합하여 합성음을 생성하는 단계 등을 실행할 수 있다.
이러한, 컴퓨터 프로그램 명령어와 데이터를 저장하기에 적합한 컴퓨터로 판독 가능한 매체는, 예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM(Compact Disk Read Only Memory), DVD(Digital Video Disk)와 같은 광 기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 및 롬(ROM, Read Only Memory), 램(RAM, Random Access Memory), 플래시 메모리, EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM)과 같은 반도체 메모리를 포함한다. 프로세서와 메모리는 특수 목적의 논리 회로에 의해 보충되거나, 그것에 통합될 수 있다.
또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 본 발명을 구현하기 위한 기능적인(Functional) 프로그램과 이와 관련된 코드 및 코드 세그먼트 등은, 기록매체를 읽어서 프로그램을 실행시키는 컴퓨터의 시스템 환경 등을 고려하여, 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론되거나 변경될 수도 있다.
아울러, 상술한 바와 같은 컴퓨터가 읽을 수 있는 기록매체에 기록된 컴퓨터 프로그램은 상술한 바와 같은 기능을 수행하는 명령어를 포함하며 기록매체를 통해 배포되고 유통되어 특정 장치, 특정 컴퓨터에 읽히어 설치되고 실행됨으로써 전술한 기능들을 실행할 수 있다.
본 명세서는 다수의 특정한 구현물의 세부사항들을 포함하지만, 이들은 어떠한 발명이나 청구 가능한 것의 범위에 대해서도 제한적인 것으로서 이해되어서는 안되며, 오히려 특정한 발명의 특정한 실시형태에 특유할 수 있는 특징들에 대한 설명으로서 이해되어야 한다. 개별적인 실시형태의 문맥에서 본 명세서에 기술된 특정한 특징들은 단일 실시형태에서 조합하여 구현될 수도 있다. 반대로, 단일 실시형태의 문맥에서 기술한 다양한 특징들 역시 개별적으로 혹은 어떠한 적절한 하위 조합으로도 복수의 실시형태에서 구현 가능하다. 나아가, 특징들이 특정한 조합으로 동작하고 초기에 그와 같이 청구된 바와 같이 묘사될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징들은 일부 경우에 그 조합으로부터 배제될 수 있으며, 그 청구된 조합은 하위 조합이나 하위 조합의 변형물로 변경될 수 있다.
마찬가지로, 특정한 순서로 도면에서 동작들을 묘사하고 있지만, 이는 바람직한 결과를 얻기 위하여 도시된 그 특정한 순서나 순차적인 순서대로 그러한 동작들을 수행하여야 한다거나 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안 된다. 특정한 경우, 멀티태스킹과 병렬 프로세싱이 유리할 수 있다. 또한, 상술한 실시형태의 다양한 시스템 컴포넌트의 분리는 그러한 분리를 모든 실시형태에서 요구하는 것으로 이해되어서는 안되며, 설명한 프로그램 컴포넌트와 시스템들은 일반적으로 단일의 소프트웨어 제품으로 함께 통합되거나 다중 소프트웨어 제품에 패키징 될 수 있다는 점을 이해하여야 한다.
본 발명은 음성 합성 방법에 관한 것으로, 더욱 상세하게는 서비스 도메인별로 음성 합성을 위한 음성 데이터베이스를 각각 구축한 상태에서, 입력된 텍스트에 대응하는 서비스 도메인을 확인한 후, 해당 서비스 도메인의 음성 데이터베이스를 기준으로 음성 합성을 수행함으로써, 서비스 분야를 고려하여 보다 더 자연스러운 합성음을 생성할 수 있으며, 이를 통해 본 발명은 음성 인식, 인공 지능, 멀티미디어 컨텐츠 산업 등 다양한 산업상 이용 가능성이 충분하다.
100: 음향 장치 200: 음성 합성 시스템
210: 인터페이스 장치 220: 음성 인식 장치
230: 자연어 처리 장치 240: 음성 합성 장치
241: 텍스트 분석부 242: 유닛 추출부
243: 합성음 생성부 244: 합성음 출력부
245: 음성 데이터베이스
245a: 서비스 도메인 음성 데이터베이스
245b: 범용 음성 데이터베이스
300: 통신망
210: 인터페이스 장치 220: 음성 인식 장치
230: 자연어 처리 장치 240: 음성 합성 장치
241: 텍스트 분석부 242: 유닛 추출부
243: 합성음 생성부 244: 합성음 출력부
245: 음성 데이터베이스
245a: 서비스 도메인 음성 데이터베이스
245b: 범용 음성 데이터베이스
300: 통신망
Claims (11)
- 서비스 도메인에 대응하여 운율이 설정된 음성 유닛을 저장하는 복수 개의 서비스 도메인 음성 데이터베이스 및 운율이 설정되지 않은 음소열의 집합인 음성 유닛을 저장하는 범용 음성 데이터베이스를 포함하는 음성 합성 장치에 있어서,
상기 음성 합성 장치는
복수 개의 문자 유닛 및 태그로 구성되는 텍스트가 입력되면, 입력된 텍스트에서 상기 태그를 이용하여 서비스 도메인을 확인하는 텍스트 분석부;
상기 텍스트 분석부를 통해 확인된 서비스 도메인에 대응하는 서비스 도메인 음성 데이터베이스에서 상기 문자 유닛에 대응하는 음성 유닛을 추출하는 유닛 추출부; 및
상기 추출된 음성 유닛의 운율을 고려하여 합성음을 생성하는 합성음 생성부;를 포함하고,
상기 합성음 생성부는
복수의 서비스 도메인 음성 데이터베이스에서 추출된 음성 유닛이 존재하는 경우, 상기 복수의 서비스 도메인 음성 데이터베이스 중 도메인 태그로 지정된 서비스 도메인에 해당하는 서비스 도메인 음성 데이터베이스에서 추출된 음성 유닛의 운율에 맞춰 데이터 태그로 지정된 서비스 도메인에서 추출된 다른 음성 유닛의 운율을 조정하여 합성음을 생성하고,
서비스 도메인 음성 데이터베이스에서 추출된 제1 음성 유닛과 범용 음성 데이터베이스에서 추출된 제2 음성 유닛을 결합하는 경우, 상기 제1 음성 유닛의 운율에 맞춰 제2 음성 유닛의 운율을 조정하여 합성음을 생성하되, 복수의 서비스 도메인 음성 데이터베이스에서 상기 제1 음성 유닛이 추출되면 상기 제2 음성 유닛의 운율을 상기 제2 음성 유닛의 앞뒤에 위치하는 제1 음성 유닛의 운율을 고려하여 설정하는 것을 특징으로 하는 음성 합성 장치. - 제1항에 있어서,
상기 텍스트 분석부는
상기 태그 중 도메인 태그를 이용하여 서비스 도메인을 확인하는 것을 특징으로 하는 음성 합성 장치. - 제1항에 있어서,
상기 유닛 추출부는
상기 텍스트에서 특정 문자 유닛에 대응하여 서비스 도메인으로 지정된 데이터 태그가 존재하는 경우, 상기 데이터 태그에 대응하는 서비스 도메인 음성 데이터베이스에서, 상기 특정 문자 유닛에 대응하는 음성 유닛을 추출하는 것을 특징으로 하는 음성 합성 장치. - 제1항에 있어서,
상기 유닛 추출부는
상기 서비스 도메인 음성 데이터베이스에서 추출되지 못한 문자 유닛이 존재할 경우, 상기 범용 음성 데이터베이스에서 해당 문자 유닛에 대응하는 음소 유닛을 추출하는 것을 특징으로 하는 음성 합성 장치. - 삭제
- 삭제
- 삭제
- 서비스 도메인에 대응하여 운율이 설정된 음성 유닛을 저장하는 복수 개의 서비스 도메인 음성 데이터베이스 및 운율이 설정되지 않은 음소열의 집합인 음성 유닛을 저장하는 범용 음성 데이터베이스를 포함하는 음성 합성 장치에서의 음성 합성 방법에 있어서,
상기 음성 합성 장치가
복수 개의 문자 유닛 및 태그로 구성되는 텍스트가 입력되면, 입력된 텍스트에서 상기 태그를 이용하여 서비스 도메인을 확인하는 단계;
확인된 서비스 도메인에 대응하는 서비스 도메인 음성 데이터베이스에서 상기 문자 유닛에 대응하는 음성 유닛을 추출하는 단계; 및
상기 추출된 음성 유닛의 운율을 고려하여 합성음을 생성하는 단계;를 포함하고,
상기 합성음을 생성하는 단계는
복수의 서비스 도메인 음성 데이터베이스에서 추출된 음성 유닛이 존재하는 경우, 상기 복수의 서비스 도메인 음성 데이터베이스 중 도메인 태그로 지정된 서비스 도메인에 해당하는 서비스 도메인 음성 데이터베이스에서 추출된 음성 유닛의 운율에 맞춰 데이터 태그로 지정된 서비스 도메인에서 추출된 다른 음성 유닛의 운율을 조정하여 합성음을 생성하고,
서비스 도메인 음성 데이터베이스에서 추출된 제1 음성 유닛과 범용 음성 데이터베이스에서 추출된 제2 음성 유닛을 결합하는 경우, 상기 제1 음성 유닛의 운율에 맞춰 제2 음성 유닛의 운율을 조정하여 합성음을 생성하되, 복수의 서비스 도메인 음성 데이터베이스에서 상기 제1 음성 유닛이 추출되면 상기 제2 음성 유닛의 운율을 상기 제2 음성 유닛의 앞뒤에 위치하는 제1 음성 유닛의 운율을 고려하여 설정하는 것을 특징으로 하는 음성 합성 방법. - 제8항에 있어서,
상기 음성 유닛을 추출하는 단계 이후에,
상기 서비스 도메인 음성 데이터베이스에서 추출되지 못한 문자 유닛이 존재하는 지 여부를 판단하는 단계; 및
추출되지 못한 문자 유닛이 존재할 경우, 운율이 설정되지 않은 음소열의 집합인 음성 유닛을 저장하는 범용 음성 데이터베이스에서 상기 문자 유닛에 대응하는 음소 유닛을 추출하는 단계;
를 더 포함하는 것을 특징으로 하는 음성 합성 방법. - 삭제
- 제8항 내지 제9항 중 어느 하나의 항에 기재된 음성 합성 방법을 실행하는 프로그램을 기록한 컴퓨터 판독 가능한 기록매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170029966A KR102376552B1 (ko) | 2017-03-09 | 2017-03-09 | 음성 합성 장치 및 음성 합성 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170029966A KR102376552B1 (ko) | 2017-03-09 | 2017-03-09 | 음성 합성 장치 및 음성 합성 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180103273A KR20180103273A (ko) | 2018-09-19 |
KR102376552B1 true KR102376552B1 (ko) | 2022-03-17 |
Family
ID=63719085
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170029966A KR102376552B1 (ko) | 2017-03-09 | 2017-03-09 | 음성 합성 장치 및 음성 합성 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102376552B1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020171545A1 (en) * | 2019-02-19 | 2020-08-27 | Samsung Electronics Co., Ltd. | Electronic device and system for processing user input and method thereof |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080065383A1 (en) * | 2006-09-08 | 2008-03-13 | At&T Corp. | Method and system for training a text-to-speech synthesis system using a domain-specific speech database |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100669241B1 (ko) * | 2004-12-15 | 2007-01-15 | 한국전자통신연구원 | 화행 정보를 이용한 대화체 음성합성 시스템 및 방법 |
US8600753B1 (en) * | 2005-12-30 | 2013-12-03 | At&T Intellectual Property Ii, L.P. | Method and apparatus for combining text to speech and recorded prompts |
KR20100003574A (ko) * | 2008-07-01 | 2010-01-11 | 엘지전자 주식회사 | 음성음원정보 생성 장치 및 시스템, 그리고 이를 이용한음성음원정보 생성 방법 |
KR101097186B1 (ko) | 2010-03-03 | 2011-12-22 | 미디어젠(주) | 대화체 앞뒤 문장정보를 이용한 다국어 음성합성 시스템 및 방법 |
-
2017
- 2017-03-09 KR KR1020170029966A patent/KR102376552B1/ko active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080065383A1 (en) * | 2006-09-08 | 2008-03-13 | At&T Corp. | Method and system for training a text-to-speech synthesis system using a domain-specific speech database |
Also Published As
Publication number | Publication date |
---|---|
KR20180103273A (ko) | 2018-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111667814B (zh) | 一种多语种的语音合成方法及装置 | |
EP3994683B1 (en) | Multilingual neural text-to-speech synthesis | |
KR102582291B1 (ko) | 감정 정보 기반의 음성 합성 방법 및 장치 | |
CN101030368B (zh) | 在保持情感的同时跨通道进行通信的方法和系统 | |
JP5598998B2 (ja) | 音声翻訳システム、第一端末装置、音声認識サーバ装置、翻訳サーバ装置、および音声合成サーバ装置 | |
US8594995B2 (en) | Multilingual asynchronous communications of speech messages recorded in digital media files | |
CN110473546B (zh) | 一种媒体文件推荐方法及装置 | |
US20210210100A1 (en) | Voice command processing for locked devices | |
KR102097710B1 (ko) | 대화 분리 장치 및 이에서의 대화 분리 방법 | |
US11093110B1 (en) | Messaging feedback mechanism | |
US9412359B2 (en) | System and method for cloud-based text-to-speech web services | |
KR20180046780A (ko) | 이중 웨이크업을 이용한 음성 인식 서비스 제공 방법 및 이를 위한 장치 | |
CN111161695B (zh) | 歌曲生成方法和装置 | |
CN113327580A (zh) | 语音合成方法、装置、可读介质及电子设备 | |
US20240087562A1 (en) | Interactive content output | |
US20080162559A1 (en) | Asynchronous communications regarding the subject matter of a media file stored on a handheld recording device | |
KR102312993B1 (ko) | 인공신경망을 이용한 대화형 메시지 구현 방법 및 그 장치 | |
US11056103B2 (en) | Real-time utterance verification system and method thereof | |
CN112927677A (zh) | 语音合成方法和装置 | |
KR102376552B1 (ko) | 음성 합성 장치 및 음성 합성 방법 | |
KR20190048371A (ko) | 음성 합성 장치 및 상기 음성 합성 장치에서의 음성 합성 방법 | |
CN117597728A (zh) | 使用未完全训练的文本到语音模型的个性化和动态的文本到语音声音克隆 | |
JP2004347732A (ja) | 言語自動識別方法及び装置 | |
CN111489742A (zh) | 声学模型训练方法、语音识别方法、装置及电子设备 | |
KR102574311B1 (ko) | 음성 합성 서비스를 제공하는 장치, 단말기 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
X091 | Application refused [patent] | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) | ||
GRNT | Written decision to grant |