KR20230065022A - 음성을 합성하는 서버, 방법 및 컴퓨터 프로그램 - Google Patents

음성을 합성하는 서버, 방법 및 컴퓨터 프로그램 Download PDF

Info

Publication number
KR20230065022A
KR20230065022A KR1020210150779A KR20210150779A KR20230065022A KR 20230065022 A KR20230065022 A KR 20230065022A KR 1020210150779 A KR1020210150779 A KR 1020210150779A KR 20210150779 A KR20210150779 A KR 20210150779A KR 20230065022 A KR20230065022 A KR 20230065022A
Authority
KR
South Korea
Prior art keywords
data
value
voice
sequence information
synthesis
Prior art date
Application number
KR1020210150779A
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 KR1020210150779A priority Critical patent/KR20230065022A/ko
Publication of KR20230065022A publication Critical patent/KR20230065022A/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/02Methods for producing synthetic speech; Speech synthesisers
    • G10L13/04Details of speech synthesis systems, e.g. synthesiser structure or memory management
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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
    • G10L13/10Prosody rules derived from text; Stress or intonation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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

Abstract

음성을 합성하는 서버는 음성 합성 모델에 기초하여 캐시 대상 데이터에 대한 발음열 정보, 발음열 정보에 대한 어텐션 값 및 어텐션 값에 대한 스펙토그램 값을 도출하고, 발음열 정보, 어텐션 값 및 스펙토그램 값을 이용하여 캐싱 데이터를 생성하는 캐싱부 및 음성 합성 모델을 통해 캐싱 데이터를 이용하여 합성 요청 데이터에 대한 음성 데이터를 합성하는 음성 합성부를 포함할 수 있다.

Description

음성을 합성하는 서버, 방법 및 컴퓨터 프로그램{SERVER, METHOD AND COMPUTER PROGRAM FOR SYNTHESIZING VOICE}
본 발명은 음성을 합성하는 서버, 방법 및 컴퓨터 프로그램에 관한 것이다.
최근 들어, 음성 인식 기술의 발전과 함께 음성 합성 기술은 각종 음성 안내, 교육 분야 등에 널리 사용되고 있다.
음성 합성 기술은 사용자에게 제공해야 하는 텍스트 정보를 음성으로 변환하는 기술이다. 이러한 음성 합성 기술을 구현하기 위해서는 텍스트 정보를 분석하고, 분석된 텍스트 정보에 음성 데이터를 합성함으로써 텍스트에 해당하는 음성 데이터를 생성한다.
최근 음성 발화를 제공하는 시스템에서는 딥러닝 기반의 음성합성 기술을 이용하는 경우가 많다. 딥러닝 기반의 음성합성 기술은 보다 적은 데이터를 이용하여 더 나은 품질의 음성 데이터를 생성하지만, 이전 음성합성 기술에 비해 음성 합성 시간에 상당한 시간이 소요된다는 단점이 있다.
이러한 문제점을 해결하기 위해, 최근 음성 합성 시스템은 음성 합성의 효율화를 위해 캐쉬 기능을 이용하였다.
도 1a를 참조하면, 복수의 사용자 단말(20)로부터 동일한 문장에 대하여 반복적으로 음성 합성 요청이 들어온 경우, 음성 합성 서버(10)는 동일 문장에 대한 음성을 합성한 후, 합성된 음성 데이터를 별도의 캐시 서버(30)에 저장한다. 이후, 사용자 단말로부터 동일한 문장에 대한 음성 합성 요청이 수신되면, 음성 합성 서버(10)는 캐시 서버(30)에서 해당 문장에 대한 음성 데이터를 검색하여 이를 사용자 단말에게 전달한다. 이러한, 음성 합성 시스템의 구조는 캐시 서버의 성능 및 안정성에 따라 음성 합성 서비스의 성능 및 안정성이 제한된다는 한계가 있다.
이와 같은 문제를 해결하기 위해, 도 1b를 참조하면, 복수의 음성 합성 서버(10)마다 개별 캐시 장치(30)를 설치함으로써 음성 합성 서비스의 성능을 향상시킬 수 있다. 이 때, 개별 캐시 장치(32)는 도 1a의 캐시 서버(30)와 같이 문장에 대하여 음성이 합성된 음성 데이터를 저장한다.
이러한, 음성 합성 시스템을 통한 음성 합성 서비스는 모두 문장이 동일하거나 특정 단어를 변경하는 형태의 변형만 가능하다. 특정 단어만 변경하는 경우, 소리와 소리를 이어붙이는 형태로 음성 합성이 이루어지기 때문에 전체 문장의 발화와 이질적일 수 밖에 없다. 이는 음성 합성 서비스의 품질을 저하시키는 요인이 된다.
한국등록특허공보 제10-1300839호 (2013.08.21. 등록)
본 발명은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 음성 합성 모델에 기초하여 캐시 대상 데이터에 대한 발음열 정보, 해당 발음열 정보에 대한 어텐션 값과, 해당 어텐션 값에 대한 스펙토그램 값을 이용하여 캐싱 데이터를 생성하고, 생성된 캐싱 데이터를 이용하여 음성 합성 모델을 통해 합성 요청 데이터에 대한 음성 데이터를 합성하고자 한다.
다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 제 1 측면에 따른 음성을 합성하는 서버는 음성 합성 모델에 기초하여 캐시 대상 데이터에 대한 발음열 정보, 상기 발음열 정보에 대한 어텐션 값 및 상기 어텐션 값에 대한 스펙토그램 값을 도출하고, 상기 발음열 정보, 상기 어텐션 값 및 상기 스펙토그램 값을 이용하여 캐싱 데이터를 생성하는 캐싱부; 및 상기 음성 합성 모델을 통해 상기 캐싱 데이터를 이용하여 합성 요청 데이터에 대한 음성 데이터를 합성하는 음성 합성부를 포함할 수 있다.
본 발명의 제 2 측면에 따른 음성 합성 서버에 의해 수행되는 음성 합성 방법은 음성 합성 모델에 기초하여 캐시 대상 데이터에 대한 발음열 정보, 상기 발음열 정보에 대한 어텐션 값 및 상기 어텐션 값에 대한 스펙토그램 값을 도출하는 단계; 상기 발음열 정보, 상기 어텐션 값 및 상기 스펙토그램 값을 이용하여 캐싱 데이터를 생성하는 단계; 및 상기 음성 합성 모델을 통해 상기 캐싱 데이터를 이용하여 합성 요청 데이터에 대한 음성 데이터를 합성하는 단계를 포함할 수 있다.
본 발명의 제 3 측면에 따른 음성을 합성하는 명령어들의 시퀀스를 포함하는 컴퓨터 판독가능 기록매체에 저장된 컴퓨터 프로그램은 컴퓨팅 장치에 의해 실행될 경우, 음성 합성 모델에 기초하여 캐시 대상 데이터에 대한 발음열 정보, 상기 발음열 정보에 대한 어텐션 값 및 상기 어텐션 값에 대한 스펙토그램 값을 도출하고, 상기 발음열 정보, 상기 어텐션 값 및 상기 스펙토그램 값을 이용하여 캐싱 데이터를 생성하고, 상기 음성 합성 모델을 통해 상기 캐싱 데이터를 이용하여 합성 요청 데이터에 대한 음성 데이터를 합성하는 명령어들의 시퀀스를 포함할 수 있다.
상술한 과제 해결 수단은 단지 예시적인 것으로서, 본 발명을 제한하려는 의도로 해석되지 않아야 한다. 상술한 예시적인 실시예 외에도, 도면 및 발명의 상세한 설명에 기재된 추가적인 실시예가 존재할 수 있다.
전술한 본 발명의 과제 해결 수단 중 어느 하나에 의하면, 본 발명은 음성 합성 모델에 기초하여 캐시 대상 데이터에 대한 발음열 정보, 해당 발음열 정보에 대한 어텐션 값과, 해당 어텐션 값에 대한 스펙토그램 값을 이용하여 캐싱 데이터를 생성하고, 생성된 캐싱 데이터를 이용하여 음성 합성 모델을 통해 합성 요청 데이터에 대한 음성 데이터를 합성할 수 있다.
이를 통해, 본 발명은 음성합성을 위해 반복적으로 중복 계산되는 계산량을 줄일 수 있고, 이에 따라 음성 합성의 속도를 개선할 수 있다. 또한, 본 발명은 이와 같은 방법을 통해 보다 나은 품질의 음성 합성 서비스를 제공할 수 있다.
도 1a 내지 1b는 캐시를 이용한 종래의 음성 합성 시스템을 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른, 음성 합성 서버의 블록도이다.
도 3a 내지 3b는 본 발명의 일 실시예에 따른, 캐싱 데이터를 생성하는 방법을 설명하기 위한 도면이다.
도 4a 내지 4d는 종래의 음성 합성 방법 및 본 발명의 음성 합성 방법을 비교 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른, 음성을 합성하는 방법을 나타낸 흐름도이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 명세서에 있어서 '부(部)'란, 하드웨어에 의해 실현되는 유닛(unit), 소프트웨어에 의해 실현되는 유닛, 양방을 이용하여 실현되는 유닛을 포함한다. 또한, 1 개의 유닛이 2 개 이상의 하드웨어를 이용하여 실현되어도 되고, 2 개 이상의 유닛이 1 개의 하드웨어에 의해 실현되어도 된다.
본 명세서에 있어서 단말 또는 디바이스가 수행하는 것으로 기술된 동작이나 기능 중 일부는 해당 단말 또는 디바이스와 연결된 서버에서 대신 수행될 수도 있다. 이와 마찬가지로, 서버가 수행하는 것으로 기술된 동작이나 기능 중 일부도 해당 서버와 연결된 단말 또는 디바이스에서 수행될 수도 있다.
이하, 첨부된 구성도 또는 처리 흐름도를 참고하여, 본 발명의 실시를 위한 구체적인 내용을 설명하도록 한다.
도 2는 본 발명의 일 실시예에 따른, 음성 합성 서버의 블록도이다.
도 2를 참조하면, 음성 합성 서버(100)는 캐싱부(200), 음성 합성부(210) 및 동일 구간 도출부(220)를 포함할 수 있다. 다만, 도 2에 도시된 음성 합성 서버(100)는 본 발명의 하나의 구현 예에 불과하며, 도 2에 도시된 구성요소들을 기초로 하여 여러 가지 변형이 가능하다.
이하에서는 도 3a 내지 3b를 함께 참조하여 도 2를 설명하기로 한다.
캐싱부(200)는 음성 합성 모델에 기초하여 복수의 캐시 대상 데이터별로 각 캐시 대상 데이터에 대한 발음열 정보, 발음열 정보에 대한 어텐션 값 및 어텐션 값에 대한 스펙토그램 값을 도출할 수 있다. 여기서, 발음열 정보는 예를 들면, 캐시 대상 데이터에 해당하는 텍스트를 캐릭터화된 발음열에 대한 정보일 수 있고, 캐릭터 발음열 정보를 벡터화한 임베딩 벡터일 수도 있다.
캐싱부(200)는 복수의 캐시 대상 데이터별로 발음열 정보, 발음열 정보에 대한 어텐션 값 및 어텐션 값에 대한 스펙토그램 값을 이용하여 캐시 대상 데이터에 대한 캐싱 데이터를 생성할 수 있다.
예를 들어, 도 3a 및 도 3b를 함께 참조하면, 캐싱부(200)는 제 1 캐시 대상 데이터에 해당하는 텍스트(예컨대, 밥 먹었어)를 발음열(예컨대, [밥 머거써?])로 변환할 수 있다.
이어서, 캐싱부(200)는 변환된 발음열(예컨대, [밥 머거써?])을 캐릭터(예컨대, [ㅂ ㅏ ㅂ # ㅁ ㅓ ㄱ ㅓ ㅆ ㅓ])로 나열하고, 각 캐릭터를 임베딩 벡터(예컨대, [5 9 5 1 3 8 2 8 20 8])로 변환할 수 있다.
이어서, 캐싱부(200)는 각 캐릭터의 임베딩 벡터 간의 유사성에 기초하여 어텐션 값(A1)을 계산할 수 있다.
이어서, 캐싱부(200)는 각 캐릭터의 어텐션 값을 스펙트로그램 값(S2)으로 변경할 수 있다. 예를 들어, 캐싱부(200)는 각 캐릭터의 어텐션 값을 기반으로 각 프레임을 디코딩함으로써 프레임별 스펙트로그램 값을 생성할 수 있다.
캐싱부(200)는 제 1 캐시 대상 데이터에 대한 발음열 정보, 어텐션 값(A1) 및 스펙토그램 값(S2)을 포함한 제 1 캐싱 데이터(301)를 캐시 메모리(300)에 저장할 수 있다. 여기서, 제 1 캐시 대상 데이터에 대한 발음열 정보는 제 1 캐시 대상 데이터의 캐릭터 정보인 [ㅂ ㅏ ㅂ # ㅁ ㅓ ㄱ ㅓ ㅆ ㅓ] 또는/ 및 각 캐릭터의 임베딩 벡터인 [5 9 5 1 3 8 2 8 20 8]를 포함할 수 있다.
여기서, 캐시 메모리(300)는 음성 합성 서버(100) 내에 캐싱 데이터를 저장할 수 있는 소규모의 별도 메모리 시스템일 수 있다. 캐시 메모리(300)는 예를 들어, 하나의 큰 캐시 또는 복수의 작은 독립된 캐시들로 구성될 수도 있다. 캐시 메모리(300)는 예를 들어, 다이내믹 메모리 또는 고정형 메모리로서 구현될 수 있다.
캐싱부(200)는 각 캐시 대상 데이터의 어텐션 값을 키(Key)값으로 설정하고, 스펙토그램 값을 벨류(Value)값으로 설정함으로써 각 캐시 대상 데이터별 캐싱 데이터를 생성할 수 있다.
음성 합성부(210)는 음성 합성 서버(100) 내 캐시 메모리에 저장된 복수의 캐싱 데이터 중 특정 캐싱 데이터를 이용하여 사용자 단말로부터 요청된 합성 요청 데이터에 대한 음성 데이터를 합성할 수 있다. 여기서, 음성 합성 모델은 캐싱 데이터의 발음열 정보 및 합성 요청 데이터 간의 발음열 정보에서 동일한 구간에 해당하는 부분 발음열 정보와, 부분 발음열 정보에 매핑된 부분 어텐션 값 및 부분 스펙트로그래 값을 이용하여 합성 요청 데이터에 대한 음성 데이터를 합성할 수 있다.
음성 합성부(210)는 캐시 메모리에 저장된 복수의 캐싱 데이터 중 합성 요청 데이터의 발음열 정보와 일부 일치하는 특정 캐싱 데이터를 선택할 수 있다.
동일 구간 도출부(220)는 선택된 특정 캐싱 데이터의 발음열 정보 및 합성 요청 데이터의 발음열 정보를 비교하여 동일한 구간에 해당하는 부분 발음열 정보를 도출할 수 있다.
예를 들어, 사용자 단말로부터 요청된 합성 요청 데이터가 '밥 먹었니?'이고, 캐시 메모리에 제 1 캐싱 대상 데이터(예컨대, '밥 먹었어?')에 대한 제 1 캐싱 데이터가 저장되어 있는 경우, 동일 구간 도출부(220)는 제 1 캐싱 데이터의 발음열 정보 및 합성 요청 데이터의 발음열 정보에서 동일한 구간에 해당하는 '밥 먹었'을 검색할 수 있다. 이어서, 동일 구간 도출부(220)는 제 1 캐싱 데이터로부터 동일한 구간에 해당하는 '밥 먹었'의 부분 발음열 정보를 도출할 수 있다.
음성 합성부(210)는 캐싱 데이터로부터 부분 발음열 정보에 해당하는 부분 어텐션 값을 추출하고, 캐싱 데이터로부터 부분 어텐션 값과 매핑된 부분 스펙토그램 값을 추출할 수 있다.
예를 들어, 음성 합성부(210)는 제 1 캐싱 데이터로부터 '밥 먹었'의 부분 발음열 정보에 매핑된 부분 어텐션 값 및 부분 스펙토그램 값을 추출할 수 있다.
음성 합성부(210)는 추출된 부분 어텐션 값 및 추출된 부분 스펙토그램 값을 통해 음성 합성 모델을 업데이트시킬 수 있다.
음성 합성부(210)는 업데이트된 음성 합성 모델에 기초하여 합성 요청 데이터의 발음열 정보로부터 부분 발음열 정보를 제외한 구간에 대해 음성 데이터를 합성할 수 있다. 여기서, 합성된 음성 데이터는 캐시 서버에 의해 별도의 캐싱 데이터를 생성하기 위해 이용될 수 있다.
예를 들어, 음성 합성부(210)는 합성 요청 데이터인 '밥 먹었니?'에서 제 1 캐싱 데이터와 동일 구간에 해당하는 '밥 먹었'을 제외한 '니' 대해 음성 데이터를 합성할 수 있다.
이후, 음성 합성부(210)는 '밥 먹었'의 부분 발음열 정보에 대한 이전 음성 데이터 및 '니'에 대해 음성 데이터를 결합하여 합성 요청 데이터인 '밥 먹었니'에 대한 최종 음성 데이터를 생성할 수 있다.
한편, 당업자라면, 캐싱부(200), 음성 합성부(210) 및 동일 구간 도출부(220) 각각이 분리되어 구현되거나, 이 중 하나 이상이 통합되어 구현될 수 있음을 충분히 이해할 것이다.
도 4a 내지 4d는 종래의 음성 합성 방법 및 본 발명의 음성 합성 방법을 비교 설명하기 위한 도면이다. 도 4a는 합성 요청 데이터에 해당하는 제 1 문장(40) 및 제 2 문장(42)을 표시한 도면이고, 도 4b는 도 4a에 도시된 합성 요청 데이터에 대한 종래의 음성 합성 방법을 나타낸 흐름도이고, 도 4c는 도 4a에 도시된 합성 요청 데이터에 대한 본 발명의 음성 합성 방법을 나타낸 흐름도이다. 도 4d는 본 발명의 음성 합성 방법에 이용되는 캐싱 데이터의 일부를 나타낸 도면이다.
도 1a, 도 4a 및 도 4b를 함께 참조하면, 단계 S400에서 캐시 서버(30)는 사용자 단말(20-1)로부터 제 1 문장(40 ,'오늘 서울시 양재동 날씨는 흐림입니다')에 대한 음성 데이터의 합성 요청을 수신할 수 있다.
단계 S402에서 캐시 서버(30)는 제 1 문장(40)에 대한 음성 데이터의 검색을 수행하여 제 1 문장(40)에 대한 음성 데이터가 검색되면, 단계 S404에서 사용자 단말(20-1)에게 검색된 제 1 문장(40)에 대한 음성 데이터를 전송할 수 있다.
단계 S406에서 캐시 서버(30)는 제 1 문장(40)에 대한 음성 데이터가 검색되지 않은 경우, 음성 합성 서버(10)에게 제 1 문장(40)에 대한 음성 데이터의 합성을 요청할 수 있다.
단계 S408에서 음성 합성 서버(10)는 캐시 서버(30)로부터 수신된 제 1 문장(40)에 대한 음성 데이터의 합성 요청에 따라 제 1 문장(40)에 대한 음성 데이터를 합성할 수 있다.
단계 S410에서 음성 합성 서버(10)는 합성된 제 1 문장(40)에 대한 음성 데이터를 캐시 서버(30)에게 전송할 수 있다.
단계 S412에서 캐시 서버(30)는 음성 합성 서버(10)로부터 수신된 제 1 문장(40)에 대한 음성 데이터를 저장하고, 제 1 문장(40)에 대한 음성 데이터를 사용자 단말(20-1)에게 전송할 수 있다.
단계 S414에서 캐시 서버(30)는 사용자 단말(20-1)로부터 제 2 문장(42, '오늘 서울시 양재동 날씨는 맑음입니다')에 대한 음성 데이터의 합성 요청을 수신할 수 있다.
단계 S416에서 캐시 서버(30)는 제 2 문장(42)에 대한 음성 데이터의 검색을 수행하여 제 2 문장(42)에 대한 음성 데이터가 검색되면, 단계 S418에서 사용자 단말(20-1)에게 검색된 제 2 문장(42)에 대한 음성 데이터를 전송할 수 있다.
단계 S420에서 캐시 서버(30)는 제 2 문장(42)에 대한 음성 데이터가 검색되지 않은 경우, 음성 합성 서버(10)에게 제 2 문장(42)에 대한 음성 데이터의 합성을 요청할 수 있다.
단계 S422에서 음성 합성 서버(10)는 캐시 서버(30)로부터 수신된 제 2 문장(42)에 대한 음성 데이터의 합성 요청에 따라 제 2 문장(42)에 대한 음성 데이터를 합성할 수 있다.
단계 S424에서 음성 합성 서버(10)는 합성된 제 2 문장(42)에 대한 음성 데이터를 캐시 서버(30)에게 전송할 수 있다.
단계 S426에서 캐시 서버(30)는 음성 합성 서버(10)로부터 수신된 제 2 문장(42)에 대한 음성 데이터를 저장하고, 제 2 문장(42)에 대한 음성 데이터를 사용자 단말(20-1)에게 전송할 수 있다.
도 4a, 도 4c 및 도 4d를 함께 참조하면, 단계 S401에서 캐시 서버(110)는 사용자 단말(120)로부터 제 1 문장(40, '오늘 서울시 양재동 날씨는 흐림입니다')에 대한 음성 데이터의 합성 요청을 수신할 수 있다.
단계 S403에서 캐시 서버(110)는 제 1 문장(40)에 대한 음성 데이터의 검색을 수행하여 제 1 문장(40)에 대한 음성 데이터가 검색되면, 단계 S405에서 사용자 단말(120)에게 검색된 제 1 문장(40)에 대한 음성 데이터를 전송할 수 있다.
단계 S407에서 캐시 서버(110)는 제 1 문장(40)에 대한 음성 데이터가 검색되지 않은 경우, 음성 합성 서버(100)에게 제 1 문장(40)에 대한 음성 데이터의 합성을 요청할 수 있다.
단계 S409에서 음성 합성 서버(100)는 캐시 서버(110)로부터 수신된 제 1 문장(40)에 대한 음성 데이터의 합성 요청에 따라 제 1 문장(40)에 대한 음성 데이터를 합성할 수 있다.
단계 S411에서 음성 합성 서버(100)는 합성된 제 1 문장(40)에 대한 음성 데이터를 캐시 서버(110)에게 전송할 수 있다.
단계 S413에서 캐시 서버(110)는 음성 합성 서버(100)로부터 수신된 제 1 문장(40)에 대한 음성 데이터를 저장하고, 제 1 문장(40)에 대한 음성 데이터를 사용자 단말(120)에게 전송할 수 있다.
단계 S415에서 캐시 서버(110)는 사용자 단말(120)로부터 제 2 문장(42 , '오늘 서울시 양재동 날씨는 맑음입니다')에 대한 음성 데이터의 합성 요청을 수신할 수 있다.
단계 S417에서 캐시 서버(110)는 제 2 문장(42)에 대한 음성 데이터의 검색을 수행하여 제 2 문장(42)에 대한 음성 데이터가 검색되면, 단계 S419에서 사용자 단말(120)에게 검색된 제 2 문장(42)에 대한 음성 데이터를 전송할 수 있다.
단계 S421에서 캐시 서버(110)는 제 2 문장(42)에 대한 음성 데이터가 검색되지 않은 경우, 음성 합성 서버(100)에게 제 2 문장(42)에 대한 음성 데이터의 합성을 요청할 수 있다.
단계 S423에서 음성 합성 서버(100)는 제 2 문장(42)의 발음열 정보 및 캐싱 데이터의 발음열 정보를 비교하여 동일한 구간('오늘 서울시 양재동 날씨는')에 해당하는 부분 발음열 정보('[5 9 5 1 3 8 2 8 20 8]')를 도출할 수 있다.
단계 S425에서 음성 합성 서버(100)는 캐싱 데이터로부터 부분 발음열 정보('[5 9 5 1 3 8 2 8 20 8]')에 해당하는 부분 어텐션 값('[100 21 35 21 53 218 23 58 120 98]')을 추출할 수 있다.
단계 S427에서 음성 합성 서버(100)는 캐싱 데이터로부터 부분 어텐션 값('[100 21 35 21 53 218 23 58 120 98]')과 매핑된 부분 스펙토그램 값('[131 21 30 12 13 218 23 58 120 98]')을 추출할 수 있다.
단계 S429에서 음성 합성 서버(100)는 추출된 부분 어텐션 값('[100 21 35 21 53 218 23 58 120 98]') 및 추출된 부분 스펙토그램 값('[131 21 30 12 13 218 23 58 120 98]')을 통해 음성 합성 모델을 업데이트시킬 수 있다.
단계 S431에서 음성 합성 서버(100)는 업데이트된 음성 합성 모델에 기초하여 제 2 문장(42)의 발음열 정보로부터 부분 발음열 정보('[5 9 5 1 3 8 2 8 20 8]')를 제외한 구간에 대해 음성 데이터를 합성할 수 있다. 또한, 음성 합성 서버(100)는 부분 발음열 정보('[5 9 5 1 3 8 2 8 20 8]')에 해당하는 구간에 대하여 기합성된 음성 데이터 및 부분 발음열 정보('[5 9 5 1 3 8 2 8 20 8]')를 제외한 구간에 대한 합성된 음성 데이터를 연결하여 제 2 문장(42)에 대한 최종 음성 데이터를 생성할 수 있다.
단계 S433에서 음성 합성 서버(100)는 제 2 문장(42)에 대한 최종 음성 데이터를 캐시 서버(110)에게 전송할 수 있다.
단계 S435에서 캐시 서버(110)는 음성 합성 서버(100)로부터 수신된 제 2 문장(42)에 대한 최종 음성 데이터를 저장하고, 제 2 문장(42)에 대한 최종 음성 데이터를 사용자 단말(120)에게 전송할 수 있다.
도 5는 본 발명의 일 실시예에 따른, 음성을 합성하는 방법을 나타낸 흐름도이다.
도 5를 참조하면, 단계 S501에서 음성 합성 서버(100)는 음성 합성 모델에 기초하여 캐시 대상 데이터에 대한 발음열 정보, 발음열 정보에 대한 어텐션 값 및 어텐션 값에 대한 스펙토그램 값을 도출할 수 있다.
단계 S503에서 음성 합성 서버(100)는 발음열 정보, 어텐션 값 및 스펙토그램 값을 이용하여 캐싱 데이터를 생성할 수 있다.
단계 S505에서 음성 합성 서버(100)는 음성 합성 모델을 통해 캐싱 데이터를 이용하여 합성 요청 데이터에 대한 음성 데이터를 합성할 수 있다.
상술한 설명에서, 단계 S501 내지 S505는 본 발명의 구현예에 따라서, 추가적인 단계들로 더 분할되거나, 더 적은 단계들로 조합될 수 있다. 또한, 일부 단계는 필요에 따라 생략될 수도 있고, 단계 간의 순서가 변경될 수도 있다.
본 발명의 일 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
100: 음성 합성 서버
200: 캐싱부
210: 음성 합성부
220: 동일 구간 도출부

Claims (17)

  1. 음성을 합성하는 서버에 있어서,
    음성 합성 모델에 기초하여 캐시 대상 데이터에 대한 발음열 정보, 상기 발음열 정보에 대한 어텐션 값 및 상기 어텐션 값에 대한 스펙토그램 값을 도출하고, 상기 발음열 정보, 상기 어텐션 값 및 상기 스펙토그램 값을 이용하여 캐싱 데이터를 생성하는 캐싱부; 및
    상기 음성 합성 모델을 통해 상기 캐싱 데이터를 이용하여 합성 요청 데이터에 대한 음성 데이터를 합성하는 음성 합성부
    를 포함하는 것인, 음성 합성 서버.
  2. 제 1 항에 있어서,
    상기 캐싱부는 상기 어텐션 값을 키(Key)값으로 설정하고, 상기 스펙토그램 값을 벨류(Value)값으로 설정하여 상기 캐싱 데이터를 생성하는 것인, 음성 합성 서버.
  3. 제 1 항에 있어서,
    상기 합성 요청 데이터의 발음열 정보 및 상기 캐싱 데이터의 발음열 정보를 비교하여 동일한 구간에 해당하는 부분 발음열 정보를 도출하는 동일 구간 도출부
    를 더 포함하는 것인, 음성 합성 서버.
  4. 제 3 항에 있어서,
    상기 음성 합성부는 상기 캐싱 데이터로부터 상기 부분 발음열 정보에 해당하는 부분 어텐션 값을 추출하는 것인, 음성 합성 서버.
  5. 제 4 항에 있어서,
    상기 음성 합성부는 상기 캐싱 데이터로부터 상기 부분 어텐션 값과 매핑된 부분 스펙토그램 값을 추출하는 것인, 음성 합성 서버.
  6. 제 5 항에 있어서,
    상기 음성 합성부는 상기 추출된 부분 어텐션 값 및 상기 추출된 부분 스펙토 그램 값을 통해 상기 음성 합성 모델을 업데이트시키는 것인, 음성 합성 서버.
  7. 제 6 항에 있어서,
    상기 음성 합성부는 상기 업데이트된 음성 합성 모델에 기초하여 상기 합성 요청 데이터의 발음열 정보로부터 상기 부분 발음열 정보를 제외한 구간에 대해 음성 데이터를 합성하는 것인, 음성 합성 서버.
  8. 제 1 항에 있어서,
    상기 합성된 음성 데이터는 별도의 캐싱 데이터를 생성하기 위해 이용되는 것인, 음성 합성서버.
  9. 음성 합성 서버에 의해 수행되는 음성 합성 방법에 있어서,
    음성 합성 모델에 기초하여 캐시 대상 데이터에 대한 발음열 정보, 상기 발음열 정보에 대한 어텐션 값 및 상기 어텐션 값에 대한 스펙토그램 값을 도출하는 단계;
    상기 발음열 정보, 상기 어텐션 값 및 상기 스펙토그램 값을 이용하여 캐싱 데이터를 생성하는 단계; 및
    상기 음성 합성 모델을 통해 상기 캐싱 데이터를 이용하여 합성 요청 데이터에 대한 음성 데이터를 합성하는 단계
    를 포함하는 음성 합성 방법.
  10. 제 9 항에 있어서,
    상기 캐싱 데이터를 생성하는 단계는
    상기 어텐션 값을 키(Key)값으로 설정하고, 상기 스펙토그램 값을 벨류(Value)값으로 설정하여 상기 캐싱 데이터를 생성하는 단계를 포함하는 것인, 음성 합성 방법.
  11. 제 9 항에 있어서,
    상기 합성 요청 데이터의 발음열 정보 및 상기 캐싱 데이터의 발음열 정보를 비교하여 동일한 구간에 해당하는 부분 발음열 정보를 도출하는 단계를 더 포함하는 것인, 음성 합성 방법.
  12. 제 11 항에 있어서,
    상기 합성 요청 데이터에 대한 음성 데이터를 합성하는 단계는
    상기 캐싱 데이터로부터 상기 부분 발음열 정보에 해당하는 부분 어텐션 값을 추출하는 단계를 포함하는 것인, 음성 합성 방법.
  13. 제 12 항에 있어서,
    상기 합성 요청 데이터에 대한 음성 데이터를 합성하는 단계는
    상기 캐싱 데이터로부터 상기 부분 어텐션 값과 매핑된 부분 스펙토그램 값을 추출하는 단계를 더 포함하는 것인, 음성 합성 방법.
  14. 제 13 항에 있어서,
    상기 추출된 부분 어텐션 값 및 상기 추출된 부분 스펙토 그램 값을 통해 상기 음성 합성 모델을 업데이트시키는 단계를 더 포함하는 것인, 음성 합성 방법.
  15. 제 14 항에 있어서,
    상기 합성 요청 데이터에 대한 음성 데이터를 합성하는 단계는
    상기 업데이트된 음성 합성 모델에 기초하여 상기 합성 요청 데이터의 발음열 정보로부터 상기 부분 발음열 정보를 제외한 구간에 대해 음성 데이터를 합성하는 단계를 더 포함하는 것인, 음성 합성 방법.
  16. 제 9 항에 있어서,
    상기 합성된 음성 데이터는 별도의 캐싱 데이터를 생성하기 위해 이용되는 것인, 음성 합성 방법.
  17. 음성을 합성하는 명령어들의 시퀀스를 포함하는 컴퓨터 판독가능 기록매체에 저장된 컴퓨터 프로그램에 있어서,
    상기 컴퓨터 프로그램은 컴퓨팅 장치에 의해 실행될 경우,
    음성 합성 모델에 기초하여 캐시 대상 데이터에 대한 발음열 정보, 상기 발음열 정보에 대한 어텐션 값 및 상기 어텐션 값에 대한 스펙토그램 값을 도출하고, 상기 발음열 정보, 상기 어텐션 값 및 상기 스펙토그램 값을 이용하여 캐싱 데이터를 생성하고,
    상기 음성 합성 모델을 통해 상기 캐싱 데이터를 이용하여 합성 요청 데이터에 대한 음성 데이터를 합성하는 명령어들의 시퀀스를 포함하는, 컴퓨터 판독가능 기록매체에 저장된 컴퓨터 프로그램.
KR1020210150779A 2021-11-04 2021-11-04 음성을 합성하는 서버, 방법 및 컴퓨터 프로그램 KR20230065022A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210150779A KR20230065022A (ko) 2021-11-04 2021-11-04 음성을 합성하는 서버, 방법 및 컴퓨터 프로그램

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210150779A KR20230065022A (ko) 2021-11-04 2021-11-04 음성을 합성하는 서버, 방법 및 컴퓨터 프로그램

Publications (1)

Publication Number Publication Date
KR20230065022A true KR20230065022A (ko) 2023-05-11

Family

ID=86379434

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210150779A KR20230065022A (ko) 2021-11-04 2021-11-04 음성을 합성하는 서버, 방법 및 컴퓨터 프로그램

Country Status (1)

Country Link
KR (1) KR20230065022A (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101300839B1 (ko) 2007-12-18 2013-09-10 삼성전자주식회사 음성 검색어 확장 방법 및 시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101300839B1 (ko) 2007-12-18 2013-09-10 삼성전자주식회사 음성 검색어 확장 방법 및 시스템

Similar Documents

Publication Publication Date Title
US11195510B2 (en) System and method for intelligent language switching in automated text-to-speech systems
US11922924B2 (en) Multilingual neural text-to-speech synthesis
CN106920547B (zh) 语音转换方法和装置
US7979268B2 (en) String matching method and system and computer-readable recording medium storing the string matching method
KR102139387B1 (ko) 큰 말뭉치에 기초하여 음성 합성을 하기 위한 방법 및 장치
JP5257071B2 (ja) 類似度計算装置及び情報検索装置
KR100660495B1 (ko) 음성 인식에 있어서의 통계적 언어 모델링을 위한 방법
CN113692616A (zh) 用于在端到端模型中的跨语言语音识别的基于音素的场境化
JP6180470B2 (ja) 文章候補提示端末、文章候補提示システム、文章候補提示方法、及びプログラム
KR102304993B1 (ko) Tts 서비스 제공 방법 및 이를 위한 중계 서버
Scherrer et al. Word-based dialect identification with georeferenced rules
CN103810993B (zh) 一种文本注音方法及装置
JP2005043461A (ja) 音声認識方法及び音声認識装置
CN104021117B (zh) 语言处理方法与电子设备
JP2018169434A (ja) 音声合成装置、音声合成方法及び音声合成システムならびに音声合成用コンピュータプログラム
JP2013125144A (ja) 音声認識装置およびそのプログラム
KR20230065022A (ko) 음성을 합성하는 서버, 방법 및 컴퓨터 프로그램
Tian et al. Scalable neural network based language identification from written text
JP5901694B2 (ja) 辞書データベース管理装置、apiサーバ、辞書データベース管理方法、及び辞書データベース管理プログラム
JP2004326367A (ja) テキスト解析装置及びテキスト解析方法、ならびにテキスト音声合成装置
JP6787755B2 (ja) 文書検索装置
CN108597493A (zh) 语言语义的音频交换方法和音频交换系统、编码图形
CN100561469C (zh) 创建和使用中文语言数据和用户自纠正数据的方法和系统
KR20160076909A (ko) 음성 인식의 속도를 개선하는 방법, 장치 및 컴퓨터 판독가능 매체
JP2007086404A (ja) 音声合成装置

Legal Events

Date Code Title Description
E902 Notification of reason for refusal