KR102363955B1 - Method and system for evaluating the quality of recordingas - Google Patents

Method and system for evaluating the quality of recordingas Download PDF

Info

Publication number
KR102363955B1
KR102363955B1 KR1020210099514A KR20210099514A KR102363955B1 KR 102363955 B1 KR102363955 B1 KR 102363955B1 KR 1020210099514 A KR1020210099514 A KR 1020210099514A KR 20210099514 A KR20210099514 A KR 20210099514A KR 102363955 B1 KR102363955 B1 KR 102363955B1
Authority
KR
South Korea
Prior art keywords
speaker
spectrograms
score
synthesizer
recording
Prior art date
Application number
KR1020210099514A
Other languages
Korean (ko)
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 KR1020210099514A priority Critical patent/KR102363955B1/en
Priority to KR1020220018406A priority patent/KR102408638B1/en
Application granted granted Critical
Publication of KR102363955B1 publication Critical patent/KR102363955B1/en
Priority to US17/814,650 priority patent/US20230037892A1/en

Links

Images

Classifications

    • 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/48Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use
    • G10L25/69Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use for evaluating synthetic or decoded voice signals
    • 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
    • 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/48Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use
    • G10L25/51Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use for comparison or discrimination
    • G10L25/60Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use for comparison or discrimination for measuring the quality of voice signals
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing

Abstract

Provided is a method for evaluating a quality of a recording. The method of the present invention receives the recording data wherein a speaker performs a recording based on a recording script corresponding to a specific text, generates the first spectrograms and a speaker embedding vector based on the recording data, and allows the second spectrograms corresponding to the recording script to be generated based on the speaker embedding vector and the first spectrograms. In addition, a score of attention alignment corresponding to the second spectrograms may be calculated, and the quality of the recording data may be evaluated based on the score. Therefore, the present invention is capable of providing the method for evaluating whether the speaker performed the recording in accordance with the recording script.

Description

녹음의 품질을 평가하는 방법 및 시스템{METHOD AND SYSTEM FOR EVALUATING THE QUALITY OF RECORDINGAS}METHOD AND SYSTEM FOR EVALUATING THE QUALITY OF RECORDINGAS

본 개시는 녹음의 품질을 평가하는 방법 및 시스템에 관한다.The present disclosure relates to a method and system for evaluating the quality of a recording.

최근 인공 지능 기술의 발달로 음성 신호를 활용하는 인터페이스가 보편화되고 있다. 이에 따라, 주어진 상황에 따라 합성된 음성을 발화할 수 있도록 하는 음성 합성(speech synthesis) 기술에 대한 연구가 활발히 진행되고 있다.Recently, with the development of artificial intelligence technology, interfaces using voice signals are becoming common. Accordingly, research on a speech synthesis technology capable of uttering a synthesized voice according to a given situation is being actively conducted.

음성 합성 기술은 인공 지능에 기반한 음성 인식 기술과 접목하여 가상 비서, 오디오북, 자동 통번역 및 가상 성우 등의 많은 분야에 적용되고 있다. Speech synthesis technology is applied to many fields such as virtual assistants, audiobooks, automatic interpretation and translation, and virtual voice actors by combining speech recognition technology based on artificial intelligence.

종래의 음성 합성 방법으로는 연결 합성(Unit Selection Synthesis, USS) 및 통계 기반 파라미터 합성(HMM-based Speech Synthesis, HTS) 등의 다양한 방법이 있다. USS 방법은 음성 데이터를 음소 단위로 잘라서 저장하고 음성 합성 시 발화에 적합한 음편을 찾아서 이어붙이는 방법이고, HTS 방법은 음성 특징에 해당하는 파라미터들을 추출해 통계 모델을 생성하고 통계 모델에 기반하여 텍스트를 음성으로 재구성하는 방법이다. 그러나, 상술한 종래의 음성 합성 방법은 화자의 발화 스타일 또는 감정 표현 등을 반영한 자연스러운 음성을 합성하는 데 많은 한계가 있었다. As a conventional speech synthesis method, there are various methods such as unit selection synthesis (USS) and statistic-based parameter synthesis (HMM-based speech synthesis, HTS). The USS method cuts out speech data into phoneme units and stores them, and finds a sound piece suitable for utterance during speech synthesis. The HTS method creates a statistical model by extracting parameters corresponding to speech characteristics and converts text into speech based on the statistical model. as a way to reconstruct it. However, the conventional voice synthesis method described above has many limitations in synthesizing a natural voice reflecting the speaker's speech style or emotional expression.

이에 따라, 최근에는 인공 신경망(Artificial Neural Network)에 기반하여 텍스트로부터 음성을 합성하는 음성 합성 방법이 주목받고 있다. 한편, 인공 신경망에 기반한 음성 합성 시스템의 학습을 위한 녹음 데이터가 녹음 대본과 일치하게 녹음이 수행된 데이터에 해당하는지를 평가할 수 있는 기술이 요구된다.Accordingly, recently, a speech synthesis method for synthesizing speech from text based on an artificial neural network is attracting attention. On the other hand, there is a need for a technology capable of evaluating whether recorded data for learning of a speech synthesis system based on an artificial neural network corresponds to data recorded in accordance with a recording script.

실제 발화자가 말하는 듯한 자연스러운 음성을 구현할 수 있는 인공 지능 기반의 음성 합성 기술을 제공하는 데 있다. The goal is to provide an artificial intelligence-based speech synthesis technology that can implement natural speech as if a real speaker is speaking.

음성 합성 시스템의 학습을 위한 녹음 데이터가 녹음 대본과 일치하게 녹음이 수행된 데이터에 해당하는지를 평가할 수 있는 기술을 제공하는 데 있다. An object of the present invention is to provide a technology capable of evaluating whether recorded data for training of a speech synthesis system corresponds to data recorded in accordance with a recording script.

해결하고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 유추될 수 있다.The technical problem to be solved is not limited to the technical problems as described above, and other technical problems may be inferred.

상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 개시의 제 1 측면은, 녹음의 품질을 평가하는 방법에 있어서, 특정 텍스트에 해당하는 녹음 대본에 기초하여 화자가 녹음을 수행한 녹음 데이터를 수신하는 단계; 상기 녹음 데이터에 기초하여 제 1 스펙트로그램들 및 화자 임베딩 벡터를 생성하는 단계; 상기 화자 임베딩 벡터 및 상기 제 1 스펙트로그램들에 기초하여 특정 텍스트에 대응하는 제 2 스펙트로그램들을 생성하는 단계; 상기 제 2 스펙트로그램들에 대응하는 어텐션 얼라인먼트(attention alignment)의 스코어를 연산하는 단계; 및 상기 스코어에 기초하여 녹음 데이터의 품질을 평가하는 단계;를 포함하는 방법을 제공할 수 있다. As a technical means for achieving the above-described technical problem, a first aspect of the present disclosure is a method for evaluating the quality of a recording, wherein the recording data is received by a speaker based on a recording script corresponding to a specific text. to do; generating first spectrograms and a speaker embedding vector based on the recorded data; generating second spectrograms corresponding to a specific text based on the speaker embedding vector and the first spectrograms; calculating a score of attention alignment corresponding to the second spectrograms; and evaluating the quality of the recorded data based on the score.

또한, 상기 제 2 스펙트로그램들을 생성하는 단계는, 제 2 스펙트로그램들을 생성하는 합성기에 포함된 디코더(decoder)의 각 타임 스텝에 상기 제 1 스펙트로그램들을 입력하는 단계; 및 상기 제 1 스펙트로그램들에 기초하여 상기 특정 텍스트에 대응하는 각 음소들을 추론한 결과 상기 제 2 스펙트로그램들을 생성하는 단계;를 포함할 수 있다. The generating of the second spectrograms may include: inputting the first spectrograms at each time step of a decoder included in a synthesizer for generating the second spectrograms; and generating the second spectrograms as a result of inferring each phoneme corresponding to the specific text based on the first spectrograms.

또한, 상기 어텐션 얼라이먼트는 제 2 스펙트로그램들을 생성하는 합성기에 포함된 디코더(decoder)의 타임 스텝들에 대응하는 제 1 축 및 상기 합성기에 포함된 인코더(encoder)의 타임 스텝들에 대응하는 제 2 축에 기초하여 표현되고, 상기 스코어를 생성하는 단계는, 특정 디코더의 타임 스텝에 대응하는 값들 중에서 첫번째로 큰 제 1 값 및 두번째로 큰 제 2 값을 도출하는 단계; 및 상기 제 1 값에 대응하는 인코더의 타임 스텝을 나타내는 제 1 인덱스 값 및 상기 제 2 값에 대응하는 인코더의 타임 스텝을 나타내는 제 2 인덱스 값의 차이 값을 이용하여 상기 스코어를 연산하는 단계;를 포함할 수 있다. In addition, the attention alignment includes a first axis corresponding to time steps of a decoder included in a synthesizer for generating second spectrograms, and a second axis corresponding to time steps of an encoder included in the synthesizer. Represented based on an axis, generating the score may include: deriving a first largest value and a second largest value from among values corresponding to a time step of a particular decoder; and calculating the score using a difference value between a first index value indicating a time step of an encoder corresponding to the first value and a second index value indicating a time step of an encoder corresponding to the second value; may include

또한, 상기 어텐션 얼라이먼트는 제 2 스펙트로그램들을 생성하는 합성기에 포함된 디코더(decoder)의 타임 스텝에 대응하는 제 1 축 및 합성기에 포함된 인코더(encoder)의 타임 스텝에 대응하는 제 2 축에 기초하여 표현되고, 상기 스코어를 생성하는 단계는, 상기 디코더의 타임 스텝들 중 제 1 타임 스텝에 대응하는 값들 중에서 제 1 최대값을 도출하는 단계; 상기 제 1 타임 스텝의 다음 스텝에 해당하는 제 2 타임 스텝에 대응하는 값들 중에서 제 2 최대값을 도출하는 단계; 상기 제 1 최대값에 대응하는 인코더의 타임 스텝을 나타내는 제 1 인덱스 값 및 상기 제 2 최대값에 대응하는 인코더의 타임 스텝을 나타내는 제 2 인덱스 값을 비교하는 단계; 및 상기 제 1 인덱스 값이 상기 제 2 인덱스 값보다 큰 경우, 상기 제 1 인덱스 값과 상기 제 2 인덱스 값의 차이 값에 기초하여 상기 스코어를 연산하는 단계;를 포함할 수 있다. In addition, the attention alignment is based on a first axis corresponding to a time step of a decoder included in a synthesizer for generating second spectrograms and a second axis corresponding to a time step of an encoder included in the synthesizer. and generating the score may include: deriving a first maximum value from among values corresponding to a first time step among time steps of the decoder; deriving a second maximum value from among values corresponding to a second time step corresponding to a next step of the first time step; comparing a first index value indicating a time step of an encoder corresponding to the first maximum value and a second index value indicating a time step of an encoder corresponding to the second maximum value; and calculating the score based on a difference between the first index value and the second index value when the first index value is greater than the second index value.

또한, 상기 평가하는 단계는, 상기 스코어를 기 설정된 값과 비교하는 단계; 및 상기 비교 결과 상기 화자가 상기 녹음 대본에 일치하게 녹음을 수행하였는지 여부를 나타내는 상기 녹음 데이터의 품질을 평가하는 단계;를 포함할 수 있다. In addition, the evaluating may include: comparing the score with a preset value; and evaluating the quality of the recorded data indicating whether the speaker performed the recording in accordance with the recording script as a result of the comparison.

또한, 상기 화자 임베딩 벡터를 생성하는 단계는, 상기 녹음 데이터에 STFT(Short-time Fourier transform)를 수행하여 상기 제 1 스펙트로그램들을 생성하는 단계; 및 학습된 인공 신경망 모델에 상기 제 1 스펙트로그램들을 입력하여 상기 화자 임베딩 벡터를 생성하는 단계;를 포함하고, 상기 학습된 인공 신경망 모델은 상기 제 1 스펙트로그램들을 입력 받아 벡터 공간에서 상기 녹음 데이터와 가장 유사한 음성 데이터의 임베딩 벡터를 상기 화자 임베딩 벡터로 출력할 수 있다.The generating of the speaker embedding vector may include: generating the first spectrograms by performing short-time Fourier transform (STFT) on the recorded data; and generating the speaker embedding vector by inputting the first spectrograms to a learned artificial neural network model, wherein the learned artificial neural network model receives the first spectrograms and receives the first spectrograms as input and performs the recording data and the recorded data in a vector space. An embedding vector of the most similar speech data may be output as the speaker embedding vector.

본 발명은 화자가 녹음 대본과 일치하게 녹음을 수행하였는지를 평가하는 방법을 제공할 수 있다.The present invention may provide a method for evaluating whether the speaker performed the recording in accordance with the recording script.

도 1은 음성 합성 시스템의 동작을 개략적으로 나타내는 도면이다.
도 2는 음성 합성 시스템의 일 실시예를 나타내는 도면이다.
도 3은 음성 합성 시스템의 합성기의 일 실시예를 나타내는 도면이다.
도 4는 화자 인코더에서 임베딩 벡터를 생성하기 위한 벡터 공간의 일 실시예를 나타내는 도면이다.
도 5는 음성 합성 시스템을 이용하여 녹음의 품질을 평가하는 일 실시예를 나타내는 도면이다.
도 6은 합성기가 제 1 스펙트로그램들에 기초하여 제 2 스펙트로그램들을 생성하는 일 실시예를 나타내는 도면이다.
도 7a 및 도 7b는 제 2 스펙트로그램들에 대응하는 어텐션 얼라인먼트 의 품질을 설명하기 위한 도면이다.
도 8은 합성기가 인코더 스코어를 연산하는 일 실시예를 설명하기 위한 도면이다.
도 9는 합성기가 디코더 스코어를 연산하는 일 실시예를 설명하기 위한 도면이다.
도 10은 합성기가 집중 스코어(concentration score)를 연산하는 일 실시예를 설명하기 위한 도면이다.
도 11은 합성기가 스텝 스코어(step score)를 연산하는 일 실시예를 설명하기 위한 도면이다.
도 12는 녹음의 품질을 평가하는 방법의 일 실시예를 도시한 흐름도이다.
1 is a diagram schematically illustrating an operation of a speech synthesis system.
2 is a diagram illustrating an embodiment of a speech synthesis system.
3 is a diagram illustrating an embodiment of a synthesizer of a speech synthesis system.
4 is a diagram illustrating an embodiment of a vector space for generating an embedding vector in a speaker encoder.
5 is a diagram illustrating an embodiment of evaluating the quality of a recording using a speech synthesis system.
6 is a diagram illustrating an embodiment in which a synthesizer generates second spectrograms based on first spectrograms.
7A and 7B are diagrams for explaining the quality of attention alignment corresponding to second spectrograms.
8 is a diagram for explaining an embodiment in which a synthesizer calculates an encoder score.
9 is a diagram for explaining an embodiment in which a synthesizer calculates a decoder score.
10 is a diagram for explaining an embodiment in which a synthesizer calculates a concentration score.
11 is a diagram for explaining an embodiment in which a synthesizer calculates a step score.
12 is a flowchart illustrating one embodiment of a method for evaluating the quality of a recording.

본 실시예들에서 사용되는 용어는 본 실시예들에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 부분에서 상세히 그 의미를 기재할 것이다. 따라서, 본 실시예들에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 실시예들 전반에 걸친 내용을 토대로 정의되어야 한다.The terms used in the present embodiments are selected as currently widely used general terms as possible while considering the functions in the present embodiments, which may vary depending on the intention or precedent of a person skilled in the art, the emergence of new technology, etc. there is. In addition, in certain cases, there are also terms arbitrarily selected by the applicant, and in this case, the meaning will be described in detail in the relevant part. Therefore, the terms used in the present embodiments should be defined based on the meaning of the term and the contents throughout the present embodiments, rather than the simple name of the term.

본 실시예들은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 일부 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 실시예들을 특정한 개시형태에 대해 한정하려는 것이 아니며, 본 실시예들의 사상 및 기술범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 본 명세서에서 사용한 용어들은 단지 실시예들의 설명을 위해 사용된 것으로, 본 실시예들을 한정하려는 의도가 아니다.Since the present embodiments may have various changes and may have various forms, some embodiments will be illustrated in the drawings and described in detail. However, this is not intended to limit the present embodiments to a specific disclosed form, and should be understood to include all modifications, equivalents, and substitutes included in the spirit and scope of the present embodiments. The terms used herein are used only for description of the embodiments, and are not intended to limit the present embodiments.

본 실시예들에 사용되는 용어들은 다르게 정의되지 않는 한, 본 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미가 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 실시예들에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않아야 한다.Unless otherwise defined, terms used in the present embodiments have the same meanings as commonly understood by those of ordinary skill in the art to which the present embodiments belong. Terms such as those defined in a commonly used dictionary should be interpreted as having a meaning consistent with the meaning in the context of the related art, and unless explicitly defined in the present embodiments, have an ideal or excessively formal meaning. should not be interpreted.

후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이러한 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 본 명세서에 기재되어 있는 특정 형상, 구조 및 특성은 본 발명의 정신과 범위를 벗어나지 않으면서 일 실시예로부터 다른 실시예로 변경되어 구현될 수 있다. 또한, 각각의 실시예 내의 개별 구성요소의 위치 또는 배치도 본 발명의 정신과 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 행하여지는 것이 아니며, 본 발명의 범위는 특허청구범위의 청구항들이 청구하는 범위 및 그와 균등한 모든 범위를 포괄하는 것으로 받아들여져야 한다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 구성요소를 나타낸다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS [0012] DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS [0010] DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS [0010] Reference is made to the accompanying drawings, which show by way of illustration specific embodiments in which the present invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the present invention. It should be understood that the various embodiments of the present invention are different but need not be mutually exclusive. For example, certain shapes, structures, and characteristics described herein may be implemented with changes from one embodiment to another without departing from the spirit and scope of the present invention. In addition, it should be understood that the location or arrangement of individual components within each embodiment may be changed without departing from the spirit and scope of the present invention. Accordingly, the following detailed description is not to be taken in a limiting sense, and the scope of the present invention should be taken as encompassing the scope of the claims and all equivalents thereto. In the drawings, like reference numerals refer to the same or similar elements throughout the various aspects.

한편, 본 명세서에서 하나의 도면 내에서 개별적으로 설명되는 기술적 특징은 개별적으로 구현될 수도 있고, 동시에 구현될 수도 있다.On the other hand, in the present specification, technical features that are individually described within one drawing may be implemented individually or may be implemented at the same time.

이하에서는, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 여러 실시예에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.Hereinafter, various embodiments of the present invention will be described in detail with reference to the accompanying drawings in order to enable those of ordinary skill in the art to easily practice the present invention.

도 1은 음성 합성 시스템의 동작을 개략적으로 나타내는 도면이다. 1 is a diagram schematically illustrating an operation of a speech synthesis system.

음성 합성(Speech Synthesis) 시스템은 텍스트를 사람의 음성으로 변환하는 시스템이다. A speech synthesis system is a system that converts text into human speech.

예를 들어, 도 1의 음성 합성 시스템(100)는 인공 신경망(Artificial Neural Network) 기반의 음성 합성 시스템일 수 있다. 인공 신경망은 시냅스의 결합으로 네트워크를 형성한 인공 뉴런이 학습을 통해 시냅스의 결합 세기를 변화시켜, 문제 해결 능력을 가지는 모델 전반을 의미한다. For example, the speech synthesis system 100 of FIG. 1 may be an artificial neural network-based speech synthesis system. An artificial neural network refers to an overall model that has problem-solving ability by changing the strength of synaptic bonding through learning in which artificial neurons that form a network through synaptic bonding.

음성 합성 시스템(100)는 PC(personal computer), 서버 디바이스, 모바일 디바이스, 임베디드 디바이스 등의 다양한 종류의 디바이스들로 구현될 수 있고, 구체적인 예로서 인공 신경망를 이용하여 음성 합성을 수행하는 스마트폰, 태블릿 디바이스, AR(Augmented Reality) 디바이스, IoT(Internet of Things) 디바이스, 자율주행 자동차, 로보틱스, 의료기기, 전자책 단말기 및 네비게이션 등에 해당될 수 있으나, 이에 제한되지 않는다. The voice synthesis system 100 may be implemented in various types of devices such as a personal computer (PC), a server device, a mobile device, and an embedded device, and as a specific example, a smartphone or tablet that performs voice synthesis using an artificial neural network It may correspond to a device, an Augmented Reality (AR) device, an Internet of Things (IoT) device, an autonomous vehicle, robotics, a medical device, an e-book terminal, and a navigation device, but is not limited thereto.

나아가서, 음성 합성 시스템(100)는 위와 같은 디바이스에 탑재되는 전용 하드웨어 가속기(HW accelerator)에 해당될 수 있다. 또는, 음성 합성 시스템(100)는 인공 신경망의 구동을 위한 전용 모듈인 NPU(neural processing unit), TPU(Tensor Processing Unit), Neural Engine 등과 같은 하드웨어 가속기일 수 있으나, 이에 제한되지 않는다.Furthermore, the speech synthesis system 100 may correspond to a dedicated hardware accelerator mounted on the above device. Alternatively, the speech synthesis system 100 may be a hardware accelerator such as a neural processing unit (NPU), a tensor processing unit (TPU), or a neural engine, which is a dedicated module for driving an artificial neural network, but is not limited thereto.

도 1을 참고하면, 음성 합성 시스템(100)는 텍스트 입력과 특정 화자 정보를 수신할 수 있다. 예를 들어, 음성 합성 시스템(100)는 텍스트 입력으로써 도 1에 도시된 바와 같이 “Have a good day!”를 수신할 수 있고, 화자 정보 입력으로써 “화자 1”을 수신할 수 있다. Referring to FIG. 1 , the speech synthesis system 100 may receive a text input and specific speaker information. For example, the speech synthesis system 100 may receive “Have a good day!” as shown in FIG. 1 as a text input, and may receive “speaker 1” as a speaker information input.

“화자 1”은 기 설정된 화자 1의 발화 특징을 나타내는 음성 신호 또는 음성 샘플에 해당할 수 있다. 예를 들어, 화자 정보는 음성 합성 시스템(100)에 포함된 통신부를 통해 외부 장치로부터 수신될 수 있다. 또는, 화자 정보는 음성 합성 시스템(100)의 사용자 인터페이스를 통해 사용자로부터 입력될 수 있고, 음성 합성 시스템(100)의 데이터 베이스에 미리 저장된 다양한 화자 정보들 중 하나로 선택될 수도 있으나, 이에 제한되는 것은 아니다.Speaker 1” may correspond to a voice signal or a voice sample indicating a preset speech characteristic of speaker 1. For example, the speaker information may be received from an external device through a communication unit included in the speech synthesis system 100 . Alternatively, the speaker information may be input from a user through the user interface of the speech synthesis system 100 and may be selected from among various speaker information pre-stored in the database of the speech synthesis system 100, but is limited thereto. not.

음성 합성 시스템(100)는 입력으로 수신한 텍스트 입력과 특정 화자 정보에 기초하여 음성(speech)를 출력할 수 있다. 예를 들어, 음성 합성 시스템(100)는 “Have a good day!” 및 “화자 1”을 입력으로 수신하여, 화자 1의 발화 특징이 반영된 “Have a good day!”에 대한 음성을 출력할 수 있다. 화자 1의 발화 특징은 화자 1의 음성, 운율, 음높이 및 감정 등 다양한 요소들 중 적어도 하나를 포함할 수 있다. 즉, 출력되는 음성은 화자 1이 “Have a good day!”를 자연스럽게 발음하는 듯한 음성일 수 있다. The speech synthesis system 100 may output a speech based on a text input received as an input and specific speaker information. For example, the speech synthesis system 100 may say “Have a good day!” and “Speaker 1” may be received as inputs, and a voice for “Have a good day!” in which the speech characteristics of speaker 1 are reflected may be output. The speech characteristics of the speaker 1 may include at least one of various factors such as the speaker 1's voice, a rhyme, a pitch, and an emotion. That is, the output voice may be a voice as if the speaker 1 naturally pronounces “Have a good day!”.

도 2는 음성 합성 시스템의 일 실시예를 나타내는 도면이다. 도 2의 음성 합성 시스템(200)는 도 1의 음성 합성 시스템(100)와 동일할 수 있다.2 is a diagram illustrating an embodiment of a speech synthesis system. The speech synthesis system 200 of FIG. 2 may be the same as the speech synthesis system 100 of FIG. 1 .

도 2를 참조하면, 음성 합성 시스템(200)은 화자 인코더(210), 합성기(220) 및 보코더(230)를 포함할 수 있다. 한편, 도 2에 도시된 음성 합성 시스템(200)에는 일 실시예와 관련된 구성요소들만이 도시되어 있다. 따라서, 음성 합성 시스템(200)에는 도 2에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음은 당해 기술분야의 통상의 기술자에게 자명하다.Referring to FIG. 2 , the speech synthesis system 200 may include a speaker encoder 210 , a synthesizer 220 , and a vocoder 230 . Meanwhile, in the speech synthesis system 200 illustrated in FIG. 2 , only components related to an embodiment are illustrated. Accordingly, it is apparent to those skilled in the art that the speech synthesis system 200 may include other general-purpose components in addition to the components shown in FIG. 2 .

도 2의 음성 합성 시스템(200)은 화자 정보 및 텍스트(text)를 입력으로 수신하여 음성(speech)을 출력할 수 있다. The speech synthesis system 200 of FIG. 2 may receive speaker information and text as inputs and output a speech.

예를 들어, 음성 합성 시스템(200)의 화자 인코더(210)는 화자 정보를 입력으로 수신하여 화자 임베딩 벡터(embedding vector)를 생성할 수 있다. 화자 정보는 화자의 음성 신호 또는 음성 샘플에 해당할 수 있다. 화자 인코더(210)는 화자의 음성 신호 또는 음성 샘플을 수신하여, 화자의 발화 특징을 추출할 수 있으며 이를 임베딩 벡터로 나타낼 수 있다. For example, the speaker encoder 210 of the speech synthesis system 200 may receive speaker information as an input and generate a speaker embedding vector. The speaker information may correspond to a speaker's voice signal or a voice sample. The speaker encoder 210 may receive the speaker's voice signal or voice sample, extract the speaker's utterance characteristics, and represent this as an embedding vector.

화자의 발화 특징은 발화 속도, 휴지 구간, 음높이, 음색, 운율, 억양 또는 감정 등 다양한 요소들 중 적어도 하나를 포함할 수 있다. 즉, 화자 인코더(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) 등 다양한 인공 신경망 모델 중 적어도 하나 또는 둘 이상의 조합에 기반하여 화자 임베딩 벡터를 생성할 수 있다. The speaker's speech characteristics may include at least one of various factors such as speech speed, pause period, pitch, tone, rhyme, intonation, or emotion. That is, the speaker encoder 210 may represent the discontinuous data values included in the speaker information as a vector composed of continuous numbers. For example, the speaker encoder 210 includes a pre-net, a CBHG module, a deep neural network (DNN), a convolutional neural network (CNN), a recurrent neural network (RNN), a long short-term memory network (LSTM), a BRDNN ( A speaker embedding vector may be generated based on at least one or a combination of two or more of various artificial neural network models, such as a Bidirectional Recurrent Deep Neural Network).

예를 들어, 음성 합성 시스템(200)의 합성기(220)는 텍스트(text) 및 화자의 발화 특징을 나타내는 임베딩 벡터를 입력으로 수신하여 스펙트로그램(spectrogram)을 출력할 수 있다. For example, the synthesizer 220 of the speech synthesis system 200 may receive text and an embedding vector representing the speaker's utterance characteristics as inputs, and may output a spectrogram.

도 3은 음성 합성 시스템의 합성기의 일 실시예를 나타내는 도면이다. 도 3의 합성기(300)는 도 2의 합성기(220)와 동일할 수 있다. 3 is a diagram illustrating an embodiment of a synthesizer of a speech synthesis system. The synthesizer 300 of FIG. 3 may be the same as the synthesizer 220 of FIG. 2 .

도 3을 참조하면, 음성 합성 시스템(200)의 합성기(300)는 텍스트 인코더 및 디코더를 포함할 수 있다. 한편, 합성기(300)에는 도 3에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음은 당해 기술분야의 통상의 기술자에게 자명하다.Referring to FIG. 3 , the synthesizer 300 of the speech synthesis system 200 may include a text encoder and a decoder. Meanwhile, it is apparent to those skilled in the art that the synthesizer 300 may further include other general-purpose components in addition to the components shown in FIG. 3 .

화자의 발화 특징을 나타내는 임베딩 벡터는 상술한 바와 같이 화자 인코더(210)로부터 생성될 수 있으며, 합성기(300)의 인코더 또는 디코더는 화자 인코더(210)로부터 화자의 발화 특징을 나타내는 임베딩 벡터를 수신할 수 있다.The embedding vector representing the speech characteristic of the speaker may be generated from the speaker encoder 210 as described above, and the encoder or decoder of the synthesizer 300 receives the embedding vector representing the speech characteristic of the speaker from the speaker encoder 210. can

예를 들어, 화자 인코더(210)는 화자의 음성 신호 또는 음성 샘플을 학습된 인공 신경망 모델에 입력하여, 화자의 음성 신호 또는 음성 샘플과 가장 유사한 음성 데이터의 임베딩 벡터를 출력할 수 있다. For example, the speaker encoder 210 may input the speaker's voice signal or voice sample to the trained artificial neural network model, and output an embedding vector of voice data most similar to the speaker's voice signal or voice sample.

도 4는 화자 인코더에서 임베딩 벡터를 생성하기 위한 벡터 공간의 일 실시예를 나타내는 도면이다.4 is a diagram illustrating an embodiment of a vector space for generating an embedding vector in a speaker encoder.

일 실시예에 따르면, 화자 인코더(210)는 화자의 음성 신호 또는 음성 샘플에 STFT(Short-time Fourier transform)를 수행하여 제 1 스펙트로그램(spectrogram)들을 생성할 수 있다. 화자 인코더(210)는 학습된 인공 신경망 모델에 제 1 스펙트로그램들을 입력하여 화자 임베딩 벡터를 생성할 수 있다. According to an embodiment, the speaker encoder 210 may generate first spectrograms by performing short-time Fourier transform (STFT) on the speaker's voice signal or voice sample. The speaker encoder 210 may generate a speaker embedding vector by inputting the first spectrograms to the learned artificial neural network model.

스펙트로그램은 음성 신호의 스펙트럼을 시각화하여 그래프로 표현한 것이다. 스펙트로그램의 x축은 시간, y축은 주파수를 나타내며 각 시간당 주파수가 가지는 값을 값의 크기에 따라 색으로 표현할 수 있다. 스펙토그램은 연속적으로 주어지는 음성 신호에 STFT(Short-time Fourier transform)를 수행한 결과물일 수 있다. A spectrogram is a graph that visualizes the spectrum of a voice signal. The x-axis of the spectrogram represents time and the y-axis represents frequency, and the value of each time frequency can be expressed as a color according to the size of the value. The spectogram may be a result of performing short-time Fourier transform (STFT) on a continuously given speech signal.

STFT는 음성 신호를 일정한 길이의 구간들로 나누고 각 구간에 대하여 푸리에 변환을 적용하는 방법이다. 이 때, 음성 신호에 STFT를 수행한 결과물은 복소수 값이기 때문에, 복소수 값에 절대값을 취해 위상(phase) 정보를 소실시키고 크기(magnitude) 정보만을 포함하는 스펙트로그램을 생성할 수 있다.STFT is a method in which a voice signal is divided into sections of a certain length and a Fourier transform is applied to each section. At this time, since the result of performing STFT on the speech signal is a complex value, it is possible to take an absolute value to the complex value to lose phase information and to generate a spectrogram including only magnitude information.

한편, 멜 스펙트로그램은 스펙트로그램의 주파수 간격을 멜 스케일(Mel Scale)로 재조정한 것이다. 사람의 청각기관은 고주파수(high frequency) 보다 저주파수(low frequency) 대역에서 더 민감하며, 이러한 특성을 반영해 물리적인 주파수와 실제 사람이 인식하는 주파수의 관계를 표현한 것이 멜 스케일이다. 멜 스펙트로그램은 멜 스케일에 기반한 필터 뱅크(filter bank)를 스펙트로그램에 적용하여 생성될 수 있다.On the other hand, the Mel spectrogram is a readjustment of the frequency interval of the spectrogram to the Mel scale. The human auditory organ is more sensitive in the low frequency band than in the high frequency band, and the Mel Scale expresses the relationship between the physical frequency and the frequency perceived by humans by reflecting these characteristics. The Mel spectrogram may be generated by applying a filter bank based on the Mel scale to the spectrogram.

화자 인코더(210)는 다양한 음성 데이터들에 해당하는 스펙트로그램들 및 이에 대응하는 임베딩 벡터들을 벡터 공간 상에 표시할 수 있다. 화자 인코더(210)는 학습된 인공 신경망 모델에 화자의 음성 신호 또는 음성 샘플로부터 생성한 스펙트로그램들을 입력할 수 있다. 화자 인코더(510)는 학습된 인공 신경망 모델로부터 벡터 공간 상에서 화자의 음성 신호 또는 음성 샘플와 가장 유사한 음성 데이터의 임베딩 벡터를 화자 임베딩 벡터로 출력할 수 있다. 즉, 학습된 인공 신경망 모델은 스펙트로그램들을 입력 받아 벡터 공간의 특정 포인트에 매칭되는 임베딩 벡터를 생성할 수 있다.The speaker encoder 210 may display spectrograms corresponding to various voice data and embedding vectors corresponding thereto on a vector space. The speaker encoder 210 may input spectrograms generated from the speaker's voice signal or voice sample to the learned artificial neural network model. The speaker encoder 510 may output an embedding vector of speech data most similar to the speaker's speech signal or speech sample in the vector space from the learned artificial neural network model as the speaker embedding vector. That is, the trained artificial neural network model may receive spectrograms and generate an embedding vector matching a specific point in the vector space.

다시 도 3으로 돌아와서, 합성기(300)의 텍스트 인코더는 텍스트를 입력으로 수신하여 텍스트 임베딩 벡터를 생성할 수 있다. 텍스트는 특정 자연 언어로 된 문자들의 시퀀스를 포함할 수 있다. 예를 들어, 문자들의 시퀀스는 알파벳 문자들, 숫자들, 문장 부호들 또는 기타 특수 문자들을 포함할 수 있다. 3 , the text encoder of the synthesizer 300 may receive text as input and generate a text embedding vector. The text may include a sequence of characters in a particular natural language. For example, the sequence of characters may include alphabetic characters, numbers, punctuation marks, or other special characters.

텍스트 인코더는 입력된 텍스트를 자모 단위, 글자 단위 또는 음소 단위로 분리할 수 있고, 분리된 텍스트를 인공 신경망 모델에 입력할 수 있다. 예를 들어, 텍스트 인코더는 pre-net, CBHG 모듈, DNN, CNN, RNN, LSTM, BRDNN 등 다양한 인공 신경망 모델 중 적어도 하나 또는 둘 이상의 조합에 기반하여 텍스트 임베딩 벡터를 생성할 수 있다. The text encoder may divide the inputted text into a unit of a alphabet, a unit of a letter, or a unit of a phoneme, and may input the separated text into the artificial neural network model. For example, the text encoder may generate a text embedding vector based on at least one or a combination of two or more of various artificial neural network models such as pre-net, CBHG module, DNN, CNN, RNN, LSTM, and BRDNN.

또는, 텍스트 인코더는 입력된 텍스트를 복수의 짧은 텍스트들로 분리하고, 짧은 텍스트들 각각에 대하여 복수의 텍스트 임베딩 벡터들을 생성할 수도 있다. Alternatively, the text encoder may divide the input text into a plurality of short texts and generate a plurality of text embedding vectors for each of the short texts.

합성기(300)의 디코더는 화자 인코더(210)로부터 화자 임베딩 벡터 및 텍스트 임베딩 벡터를 입력으로 수신할 수 있다. 또는, 합성기(300)의 디코더는 화자 인코더(210)로부터 화자 임베딩 벡터를 입력으로 수신하고, 텍스트 인코더로부터 텍스트 임베딩 벡터를 입력으로 수신할 수 있다. The decoder of the synthesizer 300 may receive a speaker embedding vector and a text embedding vector from the speaker encoder 210 as inputs. Alternatively, the decoder of the synthesizer 300 may receive a speaker embedding vector from the speaker encoder 210 as an input and receive a text embedding vector from the text encoder as an input.

디코더는 화자 임베딩 벡터와 텍스트 임베딩 벡터를 인공 신경망 모델에 입력하여, 입력된 텍스트에 대응되는 스펙트로그램을 생성할 수 있다. 즉, 디코더는 화자의 발화 특징이 반영된 입력 텍스트에 대한 스펙트로그램을 생성할 수 있다. 예를 들면, 스펙트로그램은 멜 스펙트로그램(mel-spectrogram)에 해당할 수 있으나, 이에 제한되는 것은 아니다.The decoder may generate a spectrogram corresponding to the input text by inputting the speaker embedding vector and the text embedding vector to the artificial neural network model. That is, the decoder may generate a spectrogram of the input text in which the speaker's speech characteristics are reflected. For example, the spectrogram may correspond to a mel-spectrogram, but is not limited thereto.

한편, 도 3에는 도시되어 있지 않으나, 합성기(300)는 어텐션 얼라이먼트를 생성하기 위한 어텐션 모듈을 더 포함할 수 있다. 어텐션 모듈은 디코더의 특정 타임 스텝(time-step)의 출력이 인코더의 모든 타임 스텝의 출력 중 어떤 출력과 가장 연관이 있는가를 학습하는 모듈이다. 어텐션 모듈을 이용하여 더 고품질의 스펙트로그램 또는 멜 스펙트로그램을 출력할 수 있다. Meanwhile, although not shown in FIG. 3 , the synthesizer 300 may further include an attention module for generating the attention alignment. The attention module is a module that learns which output of a specific time-step of the decoder is most related to the output of all the time-steps of the encoder. A higher quality spectrogram or Mel spectrogram can be output by using the attention module.

다시 도 2로 돌아와서, 음성 합성 시스템(200)의 보코더(230)는 합성기(220)에서 출력된 스펙트로그램을 실제 음성(speech)으로 생성할 수 있다. 상술한 바와 같이 출력된 스펙트로그램은 멜 스펙트로그램일 수 있다. Returning to FIG. 2 again, the vocoder 230 of the speech synthesis system 200 may generate the spectrogram output from the synthesizer 220 as actual speech. The spectrogram output as described above may be a Mel spectrogram.

일 실시예에서, 보코더(230)는 ISFT(Inverse Short-Time Fourier Transform)를 이용하여 합성기(220)에서 출력된 스펙트로그램을 실제 음성 신호로 생성할 수 있다. 스펙트로그램 또는 멜 스펙트로그램은 위상 정보를 포함하고 있지 않으므로, ISFT를 이용하여 음성 신호를 생성하는 경우 스펙트로그램 또는 멜 스펙트로그램의 위상 정보는 고려되지 않는다. In an embodiment, the vocoder 230 may generate the spectrogram output from the synthesizer 220 as an actual speech signal by using Inverse Short-Time Fourier Transform (ISFT). Since the spectrogram or Mel spectrogram does not include phase information, when generating a voice signal using ISFT, the phase information of the spectrogram or Mel spectrogram is not considered.

다른 실시예에서, 보코더(230)는 그리핀-림 알고리즘(Griffin-Lim algorithm)을 사용하여 합성기(220)에서 출력된 스펙트로그램을 실제 음성 신호로 생성할 수 있다. 그리핀-림 알고리즘은 스펙트로그램 또는 멜 스펙트로그램의 크기 정보에서 위상 정보 추정하는 알고리즘이다. In another embodiment, the vocoder 230 may generate the spectrogram output from the synthesizer 220 as an actual speech signal using a Griffin-Lim algorithm. The Griffin-Rim algorithm is an algorithm for estimating phase information from magnitude information of a spectrogram or Mel spectrogram.

또는, 보코더(230)는 예를 들어 뉴럴 보코더(neural vocoder)에 기초하여 합성기(220)에서 출력된 스펙트로그램을 실제 음성 신호로 생성할 수 있다. Alternatively, the vocoder 230 may generate the spectrogram output from the synthesizer 220 as an actual voice signal, for example, based on a neural vocoder.

뉴럴 보코더는 스펙트로그램 또는 멜 스펙트로그램을 입력으로 받아 음성 신호를 생성하는 인공 신경망 모델이다. 뉴럴 보코더는 스펙트로그램 또는 멜 스펙트로그램과 음성 신호 사이의 관계를 다량의 데이터를 통해 학습할 수 있고, 이를 통해 고품질의 실제 음성 신호를 생성할 수 있다. A neural vocoder is an artificial neural network model that generates a voice signal by receiving a spectrogram or a Mel spectrogram as an input. A neural vocoder can learn the relationship between a spectrogram or a Mel spectrogram and a voice signal from a large amount of data, and can generate a high-quality real voice signal through this.

뉴럴 보코더는 WaveNet, Parallel WaveNet, WaveRNN, WaveGlow 또는 MelGAN 등과 같은 인공 신경망 모델에 기반한 보코더에 해당할 수 있으나, 이에 제한되는 것은 아니다. A neural vocoder may correspond to a vocoder based on an artificial neural network model such as, but not limited to, WaveNet, Parallel WaveNet, WaveRNN, WaveGlow, or MelGAN.

예를 들어, WaveNet 보코더는 여러 층의 dilated causal convolution layer들로 구성되며, 음성 샘플들 간의 순차적 특징을 이용하는 자기회귀(Autoregressive) 모델이다. WaveRNN 보코더는 WaveNet의 여러 층의 dilated causal convolution layer를 GRU(Gated Recurrent Unit)로 대체한 자기회귀 모델이다. WaveGlow 보코더는 가역성(invertible)을 지닌 변환 함수를 이용하여 스펙트로그램 데이터셋(x)으로부터 가우시안 분포와 같이 단순한 분포가 나오도록 학습할 수 있다. WaveGlow 보코더는 학습이 끝난 후 변환 함수의 역함수를 이용하여 가우시안 분포의 샘플로부터 음성 신호를 출력할 수 있다. For example, the WaveNet vocoder consists of several dilated causal convolution layers and is an autoregressive model that uses sequential features between speech samples. WaveRNN vocoder is an autoregressive model that replaces the dilated causal convolution layer of multiple layers of WaveNet with Gated Recurrent Unit (GRU). The WaveGlow vocoder can learn to obtain a simple distribution such as a Gaussian distribution from the spectrogram dataset (x) using an invertible transform function. After learning, the WaveGlow vocoder can output a voice signal from a Gaussian distribution sample by using the inverse function of the transform function.

한편, 음성 합성 시스템(200)에 어떤 화자의 음성 샘플을 입력되더라도, 상기 화자의 발화 특징이 반영된 입력 텍스트에 대한 음성을 생성할 수 있는 것이 중요하다. 학습되지 않은 화자의 음성 샘플이 입력되더라도 화자의 음성 샘플과 가장 유사한 음성 데이터의 임베딩 벡터를 화자 임베딩 벡터로 출력하기 위해서, 화자 인코더(210)의 인공 신경망 모델은 다양한 화자들의 음성 데이터로 학습될 필요가 있다.On the other hand, it is important to be able to generate a voice for the input text in which the speech characteristics of the speaker are reflected, even when a voice sample of a certain speaker is input to the speech synthesis system 200 . In order to output the embedding vector of the voice data most similar to the speaker's voice sample as the speaker embedding vector even if the unlearned speaker's voice sample is input, the artificial neural network model of the speaker encoder 210 needs to be trained with the voice data of various speakers. there is

예를 들어, 화자 인코더(210)의 인공 신경망 모델을 학습시키기 위한 학습 데이터는 화자가 특정 텍스트에 해당하는 녹음 대본에 기초하여 녹음을 수행한 녹음 데이터에 해당할 수 있다. For example, the training data for training the artificial neural network model of the speaker encoder 210 may correspond to recording data in which the speaker performs recording based on a recording script corresponding to a specific text.

이에 따라, 화자 인코더(210)의 인공 신경망 모델을 학습시키기 위한 녹음 데이터의 품질을 평가할 필요성이 있다. 예를 들어, 화자가 녹음 대본에 일치하게 녹음을 수행하였는지 여부와 관련하여 녹음 데이터의 품질이 평가될 수 있다. 음성 합성 시스템(200)을 이용하여 화자가 녹음 대본에 일치하게 녹음을 수행하였는지 여부를 평가할 수 있다. Accordingly, there is a need to evaluate the quality of the recorded data for training the artificial neural network model of the speaker encoder 210 . For example, the quality of the recorded data may be evaluated in relation to whether the speaker performed the recording in accordance with the recording script. Using the speech synthesis system 200, it may be evaluated whether the speaker performed the recording in accordance with the recording script.

도 5는 음성 합성 시스템을 이용하여 녹음의 품질을 평가하는 일 실시예를 나타내는 도면이다.5 is a diagram illustrating an embodiment of evaluating the quality of a recording using a speech synthesis system.

도 5의 음성 합성 시스템(500)는 도 1의 음성 합성 시스템(100) 또는 도 2의 음성 합성 시스템(200)와 동일할 수 있다. 도 5의 화자 인코더(510)는 도 2의 화자 인코더(210)와 동일하며, 도 5의 합성기(520)는 도 2의 합성기(220) 또는 도 3의 합성기(300)와 동일할 수 있다.The speech synthesis system 500 of FIG. 5 may be the same as the speech synthesis system 100 of FIG. 1 or the speech synthesis system 200 of FIG. 2 . The speaker encoder 510 of FIG. 5 may be identical to the speaker encoder 210 of FIG. 2 , and the synthesizer 520 of FIG. 5 may be identical to the synthesizer 220 of FIG. 2 or the synthesizer 300 of FIG. 3 .

일 실시예에 따르면, 음성 합성 시스템(500)은 특정 텍스트에 해당하는 녹음 대본에 기초하여 화자가 녹음을 수행한 녹음 데이터를 수신할 수 있다. 또한, 음성 합성 시스템(500)은 녹음 데이터에 기초하여 제 1 스펙트로그램들 및 화자 임베딩 벡터를 생성할 수 있다. 음성 합성 시스템(500)은 화자 임베딩 벡터 및 제 1 스펙트로그램들에 기초하여 녹음 대본에 대응하는 제 2 스펙트로그램들을 생성하고, 제 2 스펙트로그램들에 대응하는 어텐션 얼라인먼트(attention alignment)의 스코어를 연산할 수 있다. 최종적으로, 음성 합성 시스템(500)은 스코어에 기초하여 화자가 녹음 대본에 일치하게 녹음을 수행하였는지 여부를 나타내는 녹음 데이터의 품질을 평가할 수 있다. According to an embodiment, the speech synthesis system 500 may receive recorded data in which the speaker recorded the text based on the recording script corresponding to the specific text. Also, the speech synthesis system 500 may generate the first spectrograms and the speaker embedding vector based on the recorded data. The speech synthesis system 500 generates second spectrograms corresponding to the recording script based on the speaker embedding vector and the first spectrograms, and calculates a score of attention alignment corresponding to the second spectrograms. can do. Finally, the speech synthesis system 500 may evaluate the quality of the recorded data indicating whether the speaker performed the recording in accordance with the recording script based on the score.

도 5를 참고하면, 음성 합성 시스템(500)의 화자 인코더(510)는 특정 텍스트에 해당하는 녹음 대본에 기초하여 화자가 녹음을 수행한 녹음 데이터를 수신할 수 있다. 화자 인코더(510)는 녹음 데이터에 STFT를 수행하여 제 1 스펙트로그램들을 생성할 수 있다. 예를 들어, 녹음 대본은 '세톱박스를 켜고 다시 말씀해보세요'에 해당할 수 있으며, 화자는 녹음 대본에 해당하는 특정 텍스트를 발화한 녹음 데이터를 생성할 수 있다. 이 때, 녹음 데이터는 녹음 대본과 일치하게 '세톱박스를 켜고 다시 말씀해보세요'를 정확히 발화한 음성 데이터일 수 있으나, 녹음 대본과 일치하지 않는 '세톱박스를 켜거나 말거나 다시 말씀해보세요'를 발화한 음성 데이터에 해당할 수도 있다. Referring to FIG. 5 , the speaker encoder 510 of the speech synthesis system 500 may receive recorded data recorded by the speaker based on a recording script corresponding to a specific text. The speaker encoder 510 may generate first spectrograms by performing STFT on the recorded data. For example, the recording script may correspond to 'Turn on the set-top box and say it again', and the speaker may generate recorded data uttering specific text corresponding to the recording script. At this time, the recorded data may be voice data that correctly uttered 'Turn on the set-top box and say it again' in accordance with the recording script, but it may be the voice data that uttered 'Turn on or off the set-top box or speak again' that does not match the recording script. It may correspond to voice data.

화자 인코더(510)는 학습된 인공 신경망 모델에 제 1 스펙트로그램들을 입력받아 녹음 데이터와 가장 유사한 음성 데이터의 임베딩 벡터에 가까운 수치의 화자 임베딩 벡터를 출력할 수 있다. The speaker encoder 510 may receive the first spectrograms to the learned artificial neural network model and output a speaker embedding vector having a numerical value close to that of the voice data most similar to the recorded data.

음성 합성 시스템(500)의 합성기(520)는 녹음 대본에 해당하는 텍스트를 수신할 수 있다. 예를 들어, 합성기(520)는 '세톱박스를 켜고 다시 말씀해보세요'라는 텍스트를 수신할 수 있다. 또한, 합성기(520)는 화자 인코더(510)로부터 제 1 스펙트로그램들 및 화자 임베딩 벡터를 수신할 수 있다. 합성기(520)는 제 1 스펙트로그램들 및 화자 임베딩 벡터에 수신한 텍스트에 대응하는 제 2 스펙트로그램들을 생성할 수 있다. 최종적으로, 합성기(520)는 제 2 스펙트로그램들에 대응하는 어텐션 얼라인먼트를 생성할 수 있으며, 어텐션 얼라인먼트의 스코어를 연산하여 화자가 녹음 대본과 일치하게 녹음을 수행하였는지를 평가할 수 있다. The synthesizer 520 of the speech synthesis system 500 may receive text corresponding to the recording script. For example, the synthesizer 520 may receive the text 'Turn on the set-top box and say it again'. Also, the synthesizer 520 may receive the first spectrograms and the speaker embedding vector from the speaker encoder 510 . The synthesizer 520 may generate the first spectrograms and second spectrograms corresponding to the text received in the speaker embedding vector. Finally, the synthesizer 520 may generate an attention alignment corresponding to the second spectrograms, calculate a score of the attention alignment, and evaluate whether the speaker performed the recording in accordance with the recording script.

도 6은 합성기가 제 1 스펙트로그램들에 기초하여 제 2 스펙트로그램들을 생성하는 일 실시예를 나타내는 도면이다. 6 is a diagram illustrating an embodiment in which a synthesizer generates second spectrograms based on first spectrograms.

구체적으로, 도 6은 합성기(520)에 포함된 디코더가 제 1 스펙트로그램들에 기초하여 제 2 스펙트로그램들을 생성하는 일 실시예를 나타낸다. Specifically, FIG. 6 shows an embodiment in which the decoder included in the synthesizer 520 generates second spectrograms based on the first spectrograms.

일 실시예에 따르면, 합성기(520)는 화자 인코더(510)로부터 생성된 제 1 스펙트로그램들을 제 2 스펙트로그램들을 생성하는 합성기(520)에 포함된 디코더(decoder)의 각 타임 스텝에 입력할 수 있다. 합성기(520)는 제 1 스펙트로그램들에 기초하여 녹음 대본에 대응하는 각 음소들을 추론한 결과 제 2 스펙트로그램들을 생성할 수 있다. According to an embodiment, the synthesizer 520 may input the first spectrograms generated by the speaker encoder 510 to each time step of a decoder included in the synthesizer 520 that generates the second spectrograms. there is. The synthesizer 520 may generate second spectrograms as a result of inferring each phoneme corresponding to the recording script based on the first spectrograms.

예를 들어, 합성기(520)의 디코더가 입력된 녹음 대본에 대응하는 각 음소들을 추론하는 과정에서, 각 타임 스텝에 대응하는 제 1 스펙트로그램이 타겟 스펙트로그램 또는 정답 스펙트로그램으로 입력될 수 있다. 즉, 합성기(520)는 t-1 번째의 디코더 셀이 예측한 값을 t번째 디코더 셀의 입력으로 넣어주는 방식이 아니라, 각 디코더 스텝마다 타겟 스펙트로그램 또는 정답 스펙트로그램을 입력하는 teacher-forcing 방식으로 입력된 녹음 대본에 대응하는 각 음소들을 추론할 수 있다. For example, while the decoder of the synthesizer 520 infers each phoneme corresponding to the input recording script, the first spectrogram corresponding to each time step may be input as the target spectrogram or the correct answer spectrogram. That is, the synthesizer 520 does not input the value predicted by the t-1 th decoder cell as an input to the t th decoder cell, but a teacher-forcing method that inputs a target spectrogram or a correct answer spectrogram for each decoder step. Each phoneme corresponding to the inputted recording script can be inferred.

이와 같이, teacher-forcing 방식을 활용하는 경우에는 t-1 번째의 디코더 셀에서 잘못된 결과를 예측했더라도, 타겟 스펙트로그램 또는 정답 스펙트로그램이 존재하므로 t번째 디코더 셀에서 정확한 예측이 가능할 수 있다. As such, when the teacher-forcing method is used, even if an erroneous result is predicted in the t-1 th decoder cell, since the target spectrogram or the correct spectrogram exists, accurate prediction may be possible in the t th decoder cell.

도 7a 및 도 7b는 제 2 스펙트로그램들에 대응하는 어텐션 얼라인먼트 의 품질을 설명하기 위한 도면이다. 7A and 7B are diagrams for explaining the quality of attention alignment corresponding to second spectrograms.

도 7a 및 도 7b에는 합성기(520)가 제 2 스펙트로그램들에 대응하여 생성한 어텐션 얼라인먼트가 예시적으로 도시되어 있다. 7A and 7B exemplarily illustrate the attention alignment generated by the synthesizer 520 in response to the second spectrograms.

예를 들어, 어텐션 얼라인먼트는 2차원 좌표상에 표시될 수 잇으며, 2차원 좌표의 가로 축은 합성기(520)에 포함된 디코더의 타임 스텝(decoder timestep)들, 세로 축은 합성기(520)에 포함된 인코더의 타임 스텝(encoder timestep)을 의미한다. 즉, 어텐션 얼라인먼트가 표현되는 2차원 좌표는, 합성기(520)가 스펙트로그램을 생성할 때 어떤 부분에 집중해야 하는지를 의미한다.For example, attention alignment can be displayed on two-dimensional coordinates, the horizontal axis of the two-dimensional coordinates is the decoder timesteps included in the synthesizer 520, and the vertical axis is the time steps included in the synthesizer 520. It means the encoder timestep. That is, the two-dimensional coordinates in which the attention alignment is expressed mean which part should be focused on when the synthesizer 520 generates the spectrogram.

디코더 타임 스텝은 합성기(520)가 녹음 대본에 해당하는 음소들 각각을 발화하기 위하여 투자한 시간을 의미한다. 디코더 타임 스텝은 단일 홉 사이즈에 대응하는 시간 간격으로 배열되어 있고, 단일 홉 사이즈는 예를 들어 1/80초에 해당할 수 있으나 이에 제한되는 것은 아니다. The decoder time step means the time invested by the synthesizer 520 to utter each of the phonemes corresponding to the recording script. The decoder time steps are arranged at time intervals corresponding to a single hop size, and the single hop size may correspond to, for example, 1/80 second, but is not limited thereto.

인코더 타임 스텝은 녹음 대본에 포함된 음소들에 대응한다. 예를 들어, 입력 텍스트가 '세톱박스를 켜고 다시 말씀해보세요'인 경우, 인코더 타임 스텝은 'ㅅ', 'ㅔ', 'ㅌ', 'ㅗ', 'ㅂ', 'ㅂ', 'ㅏ', 'ㄱ', 'ㅅ', 'ㅡ', 'ㄹ', 'ㅡ', 'ㄹ', ' ', 'ㅋ', 'ㅕ'…(이하 중략)으로 구성될 수 있다.Encoder time steps correspond to phonemes included in the recording script. For example, if the input text is 'Turn on the set-top box and say it again', the encoder time steps are 'ㅅ', 'ㅔ', 't', 'ㅗ', 'b', 'b', 'a' , 'a', 'ㅅ', 'ㅡ', 'ㄹ', 'ㅡ', 'ㄹ', ' ', 'ㅋ', 'ㅕ'… (hereinafter abbreviated) may be configured.

또한, 어텐션 얼라인먼트를 구성하는 포인트들 각각은 특정 컬러로 표현되어 있다. 여기에서, 컬러는 그에 대응하는 특정 값으로 매칭될 수 있다. 예를 들어, 어텐션 얼라인먼트를 구성하는 컬러들 각각은 확률 분포를 나타내는 값으로서, 0 ~ 1 사이의 값일 수 있다.In addition, each of the points constituting the attention alignment is expressed in a specific color. Here, the color may be matched with a specific value corresponding thereto. For example, each of the colors constituting the attention alignment is a value representing a probability distribution, and may be a value between 0 and 1.

예를 들어, 어텐션 얼라인먼트를 나타내는 선이 진하고 노이즈가 적다면, 합성기(520)가 스펙트로그램을 생성하는 매 순간에서 자신감 있게 추론을 수행한 것으로 해석될 수 있다. 즉, 상술한 예의 경우, 합성기(520)가 고품질의 멜 스펙트로그램을 생성했다고 판단될 수 있다. 따라서, 어텐션 얼라인먼트의 품질(예를 들어, 어텐션 얼라인먼트의 색이 진한 정도, 어텐션 얼라인먼트의 윤곽이 명확한 정도 등)은 합성기(520)의 추론 품질을 추측하는데 있어서, 매우 중요한 지표로 활용될 수 있다.For example, if the line indicating the attention alignment is thick and the noise is low, it may be interpreted that the synthesizer 520 has confidently performed inference at every moment when the spectrogram is generated. That is, in the case of the above-described example, it may be determined that the synthesizer 520 has generated a high-quality Mel spectrogram. Accordingly, the quality of the attention alignment (eg, the degree of darkness of the attention alignment, the degree of clarity of the outline of the attention alignment, etc.) may be used as a very important index in estimating the inference quality of the synthesizer 520 .

도 7a를 참고하면, 어텐션 얼라인먼트(700)는 선이 진하고 노이즈가 적으므로, 합성기(520)가 스펙트로그램을 생성하는 매 순간에서 자신감 있게 추론을 수행했다고 해석될 수 있다. 예를 들어, 도 7a의 어텐션 얼라인먼트(700)는 화자가 '세톱박스를 켜고 다시 말씀해보세요'라는 녹음 대본에 기초하여 녹음 대본과 일치하게 '세톱박스를 켜고 다시 말씀해보세요'를 비교적 정확히 발화한 녹음 데이터가 입력된 경우에, '세톱박스를 켜고 다시 말씀해보세요'라는 녹음 대본으로부터 생성된 어텐션 얼라인먼트에 해당할 수 있다.Referring to FIG. 7A , since the attention alignment 700 has thick lines and low noise, it can be interpreted that the synthesizer 520 infers confidently at every moment when the spectrogram is generated. For example, the attention alignment 700 of FIG. 7A is a recording in which the speaker uttered 'Turn on the set-top box and say it again' in accordance with the recording script based on the recording script of 'Turn on the set-top box and say it again' relatively accurately. When data is input, it may correspond to the attention alignment generated from the recording script 'Turn on the set-top box and say it again'.

반면, 도 7b를 참고하면, 어텐션 얼라인먼트(710)는 중간 부분에서 선이 명확하지 않으며, 중간 부분(720)에 명확하지 않은 부분이 포함되어 있는바, 멜 스펙트로그램의 품질이 매우 높지 않은 것으로 해석될 수 있다. 예를 들어, 도 7a의 어텐션 얼라인먼트(700)는 화자가 '세톱박스를 켜고 다시 말씀해보세요'라는 녹음 대본에 기초하여 녹음 대본과 일치하지 않게 '세톱박스를 켜거나 말거나 다시 말씀해보세요'를 발화한 녹음 데이터가 입력된 경우에, '세톱박스를 켜고 다시 말씀해보세요'라는 녹음 대본으로부터 생성된 어텐션 얼라인먼트에 해당할 수 있다. On the other hand, referring to FIG. 7B , the line in the middle part of the attention alignment 710 is not clear, and the middle part 720 includes an unclear part, so it is interpreted that the quality of the Mel spectrogram is not very high. can be For example, in the attention alignment 700 of FIG. 7A , the speaker utters 'Turn on or off the set-top box or say it again' inconsistent with the recording script based on the recording script of 'Turn on the set-top box and say it again'. When recording data is input, it may correspond to the attention alignment generated from the recording script 'Turn on the set-top box and say it again'.

즉, ‘세톱박스를 켜' 까지는 녹음 데이터와 입력된 텍스트 간의 공통 텍스트이기 때문에 얼라인먼트가 잘 그려지나, 그 이후에 녹음 데이터와 입력된 녹음 대본 간 서로 일치하지 않는‘거나 말거나’부분은 얼라인먼트가 잘 그려지지 않을 수 있다. 이는,‘켜’다음에는‘고' 에 해당되는 스펙트로그램이 디코더 셀에 입력되어야 하나,‘거' 를 발음한 스펙트로그램이 입력됨에 따라 합성기(520)가 잘못된 부분에 집중하기 때문이다. In other words, the alignment is well drawn because it is a common text between the recorded data and the input text until 'turn on the set-top box', but after that, the parts that do not match between the recorded data and the input script are aligned well. may not be drawn. This is because, after 'on', the spectrogram corresponding to 'go' should be input to the decoder cell, but as the spectrogram with the pronunciation of 'geo' is input, the synthesizer 520 concentrates on the wrong part.

상술한 바와 같이, 화자가 녹음 대본과 일치하지 않게 녹음을 수행한 녹음 데이터가 입력되는 경우에는, 출력되는 어텐션 얼라인먼트의 품질이 좋지 않을 수 있다. 어텐션 얼라인먼트의 품질은 어텐션 얼라인먼트에 스코어에 기초하여 평가될 수 있다. 어텐션 얼라인먼트의 품질이 좋지 않다고 판단되는 경우에는 녹음 대본과 일치하지 않게 녹음이 수행되었다고 판단할 수 있다. As described above, when recorded data recorded by the speaker not matching the recording script is input, the quality of the output attention alignment may be poor. The quality of the attention alignment may be evaluated based on the score of the attention alignment. When it is determined that the quality of the attention alignment is not good, it may be determined that the recording was performed inconsistent with the recording script.

예를 들어, 어텐션 얼라인먼트의 품질을 평가하기 위해 합성기(520)는 어텐션 얼라인먼트의 인코더 스코어(encoder score), 디코더 스코어(decoder score), 집중 스코어(concentration score) 또는 스텝 스코어(step score)를 연산할 수 있다. For example, in order to evaluate the quality of attention alignment, the synthesizer 520 calculates an encoder score, a decoder score, a concentration score, or a step score of the attention alignment. can

합성기(520)는 인코더 스코어, 디코더 스코어, 집중 스코어 및 스텝 스코어 중 어느 하나의 스코어를 어텐션 얼라인먼트의 품질을 평가하기 위한 최종 스코어로 출력할 수 있다. The synthesizer 520 may output any one of an encoder score, a decoder score, a concentration score, and a step score as a final score for evaluating the quality of attention alignment.

또는 합성기(520)는 인코더 스코어, 디코더 스코어, 집중 스코어 및 스텝 스코어 중 적어도 하나의 스코어를 조합한 값을 어텐션 얼라인먼트의 품질을 평가하기 위한 최종 스코어로 출력할 수 있다. Alternatively, the synthesizer 520 may output a value obtained by combining at least one of an encoder score, a decoder score, a concentration score, and a step score as a final score for evaluating the quality of attention alignment.

도 8은 합성기가 인코더 스코어를 연산하는 일 실시예를 설명하기 위한 도면이다.8 is a diagram for explaining an embodiment in which a synthesizer calculates an encoder score.

도 8을 참고하면, 어텐션 얼라인먼트에서 디코더 타임 스텝 '50'에 대응하는 값들(810)이 표시되어 있다. 어텐션 얼라인먼트는 각각의 소프트맥스(softmax) 결과 값을 기록하여 트랜스포즈(transpose)하였기 때문에, 디코더 타임 스텝을 구성하는 단일 스텝에 해당하는 값들을 모두 더하면 1이다. 즉, 도 8의 값들(810)을 모두 더하면 1이 된다. Referring to FIG. 8 , values 810 corresponding to decoder time step '50' in attention alignment are displayed. Since the attention alignment is transposed by recording each softmax result value, it is 1 if all values corresponding to a single step constituting the decoder time step are added up. That is, if all the values 810 of FIG. 8 are added up, 1 is obtained.

한편, 도 8의 값들(810) 중 상위 a 개의 값들(820)을 참조하면, 합성기(520)가 디코더 타임 스텝의 '50'에 대응하는 시점에 어느 음소에 집중하여 스펙트로그램을 생성하고 있는지를 판단할 수 있다. 따라서, 합성기(520)는 디코더 타임 스텝을 구성하는 각각의 스텝들에 대하여 인코더 스코어를 연산함으로써, 스펙트로그램이 입력된 텍스트를 적절하게 표현하였는지 여부(즉, 스펙트로그램의 품질)를 확인할 수 있다.Meanwhile, referring to the upper a values 820 among the values 810 of FIG. 8 , it is determined which phoneme the synthesizer 520 is focusing on at the point corresponding to '50' of the decoder time step to generate the spectrogram. can judge Accordingly, the synthesizer 520 may check whether the spectrogram appropriately represents the input text (ie, the quality of the spectrogram) by calculating the encoder score for each step constituting the decoder time step.

예를 들어, 합성기(520)는 아래의 수학식 1에 기초하여 디코더 타임 스텝을 기준으로 s 번째 스텝에서의 인코더 스코어를 연산할 수 있다.For example, the synthesizer 520 may calculate the encoder score in the s-th step based on the decoder time step based on Equation 1 below.

Figure 112021087530280-pat00001
Figure 112021087530280-pat00001

수학식 1에서,

Figure 112021087530280-pat00002
는 어텐션 얼라인먼트에서 디코더 타임 스텝을 기준으로 s 번째 스텝의 i번째 상위 값을 나타낸다(s 및 i는 1 이상의 자연수).In Equation 1,
Figure 112021087530280-pat00002
denotes the i-th upper value of the s-th step based on the decoder time step in attention alignment (s and i are natural numbers greater than or equal to 1).

즉, 합성기(520)는 디코더 타입 스텝의 제s 스텝에서의 값들 중에서 n 개의 값들을 추출한다(n은 2 이상의 자연수). 여기에서, n개의 값들은 제 s 스텝에서의 상위 n개의 값들을 의미할 수 있다.That is, the synthesizer 520 extracts n values from values in the s-th step of the decoder type step (n is a natural number equal to or greater than 2). Here, the n values may mean the top n values in the s-th step.

그리고, 합성기(520)는 추출된 n 개의 값들을 이용하여 제 s 스텝에서의 제 s 스코어(

Figure 112021087530280-pat00003
)를 연산한다. 예를 들어, 합성기(520)는 추출된 n 개의 값들을 더하여 제 s 스코어(
Figure 112021087530280-pat00004
)를 연산할 수 있다.Then, the synthesizer 520 uses the extracted n values to obtain an s-th score (
Figure 112021087530280-pat00003
) is calculated. For example, the synthesizer 520 adds the extracted n values to the s-th score (
Figure 112021087530280-pat00004
) can be calculated.

최종 인코더 스코어(

Figure 112021087530280-pat00005
)는 어텐션 얼라인먼트의 모든 디코더 타임 스텝 각각에 대하여 연산한 인코더 스코어들에 기초하여 하기 수학식 2와 같이 연산될 수 있다. final encoder score (
Figure 112021087530280-pat00005
) may be calculated as in Equation 2 below based on encoder scores calculated for each of all decoder time steps of attention alignment.

Figure 112021087530280-pat00006
Figure 112021087530280-pat00006

상기 수학식 2에서,

Figure 112021087530280-pat00007
은 스펙트로그램의 x축 길이(frame length)에 당하고, s는 디코더 타임 스텝의 인덱스에 해당한다. 수학식 2를 구성하는 다른 변수들은 수학식 1에서 설명한 바와 동일하다.In Equation 2 above,
Figure 112021087530280-pat00007
corresponds to the x-axis frame length of the spectrogram, and s corresponds to the index of the decoder time step. Other variables constituting Equation 2 are the same as described in Equation 1.

도 9는 합성기가 디코더 스코어를 연산하는 일 실시예를 설명하기 위한 도면이다.9 is a diagram for explaining an embodiment in which a synthesizer calculates a decoder score.

도 9를 참고하면, 어텐션 얼라인먼트에서 인코더 타임 스텝 '40'에 대응하는 값들(910)이 표시되어 있다. 또한, 값들(910) 중에서 상위 b개의 값들(920)이 표시되어 있다.Referring to FIG. 9 , values 910 corresponding to encoder time step '40' in attention alignment are displayed. Also, the top b values 920 among the values 910 are indicated.

도 8을 참고하여 상술한 바와 같이, 인코더 스코어는 디코더 타임 스텝을 구성하는 각각의 스텝에서의 값들로 연산된다. 반면에, 디코더 스코어는 인코더 타임 스텝을 구성하는 각각의 스텝에서의 값들로 연산된다. 인코더 스코어와 디코더 스코어의 목적은 서로 다르다. 구체적으로, 인코더 스코어는 어텐션 모듈이 매 시간마다 집중해야 할 음소를 잘 결정하였는가를 판단하는 지표이다. 반면에, 디코더 스코어는 어텐션 모듈이 입력 텍스트를 구성하는 특정 음소에 대해서 시간 할당을 누락하지 않고 잘 집중하였는가를 판단하는 지표이다.As described above with reference to FIG. 8 , the encoder score is calculated with values in each step constituting the decoder time step. On the other hand, the decoder score is computed with values at each step constituting the encoder time step. Encoder scores and decoder scores have different purposes. Specifically, the encoder score is an index for determining whether the attention module has properly determined the phoneme to be focused on every time. On the other hand, the decoder score is an index for determining whether the attention module concentrates well on a specific phoneme constituting the input text without omitting time allocation.

예를 들어, 합성기(520)는 아래의 수학식 3에 기초하여 인코더 타임 스텝을 기준으로 s 번째 스텝에서의 디코더 스코어를 연산할 수 있다.For example, the synthesizer 520 may calculate the decoder score in the s-th step based on the encoder time step based on Equation 3 below.

Figure 112021087530280-pat00008
Figure 112021087530280-pat00008

상기 수학식 3에서,

Figure 112021087530280-pat00009
는 어텐션 얼라인먼트에서 인코더 타임 스텝을 기준으로 s번째 스텝의 i번째 상위 값을 나타낸다(s 및 i는 1 이상의 자연수).In Equation 3 above,
Figure 112021087530280-pat00009
denotes the i-th upper value of the s-th step based on the encoder time step in attention alignment (s and i are natural numbers greater than or equal to 1).

즉, 합성기(520)는 인코더 타입 스텝의 제 s 스텝에서의 값들 중에서 m 개의 값들을 추출한다(m은 2 이상의 자연수). 여기에서, m 개의 값들은 제s 스텝에서의 상위 m개의 값들을 의미할 수 있다.That is, the synthesizer 520 extracts m values from values in the s-th step of the encoder type step (m is a natural number equal to or greater than 2). Here, the m values may mean the m uppermost values in the s-th step.

그리고, 합성기(520)는 추출된 m 개의 값들을 이용하여 제 s 스텝에서의 제 s 스코어(

Figure 112021087530280-pat00010
)를 연산한다. 예를 들어, 합성기(520)는 추출된 m 개의 값들을 더하여 제 s 스코어(
Figure 112021087530280-pat00011
)를 연산할 수 있다.Then, the synthesizer 520 uses the extracted m values to obtain an s-th score in the s-th step (
Figure 112021087530280-pat00010
) is calculated. For example, the synthesizer 520 adds the extracted m values to the s-th score (
Figure 112021087530280-pat00011
) can be calculated.

최종 디코더 스코어(

Figure 112021087530280-pat00012
)는 어텐션 얼라인먼트의 모든 인코더 타임 스텝 각각에 대하여 연산한 디코더 스코어들에 기초하여 하기 수학식 4와 같이 연산될 수 있다. final decoder score (
Figure 112021087530280-pat00012
) may be calculated as in Equation 4 below based on decoder scores calculated for each of all encoder time steps of attention alignment.

Figure 112021087530280-pat00013
Figure 112021087530280-pat00013

상기 수학식 4에서,

Figure 112021087530280-pat00014
은 집합 x를 구성하는 값들 중에서 y번째로 작은 값(즉, 하위 y 번째 값)을 의미하고,
Figure 112021087530280-pat00015
은 인코더 타임 스텝을 의미한다.
Figure 112021087530280-pat00016
은 디코더 스코어의 길이를 의미하여, 하위
Figure 112021087530280-pat00017
번째의 값까지 모두 더한 값이 된다.In Equation 4 above,
Figure 112021087530280-pat00014
is the y-th smallest value (that is, the lower y-th value) among the values constituting the set x,
Figure 112021087530280-pat00015
is the encoder time step.
Figure 112021087530280-pat00016
is the length of the decoder score,
Figure 112021087530280-pat00017
It becomes the sum of all values up to the second value.

도 10은 합성기가 집중 스코어(concentration score)를 연산하는 일 실시예를 설명하기 위한 도면이다.10 is a diagram for explaining an embodiment in which a synthesizer calculates a concentration score.

일 실시예에 따르면, 합성기(520)는 디코더의 타임 스텝들 중 제 1 타임 스텝에 대응하는 값들 중에서 첫번째로 큰 제 1 값 및 두번째로 큰 제 2 값을 도출할 수 있다. 합성기(520)는 제 1 값에 대응하는 인코더 타임 스텝을 나타내는 제 1 인덱스 값 및 제 2 값에 대응하는 인코더 타임 스텝을 나타내는 제 2 인덱스 값의 차이 값을 이용하여 집중 스코어를 연산할 수 있다. According to an embodiment, the synthesizer 520 may derive a first largest value and a second largest value among values corresponding to the first time step among the time steps of the decoder. The synthesizer 520 may calculate the concentration score by using a difference value between a first index value indicating an encoder time step corresponding to the first value and a second index value indicating an encoder time step corresponding to the second value.

어텐션 얼라인먼트의 품질을 판단할 때, 합성기(520)가 어느 음소에 잘못 집중하는 경우, 다시 정확한 음소에 집중하기 위해 되돌아갈 때 잘못 집중한 부분과 되돌아간 부분의 차이가 생길 수 있다. 이에 따라, 어텐션 얼라인먼트에서 특정 디코더 타임 스텝에 대응하는 값들 중 첫번째로 큰 값에 대응하는 인코더 타임 스텝을 나타내는 인덱스와 두번째로 큰 값에 대응하는 인코더 타임 스텝을 나타내는 인덱스 간의 차이가 클수록 화자가 녹음 대본에 해당하는 텍스트와 일치하지 않게 녹음을 수행하였을 가능성이 크다.When determining the quality of attention alignment, if the synthesizer 520 erroneously concentrates on a certain phoneme, a difference may occur between the erroneously focused portion and the returned portion when returning to focus on the correct phoneme again. Accordingly, in attention alignment, the greater the difference between the index indicating the encoder time step corresponding to the first largest value among the values corresponding to the specific decoder time step and the index indicating the encoder time step corresponding to the second largest value, the greater the speaker's recording script It is highly probable that the recording was performed inconsistent with the text corresponding to .

예를 들어, 합성기(520)는 아래의 수학식 5에 기초하여 디코더 타임 스텝을 기준으로 s 번째 스텝에서의 집중 스코어를 연산할 수 있다.For example, the synthesizer 520 may calculate the concentration score at the s-th step based on the decoder time step based on Equation 5 below.

Figure 112021087530280-pat00018
Figure 112021087530280-pat00018

상기 수학식 5에서 s는 디코더 타임 스텝의 인덱스에 해당하고,

Figure 112021087530280-pat00019
는 디코더 타임 스텝을 기준으로 s 번째 스텝에 해당하는 값들 중 첫번째로 큰 제 1 값에 대응하는 인코더 타임 스텝을 나타내는 제 1 인덱스 값과 두번째로 큰 제 2 값에 대응하는 인코더 타임 스텝을 나타내는 제 2 인덱스 값의 차이값에 해당할 수 있다. 예를 들어, 제 1 인덱스와 제 2 인덱스의 차이가 1이면, 집중 스코어의 값은 0이 된다. 그러나, 제 1 인덱스와 제 2 인덱스의 차이가 2 이상이면 집중 스코어의 값은 음의 값을 가지게 된다. 따라서, 집중 스코어의 값이 클수록 화자가 녹음 대본에 해당하는 텍스트와 일치하게 녹음을 수행하였다고 볼 수 있다.In Equation 5, s corresponds to the index of the decoder time step,
Figure 112021087530280-pat00019
is a first index value indicating an encoder time step corresponding to a first largest value among values corresponding to an s-th step based on a decoder time step, and a second value indicating an encoder time step corresponding to a second largest value of the decoder time step. It may correspond to the difference value of the index value. For example, if the difference between the first index and the second index is 1, the value of the concentration score becomes 0. However, if the difference between the first index and the second index is 2 or more, the value of the concentration score has a negative value. Therefore, as the concentration score increases, it can be seen that the speaker performed the recording in accordance with the text corresponding to the recording script.

예를 들어 도 10을 참고하면, 디코더 타임 스텝의 '50'에 대응하는 값들(1010)이 표시되어 있다. 디코더 타임 스텝의 '50'에 대응하는 값들(1010) 중 첫번째로 큰 값에 대응하는 인코더 타임 스텝의 인덱스는 4이고, 두번째로 큰 값에 대응하는 인코더 타임 스텝의 인덱스는 5이다. 따라서, 디코더 타임 스텝의 '50'에서의 집중 스코어는 0이다. 반면, 디코더 타임 스텝의 '110'에 대응하는 값들(1020) 중 첫번째로 큰 값에 대응하는 인코더 타임 스텝의 인덱스는 0이고, 두번째로 큰 값에 대응하는 인코더 타임 스텝의 인덱스는 6이다. 따라서, 디코더 타임 스텝의 '110'에서의 집중 스코어는 -25이다. 디코더 타임 스텝의 '50'에서와 달리, 디코더 타임 스텝의 '110'에서의 어텐션 얼라인먼트는 명확하지 않은 부분이 포함되어 있음을 알 수 있다. For example, referring to FIG. 10 , values 1010 corresponding to '50' of the decoder time step are indicated. The index of the encoder time step corresponding to the first largest value among the values 1010 corresponding to '50' of the decoder time step is 4, and the index of the encoder time step corresponding to the second largest value is 5. Therefore, the concentration score at '50' of the decoder time step is zero. On the other hand, the index of the encoder time step corresponding to the first largest value among the values 1020 corresponding to '110' of the decoder time step is 0, and the index of the encoder time step corresponding to the second largest value is 6. Therefore, the concentration score at '110' of the decoder time step is -25. It can be seen that, unlike in '50' of the decoder time step, the attention alignment at '110' of the decoder time step includes an unclear part.

최종 집중 스코어(

Figure 112021087530280-pat00020
)는 어텐션 얼라인먼트의 모든 디코더 타임 스텝 각각에 대하여 연산한 집중 스코어들에 기초하여 하기 수학식 6과 같이 연산될 수 있다. Final Concentration Score (
Figure 112021087530280-pat00020
) may be calculated as in Equation 6 below based on concentration scores calculated for each of all decoder time steps of attention alignment.

Figure 112021087530280-pat00021
Figure 112021087530280-pat00021

상기 수학식 6에서,

Figure 112021087530280-pat00022
은 스펙트로그램의 x축 길이(frame length)에 당하고, 수학식 6을 구성하는 다른 변수들은 수학식 5에서 설명한 바와 동일하다.In Equation 6 above,
Figure 112021087530280-pat00022
corresponds to the x-axis frame length of the spectrogram, and other variables constituting Equation 6 are the same as described in Equation 5.

도 11은 합성기가 스텝 스코어(step score)를 연산하는 일 실시예를 설명하기 위한 도면이다.11 is a diagram for explaining an embodiment in which a synthesizer calculates a step score.

일 실시예에 따르면, 합성기(520)는 디코더 타임 스텝들 중 제 1 타임 스텝에 대응하는 값들 중에서 제 1 최대값을 도출하고, 제 1 타임 스텝의 다음 스텝에 해당하는 제 2 타임 스텝에 대응하는 값들 중에서 제 2 최대값을 도출할 수 있다. 합성기(520)는 제 1 최대값에 대응하는 인코더 타임 스텝을 나타내는 제 1 인덱스 값 및 제 2 최대값에 대응하는 인코더 타임 스텝을 나타내는 제 2 인덱스 값을 비교할 수 있다. 제 1 인덱스 값이 제 2 인덱스 값보다 큰 경우, 합성기(520)는 제 1 인덱스 값과 상기 제 2 인덱스 값의 차이값에 기초하여 스텝 스코어를 연산할 수 있다. According to an embodiment, the synthesizer 520 derives a first maximum value from among values corresponding to a first time step among decoder time steps, and a second time step corresponding to a next step of the first time step. A second maximum value may be derived from among the values. The synthesizer 520 may compare the first index value indicating the encoder time step corresponding to the first maximum value and the second index value indicating the encoder time step corresponding to the second maximum value. When the first index value is greater than the second index value, the synthesizer 520 may calculate a step score based on a difference between the first index value and the second index value.

예를 들어, 합성기(520)가 특정 스펙트로그램을 정답이 아닌 다른 음소로 착각더라도, teacher-forcing 방식에 의해 정답 스펙트로그램이 입력되므로 합성기(520)는 정답인 음소로 다시 집중할 수 있다. 이러한 경우, 어텐션 얼라인먼트에서 특정 디코더 타임 스텝에 대응하는 값들 중 최대값에 대응하는 인코더 타임 스텝을 나타내는 인덱스 값이, 특정 디코더 타임 스텝의 다음 타임 스텝에 대응하는 값들 중 최대값에 대응하는 인코더 타임 스텝을 나타내는 인덱스 값보다 커지는 역주행의 모습을 보일 수 있다. For example, even if the synthesizer 520 mistake a specific spectrogram for a phoneme other than the correct answer, since the correct answer spectrogram is input by the teacher-forcing method, the synthesizer 520 can focus on the correct phoneme again. In this case, the index value indicating the encoder time step corresponding to the maximum value among the values corresponding to the specific decoder time step in the attention alignment is the encoder time step corresponding to the maximum value among the values corresponding to the next time step of the specific decoder time step. It may show a reverse run that becomes larger than the index value representing .

이에 따라, 어텐션 얼라인먼트에서 특정 디코더 타임 스텝에 대응하는 값들 중 최대값에 대응하는 인코더 타임 스텝을 나타내는 인덱스와 특정 디코더 타임 스텝의 다음 스텝에 대응하는 값들 중 최대값에 대응하는 인코더 타임 스텝을 나타내는 인덱스 간의 차이가 클수록 화자가 녹음 대본에 해당하는 텍스트와 일치하지 않게 녹음을 수행하였을 가능성이 크다.Accordingly, in attention alignment, an index indicating an encoder time step corresponding to a maximum value among values corresponding to a specific decoder time step and an index indicating an encoder time step corresponding to a maximum value among values corresponding to a next step of a specific decoder time step. The greater the difference between the two, the greater the possibility that the speaker performed the recording inconsistent with the text corresponding to the recording script.

예를 들어, 합성기(520)는 아래의 수학식 7에 기초하여 디코더 타임 스텝을 기준으로 s 번째 스텝에서의 스텝 스코어를 연산할 수 있다.For example, the synthesizer 520 may calculate the step score in the s-th step based on the decoder time step based on Equation 7 below.

Figure 112021087530280-pat00023
Figure 112021087530280-pat00023

상기 수학식 7에서 s는 디코더 타임 스텝의 인덱스에 해당하고,

Figure 112021087530280-pat00024
는 디코더 타임 스텝을 기준으로 s-1 번째 스텝에 해당하는 값들 중 최대값에 대응하는 인코더 타임 스텝을 나타내는 제 1 인덱스 값과 s 번째 스텝에 해당하는 값들 중 최대값에 대응하는 인코더 타임 스텝을 나타내는 제 2 인덱스 값을 비교한 결과, 제 1 인덱스 값이 제 2 인덱스 값보다 큰 경우 제 1 인덱스 갑과 제 2 인덱스 값의 차이값에 해당할 수 있다. 제 1 인덱스 값이 제 2 인덱스 값 이하인 경우에는,
Figure 112021087530280-pat00025
는 0에 해당할 수 있다. 따라서, 스텝 스코어의 값이 클수록 화자가 녹음 대본과 일치하게 녹음을 수행하였다고 볼 수 있다.In Equation 7, s corresponds to the index of the decoder time step,
Figure 112021087530280-pat00024
is a first index value indicating the encoder time step corresponding to the maximum value among the values corresponding to the s-1 th step based on the decoder time step and the encoder time step corresponding to the maximum value among the values corresponding to the s th step As a result of comparing the second index values, when the first index value is greater than the second index value, it may correspond to a difference value between the first index value and the second index value. When the first index value is less than or equal to the second index value,
Figure 112021087530280-pat00025
may correspond to 0. Therefore, it can be said that the speaker performed the recording in accordance with the recording script as the value of the step score was larger.

예를 들어 도 11을 참고하면, 어텐션 얼라인먼트에서 디코더 타임 스텝들 각각에 대응하는 값들 중 최대값에 대응하는 인코더 타임 스텝을 나타내는 인덱스들(1110)이 표시되어 있다. 디코더 타임 스텝의 인덱스가 증가할수록 최대값에 대응하는 인코더 타임 스텝의 인덱스의 값도 대체적으로 증가한다. 그러나, 특정 디코더 타임 스텝에 대응하는 값들 중 최대값에 대응하는 인코더 타임 스텝을 나타내는 인덱스 값이 다음 타임 스텝에 대응하는 값들 중 최대값에 대응하는 인코더 타임 스텝의 인덱스 값보다 커지는 역주행 구간(1120)이 존재함을 알 수 있다. 역주행 구간(1120)이 아닌 구간에서는 스텝 스코어의 값이 0이지만, 역주행 구간(1120)에서 스텝 스코어의 값은 음의 값을 가지게 된다. For example, referring to FIG. 11 , indices 1110 indicating an encoder time step corresponding to a maximum value among values corresponding to respective decoder time steps in attention alignment are indicated. As the index of the decoder time step increases, the value of the index of the encoder time step corresponding to the maximum value also generally increases. However, the reverse running section 1120 in which the index value indicating the encoder time step corresponding to the maximum value among the values corresponding to the specific decoder time step becomes greater than the index value of the encoder time step corresponding to the maximum value among the values corresponding to the next time step. It can be seen that this exists. In a section other than the reverse running section 1120 , the value of the step score is 0 , but in the reverse running section 1120 , the step score has a negative value.

최종 스텝 스코어(

Figure 112021087530280-pat00026
)는 어텐션 얼라인먼트의 모든 디코더 타임 스텝 각각에 대하여 연산한 스텝 스코어들에 기초하여 하기 수학식 8과 같이 연산될 수 있다. final step score (
Figure 112021087530280-pat00026
) may be calculated as in Equation 8 below based on the step scores calculated for each of all decoder time steps of attention alignment.

Figure 112021087530280-pat00027
Figure 112021087530280-pat00027

상기 수학식 8에서,

Figure 112021087530280-pat00028
은 스펙트로그램의 x축 길이(frame length)에 당하고, 수학식 6을 구성하는 다른 변수들은 수학식 5에서 설명한 바와 동일하다.In Equation 8 above,
Figure 112021087530280-pat00028
corresponds to the x-axis frame length of the spectrogram, and other variables constituting Equation 6 are the same as described in Equation 5.

정리하면, 합성기(520)는 도 8 내지 도 11에서 상술한 인코더 스코어, 디코더 스코어, 집중 스코어 및 스텝 스코어 중 어느 하나의 스코어를 어텐션 얼라인먼트의 품질을 평가하기 위한 최종 스코어로 출력할 수 있다. 합성기(520)는 최종 스코어를 기 설정된 값(임계값)과 비교하여, 최종 스코어가 임계값보다 작은 경우에는 화자가 녹음 대본에 해당하는 텍스트와 일치하지 않게 녹음을 수행하였다고 평가할 수 있다. In summary, the synthesizer 520 may output any one of the encoder score, decoder score, concentration score, and step score described above with reference to FIGS. 8 to 11 as a final score for evaluating the quality of attention alignment. The synthesizer 520 compares the final score with a preset value (threshold value), and when the final score is less than the threshold value, the synthesizer 520 may evaluate that the speaker performed the recording inconsistent with the text corresponding to the recording script.

또는, 합성기(520)는 도 8 내지 도 11에서 상술한 인코더 스코어, 디코더 스코어, 집중 스코어 및 스텝 스코어 중 적어도 하나의 스코어를 조합한 값을 어텐션 얼라인먼트의 품질을 평가하기 위한 최종 스코어로 출력할 수 있다. 예를 들어, 어텐션 얼라인먼트의 품질을 평가하기 위한 최종 스코어인

Figure 112021087530280-pat00029
는 하기 수학식 9와 같이 연산될 수 있다. Alternatively, the synthesizer 520 may output a value obtained by combining at least one of the encoder score, decoder score, concentration score, and step score described above in FIGS. 8 to 11 as a final score for evaluating the quality of attention alignment. there is. For example, the final score for evaluating the quality of attention alignment is
Figure 112021087530280-pat00029
can be calculated as in Equation 9 below.

Figure 112021087530280-pat00030
Figure 112021087530280-pat00030

수학식 9에서, 인코더 스코어(

Figure 112021087530280-pat00031
)는 상술한 수학식 2에 따라 연산될 수 있고, 디코더 스코어(
Figure 112021087530280-pat00032
)는 상술한 수학식 4에 따라 연산될 수 있다. 또한, 집중 스코어(
Figure 112021087530280-pat00033
)는 상술한 수학식 6에 따라 연산될 수 있고, 스텝 스코어(
Figure 112021087530280-pat00034
)는 상술한 수학식 8에 따라 연산될 수 있다. 또한,
Figure 112021087530280-pat00035
,
Figure 112021087530280-pat00036
,
Figure 112021087530280-pat00037
Figure 112021087530280-pat00038
은 각각 임의의 양의 실수에 해당할 수 있다. In Equation 9, the encoder score (
Figure 112021087530280-pat00031
) can be calculated according to Equation 2 described above, and the decoder score (
Figure 112021087530280-pat00032
) can be calculated according to Equation 4 above. Also, the concentration score (
Figure 112021087530280-pat00033
) can be calculated according to Equation 6 described above, and the step score (
Figure 112021087530280-pat00034
) can be calculated according to Equation 8 described above. also,
Figure 112021087530280-pat00035
,
Figure 112021087530280-pat00036
,
Figure 112021087530280-pat00037
and
Figure 112021087530280-pat00038
may each correspond to any positive real number.

마찬가지로, 합성기(520)는 최종 스코어를 기 설정된 값(임계값)과 비교하여, 최종 스코어가 임계값보다 작은 경우에는 화자가 녹음 대본과 일치하지 않게 녹음을 수행하였다고 평가할 수 있다.Similarly, the synthesizer 520 may compare the final score with a preset value (threshold value), and when the final score is less than the threshold value, it may be evaluated that the speaker performed the recording inconsistent with the recording script.

도 12는 녹음의 품질을 평가하는 방법의 일 실시예를 도시한 흐름도이다.12 is a flowchart illustrating one embodiment of a method for evaluating the quality of a recording.

도 12를 참조하면, 단계 1210에서 합성부는 특정 텍스트에 해당하는 녹음 대본에 기초하여 화자가 녹음을 수행한 녹음 데이터를 수신할 수 있다. Referring to FIG. 12 , in operation 1210 , the synthesizer may receive recorded data recorded by a speaker based on a recording script corresponding to a specific text.

단계 1220에서, 합성부는 녹음 데이터에 기초하여 제 1 스펙트로그램들 및 화자 임베딩 벡터를 생성할 수 있다. In operation 1220, the synthesizer may generate first spectrograms and a speaker embedding vector based on the recorded data.

일 실시예에 따르면, 합성부는 제 1 스펙트로그램들을 제 2 스펙트로그램들을 생성하는 합성기에 포함된 디코더(decoder)의 각 타임 스텝에 입력하고, 제 1 스펙트로그램들에 기초하여 녹음 대본에 대응하는 각 음소들을 추론한 결과 제 2 스펙트로그램들을 생성할 수 있다.According to an embodiment, the synthesizer inputs the first spectrograms to each time step of a decoder included in the synthesizer for generating second spectrograms, and each corresponding to the recording script based on the first spectrograms As a result of inferring the phonemes, second spectrograms may be generated.

단계 1230에서, 합성부는 화자 임베딩 벡터 및 제 1 스펙트로그램들에 기초하여 특정 텍스트에 대응하는 제 2 스펙트로그램들을 생성할 수 있다. In operation 1230, the synthesizer may generate second spectrograms corresponding to the specific text based on the speaker embedding vector and the first spectrograms.

단게 1240에서, 합성부는 제 2 스펙트로그램들에 대응하는 어텐션 얼라인먼트(attention alignment)의 스코어를 연산할 수 있다.In step 1240, the synthesizer may calculate a score of attention alignment corresponding to the second spectrograms.

일 실시예에 따르면, 어텐션 얼라이먼트는 제 2 스펙트로그램들을 생성하는 합성기에 포함된 디코더(decoder)의 타임 스텝들에 대응하는 제 1 축 및 합성기에 포함된 인코더(encoder)의 타임 스텝들에 대응하는 제 2 축에 기초하여 표현될 수 있다.According to an embodiment, the attention alignment corresponds to a first axis corresponding to time steps of a decoder included in the synthesizer for generating the second spectrograms and corresponding to time steps of an encoder included in the synthesizer. It may be expressed based on the second axis.

또한, 일 실시예에 따르면 합성부는 디코더의 타임 스텝들 중 제 1 타임 스텝에 대응하는 값들 중에서 첫번째로 큰 제 1 값 및 두번째로 큰 제 2 값을 도출하고, 제 1 값에 대응하는 인코더 타임 스텝을 나타내는 제 1 인덱스 값 및 제 2 값에 대응하는 인코더 타임 스텝을 나타내는 제 2 인덱스 값의 차이값을 이용하여 스코어를 연산할 수 있다.Further, according to an embodiment, the synthesizing unit derives a first largest value and a second largest second value among values corresponding to the first time step among the time steps of the decoder, and the encoder time step corresponding to the first value A score may be calculated using a difference value between a first index value indicating , and a second index value indicating an encoder time step corresponding to the second value.

또한, 일 실시예에 따르면 합성부는 디코더 타임 스텝들 중 제 1 타임 스텝에 대응하는 값들 중에서 제 1 최대값을 도출하고, 제 1 타임 스텝의 다음 스텝에 해당하는 제 2 타임 스텝에 대응하는 값들 중에서 제 2 최대값을 도출할 수 있다. 합성부는 제 1 최대값에 대응하는 인코더 타임 스텝을 나타내는 제 1 인덱스 값 및 제 2 최대값에 대응하는 인코더 타임 스텝을 나타내는 제 2 인덱스 값을 비교하고, 제 1 인덱스 값이 제 2 인덱스 값보다 큰 경우 제 1 인덱스 값과 제 2 인덱스 값의 차이 값에 기초하여 스코어를 연산할 수 있다. Also, according to an embodiment, the synthesizing unit derives a first maximum value from among the values corresponding to the first time step among the decoder time steps, and from among the values corresponding to the second time step corresponding to the next step of the first time step, A second maximum can be derived. The synthesizing unit compares a first index value indicating an encoder time step corresponding to the first maximum value and a second index value indicating an encoder time step corresponding to the second maximum value, wherein the first index value is greater than the second index value In this case, a score may be calculated based on a difference value between the first index value and the second index value.

단계 1250에서, 합성부는 스코어에 기초하여 녹음 데이터의 품질을 평가할 수 있다. In operation 1250, the synthesizer may evaluate the quality of the recorded data based on the score.

일 실시예에 따르면, 합성부는 스코어를 기 설정된 값과 비교하고, 비교 결과 화자가 녹음 대본에 일치하게 녹음을 수행하였는지 여부를 나타내는 녹음 데이터의 품질을 평가할 수 있다.According to an embodiment, the synthesizer may compare the score with a preset value, and evaluate the quality of the recorded data indicating whether the speaker performed the recording in accordance with the recording script as a result of the comparison.

본 개시의 다양한 실시예들은 기기(machine) 의해 읽을 수 있는 저장 매체(storage medium)에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어(예: 프로그램))로서 구현될 수 있다. 예를 들면, 기기의 프로세서는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, ‘비일시적’은 저장매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.Various embodiments of the present disclosure may be implemented as software (eg, a program) including one or more instructions stored in a storage medium readable by a machine. For example, the processor of the device may call at least one of the one or more instructions stored from the storage medium and execute it. This enables the device to be operated to perform at least one function according to at least one command called. The one or more instructions may include code generated by a compiler or code executable by an interpreter. The device-readable storage medium may be provided in the form of a non-transitory storage medium. Here, 'non-transitory' only means that the storage medium is a tangible device and does not contain a signal (eg, electromagnetic wave), and this term is used in cases where data is semi-permanently stored in the storage medium and It does not distinguish between temporary storage cases.

본 명세서에서, “부”는 프로세서 또는 회로와 같은 하드웨어 구성(hardware component), 및/또는 프로세서와 같은 하드웨어 구성에 의해 실행되는 소프트웨어 구성(software component)일 수 있다.In this specification, “unit” may be a hardware component such as a processor or circuit, and/or a software component executed by a hardware component such as a processor.

전술한 본 명세서의 설명은 예시를 위한 것이며, 본 명세서의 내용이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.The description of the present specification described above is for illustration, and those of ordinary skill in the art to which the content of this specification belongs will understand that it can be easily modified into other specific forms without changing the technical spirit or essential features of the present invention. will be able Therefore, it should be understood that the embodiments described above are illustrative in all respects and not restrictive. For example, each component described as a single type may be implemented in a dispersed form, and likewise components described as distributed may also be implemented in a combined form.

본 실시예의 범위는 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 포함되는 것으로 해석되어야 한다.The scope of the present embodiment is indicated by the claims to be described later rather than the detailed description, and it should be construed as including all changes or modifications derived from the meaning and scope of the claims and their equivalents.

Claims (5)

녹음의 품질을 평가하는 방법에 있어서,
특정 텍스트에 해당하는 녹음 대본에 기초하여 화자가 녹음을 수행한 녹음 데이터를 수신하는 단계;
상기 녹음 데이터에 기초하여 제 1 스펙트로그램들 및 화자 임베딩 벡터를 생성하는 단계;
상기 화자 임베딩 벡터 및 상기 제 1 스펙트로그램들에 기초하여 상기 녹음 대본에 대응하는 제 2 스펙트로그램들을 생성하는 단계;
상기 제 2 스펙트로그램들에 대응하는 어텐션 얼라인먼트(attention alignment)의 스코어를 연산하는 단계; 및
상기 스코어에 기초하여 녹음 데이터의 품질을 평가하는 단계;를 포함하고,
상기 어텐션 얼라인먼트는 상기 제 2 스펙트로그램들을 생성하는 합성기에 포함된 디코더(decoder)의 타임 스텝들에 대응하는 제 1 축 및 상기 합성기에 포함된 인코더(encoder)의 타임 스텝들에 대응하는 제 2 축에 기초하여 표현되고,
상기 스코어를 연산하는 단계는,
상기 디코더의 타임 스텝들 중 제 1 타임 스텝에 대응하는 값들 중에서 첫번째로 큰 제 1 값 및 두번째로 큰 제 2 값을 도출하는 단계; 및
상기 제 1 값에 대응하는 인코더의 타임 스텝을 나타내는 제 1 인덱스 값 및 상기 제 2 값에 대응하는 인코더의 타임 스텝을 나타내는 제 2 인덱스 값의 차이값을 이용하여 상기 스코어를 연산하는 단계;
를 포함하는, 방법.
A method for evaluating the quality of a recording, comprising:
Receiving recording data in which a speaker performs recording based on a recording script corresponding to a specific text;
generating first spectrograms and a speaker embedding vector based on the recorded data;
generating second spectrograms corresponding to the recording script based on the speaker embedding vector and the first spectrograms;
calculating a score of attention alignment corresponding to the second spectrograms; and
Including; evaluating the quality of the recorded data based on the score;
The attention alignment includes a first axis corresponding to time steps of a decoder included in the synthesizer generating the second spectrograms and a second axis corresponding to time steps of an encoder included in the synthesizer. is expressed based on
The step of calculating the score is
deriving a first largest value and a second largest value among values corresponding to a first one of the time steps of the decoder; and
calculating the score using a difference value between a first index value indicating a time step of an encoder corresponding to the first value and a second index value indicating a time step of an encoder corresponding to the second value;
A method comprising
제 1 항에 있어서,
상기 제 2 스펙트로그램들을 생성하는 단계는,
제 2 스펙트로그램들을 생성하는 합성기에 포함된 디코더(decoder)의 각 타임 스텝에 상기 제 1 스펙트로그램들을 입력하는 단계; 및
상기 제 1 스펙트로그램들에 기초하여 상기 녹음 대본에 대응하는 각 음소들을 추론한 결과 상기 제 2 스펙트로그램들을 생성하는 단계;
를 포함하는 방법.
The method of claim 1,
The generating of the second spectrograms comprises:
inputting the first spectrograms at each time step of a decoder included in a synthesizer for generating second spectrograms; and
generating the second spectrograms as a result of inferring each phoneme corresponding to the recording script based on the first spectrograms;
How to include.
삭제delete 삭제delete 제 1 항에 있어서,
상기 평가하는 단계는,
상기 스코어를 기 설정된 값과 비교하는 단계; 및
상기 비교 결과 상기 화자가 상기 녹음 대본에 일치하게 녹음을 수행하였는지 여부를 나타내는 상기 녹음 데이터의 품질을 평가하는 단계;
를 포함하는, 방법.
The method of claim 1,
The evaluation step is
comparing the score with a preset value; and
evaluating the quality of the recorded data indicating whether the speaker performed the recording in accordance with the recording script as a result of the comparison;
A method comprising
KR1020210099514A 2021-07-28 2021-07-28 Method and system for evaluating the quality of recordingas KR102363955B1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020210099514A KR102363955B1 (en) 2021-07-28 2021-07-28 Method and system for evaluating the quality of recordingas
KR1020220018406A KR102408638B1 (en) 2021-07-28 2022-02-11 Method and system for evaluating the quality of recordingas
US17/814,650 US20230037892A1 (en) 2021-07-28 2022-07-25 Method and apparatus for generating speech training data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210099514A KR102363955B1 (en) 2021-07-28 2021-07-28 Method and system for evaluating the quality of recordingas

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020220018406A Division KR102408638B1 (en) 2021-07-28 2022-02-11 Method and system for evaluating the quality of recordingas

Publications (1)

Publication Number Publication Date
KR102363955B1 true KR102363955B1 (en) 2022-02-17

Family

ID=80493162

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020210099514A KR102363955B1 (en) 2021-07-28 2021-07-28 Method and system for evaluating the quality of recordingas
KR1020220018406A KR102408638B1 (en) 2021-07-28 2022-02-11 Method and system for evaluating the quality of recordingas

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020220018406A KR102408638B1 (en) 2021-07-28 2022-02-11 Method and system for evaluating the quality of recordingas

Country Status (1)

Country Link
KR (2) KR102363955B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3180785B1 (en) * 2014-12-15 2020-08-05 Baidu USA LLC Systems and methods for speech transcription

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3180785B1 (en) * 2014-12-15 2020-08-05 Baidu USA LLC Systems and methods for speech transcription

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"Memory attention: Robust Alignment Using Gating Mechanism for End-to-End Speech Synthesis", IEEE, 2020.11.06. *
최연주 외, ‘한국어 text-to-speech(TTS) 시스템을 위한 엔드투엔드 합성 방식 연구’ , 한국음성학회지, 2018.* *

Also Published As

Publication number Publication date
KR102408638B1 (en) 2022-06-15

Similar Documents

Publication Publication Date Title
KR102265972B1 (en) Method and apparatus for voice translation using a multilingual text-to-speech synthesis model
KR102401512B1 (en) Method and computer readable storage medium for performing text-to-speech synthesis using machine learning
US11929059B2 (en) Method, device, and computer readable storage medium for text-to-speech synthesis using machine learning on basis of sequential prosody feature
KR20190125154A (en) An apparatus for machine learning the psychological counseling data and a method thereof
US20120221339A1 (en) Method, apparatus for synthesizing speech and acoustic model training method for speech synthesis
KR102449209B1 (en) A tts system for naturally processing silent parts
KR102528019B1 (en) A TTS system based on artificial intelligence technology
KR20210059586A (en) Method and Apparatus for Emotional Voice Conversion using Multitask Learning with Text-to-Speech
Airaksinen et al. Data augmentation strategies for neural network F0 estimation
KR102449223B1 (en) Method and tts system for changing the speed and the pitch of the speech
US20220165247A1 (en) Method for generating synthetic speech and speech synthesis system
KR102363955B1 (en) Method and system for evaluating the quality of recordingas
KR20220071523A (en) A method and a TTS system for segmenting a sequence of characters
KR20220071522A (en) A method and a TTS system for generating synthetic speech
KR102532253B1 (en) A method and a TTS system for calculating a decoder score of an attention alignment corresponded to a spectrogram
KR102503066B1 (en) A method and a TTS system for evaluating the quality of a spectrogram using scores of an attention alignment
Jaiswal et al. A generative adversarial network based ensemble technique for automatic evaluation of machine synthesized speech
KR20240014255A (en) Method and system for evaluating the quality of recordingas
KR20240014256A (en) Method and system for evaluating the quality of recordingas
CN112951270A (en) Voice fluency detection method and device and electronic equipment
KR102463570B1 (en) Method and tts system for configuring mel-spectrogram batch using unvoice section
KR20240014250A (en) A method and a TTS system for calculating an encoder score of an attention alignment corresponded to a spectrogram
KR102463589B1 (en) Method and tts system for determining the reference section of speech data based on the length of the mel-spectrogram
CN113555006B (en) Voice information identification method and device, electronic equipment and storage medium
US20230037892A1 (en) Method and apparatus for generating speech training data

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
A107 Divisional application of patent
GRNT Written decision to grant