KR102358692B1 - Method and tts system for changing the speed and the pitch of the speech - Google Patents

Method and tts system for changing the speed and the pitch of the speech Download PDF

Info

Publication number
KR102358692B1
KR102358692B1 KR1020200161141A KR20200161141A KR102358692B1 KR 102358692 B1 KR102358692 B1 KR 102358692B1 KR 1020200161141 A KR1020200161141 A KR 1020200161141A KR 20200161141 A KR20200161141 A KR 20200161141A KR 102358692 B1 KR102358692 B1 KR 102358692B1
Authority
KR
South Korea
Prior art keywords
voice
spectrogram
speech
length
pitch
Prior art date
Application number
KR1020200161141A
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 KR1020200161141A priority Critical patent/KR102358692B1/en
Priority to US17/380,426 priority patent/US11776528B2/en
Priority to KR1020220012681A priority patent/KR102449223B1/en
Application granted granted Critical
Publication of KR102358692B1 publication Critical patent/KR102358692B1/en

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/02Methods for producing synthetic speech; Speech synthesisers
    • G10L13/033Voice editing, e.g. manipulating the voice of the synthesiser
    • G10L13/0335Pitch control
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/08Text analysis or generation of parameters for speech synthesis out of text, e.g. grapheme to phoneme translation, prosody generation or stress or intonation determination
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/03Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters
    • G10L25/18Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters the extracted parameters being spectral information of each sub-band

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Multimedia (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Time-Division Multiplex Systems (AREA)
  • Telephonic Communication Services (AREA)

Abstract

Provided is a method for synthesizing a voice that changes in speed and pitch. The method of the present invention performs a short-time Fourier transform on a first voice signal based on a first hop length and a first window length to generate a spectrogram, and generates voice signals of sections having a second window length at a second hop length interval from the spectrogram. Here, a ratio of the first hop length to the second hop length is equal to a value of a double speed rate, and a ratio of the first window length to the second window length may be set to be equal to a value of a pitch change rate to generate the second voice signal for which the speed and the pitch are changed. Therefore, the present invention is capable of providing a high-quality voice.

Description

음성의 속도 및 피치를 변경하는 방법 및 음성 합성 시스템{METHOD AND TTS SYSTEM FOR CHANGING THE SPEED AND THE PITCH OF THE SPEECH}Method and speech synthesis system for changing the speed and pitch of speech

본 개시는 음성의 속도 및 피치를 변경하는 방법 및 음성 합성 시스템에 관한다.The present disclosure relates to a method and a speech synthesis system for changing the speed and pitch of speech.

최근 인공 지능 기술의 발달로 음성 신호를 활용하는 인터페이스가 보편화되고 있다. 이에 따라, 주어진 상황에 따라 합성된 음성을 발화할 수 있도록 하는 음성 합성(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 sound pieces suitable for utterance during speech synthesis. The HTS method extracts parameters corresponding to speech characteristics to create a statistical model, and then 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.

실제 발화자가 말하는 듯한 자연스러운 음성을 구현할 수 있는 인공 지능 기반의 음성 합성 기술을 제공하는 데 있다. 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 an artificial intelligence-based speech synthesis technology that can freely change the speed and pitch of a speech signal synthesized from text.

해결하고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 유추될 수 있다.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 홉 길이(hop length)를 기반으로 제 1 윈도우 길이(window length)를 갖는 구간들을 설정하는 단계; 상기 구간들에 대하여 단시간 푸리에 변환(Short-time Fourier transform)을 수행하여 스펙트로그램을 생성하는 단계; 상기 제 1 음성 신호의 속도 및 피치를 변경하기 위한 배속율 및 피치 변경율을 결정하는 단계; 상기 스펙트로그램으로부터 제 2 홉 길이를 기반으로 제 2 윈도우 길이를 갖는 구간들의 음성 신호들을 생성하는 단계; 및 상기 구간들의 음성 신호들을 기반으로 속도 및 피치가 변경된 제 2 음성 신호를 생성하는 단계를 포함하고, 상기 제 2 홉 길이에 대한 제 1 홉 길이의 비는 배속율의 값과 같고, 상기 제 2 윈도우 길이에 대한 제 1 윈도우 길이의 비는 피치 변경율의 값과 같도록 설정되는, 방법을 제공할 수 있다. As a technical means for achieving the above technical problem, a first aspect of the present disclosure is to set sections having a first window length based on a first hop length in a first voice signal. step; generating a spectrogram by performing a short-time Fourier transform on the sections; determining a multiplication rate and a pitch change rate for changing the speed and pitch of the first voice signal; generating speech signals of sections having a second window length based on a second hop length from the spectrogram; and generating a second voice signal whose speed and pitch are changed based on the voice signals of the sections, wherein a ratio of the first hop length to the second hop length is equal to a value of the speed ratio, and the second It may provide a method, wherein the ratio of the first window length to the window length is set to be equal to the value of the pitch change rate.

또한, 상기 제 2 홉 길이의 값은 기 설정된 값에 해당하고, 상기 제 1 홉 길이는 상기 제 2 홉 길이에 상기 배속율을 곱한 값과 같도록 설정될 수 있다. Also, the value of the second hop length may correspond to a preset value, and the first hop length may be set to be equal to a value obtained by multiplying the second hop length by the multiplication rate.

또한, 제 1 윈도우 길이의 값은 기 설정된 값에 해당하고, 상기 제 2 윈도우 길이는 상기 제 1 윈도우 길이를 상기 피치 변경율로 나눈 값과 같도록 설정될 수 있다.Also, the value of the first window length may correspond to a preset value, and the second window length may be set to be equal to a value obtained by dividing the first window length by the pitch change rate.

또한, 상기 제 2 윈도우 길이를 갖는 구간들의 음성 신호들을 생성하는 단계는, 상기 스펙트로그램에 단시간 푸리에 변환 및 역 단시간 푸리에 변환(Inverse Short-time Fourier Transform)을 반복적으로 수행하여 위상 정보를 추정하는 단계; 및 상기 위상 정보를 기반으로 상기 제 2 홉 길이를 기반으로 제 2 윈도우 길이를 갖는 구간들의 음성 신호들을 생성하는 단계를 포함할 수 있다.In addition, the generating of the speech signals of sections having the second window length may include estimating phase information by repeatedly performing a short-time Fourier transform and an inverse short-time Fourier transform on the spectrogram. ; and generating voice signals of sections having a second window length based on the second hop length based on the phase information.

본 발명은 텍스트로부터 합성된 음성 신호의 속도 및 피치를 자유롭게 변경하여 고품질의 음성을 제공할 수 있다.The present invention can provide high-quality speech by freely changing the speed and pitch of a speech signal synthesized from text.

도 1은 음성 합성 시스템의 동작을 개략적으로 나타내는 도면이다.
도 2는 음성 합성 시스템의 일 실시예를 나타내는 도면이다.
도 3은 음성 합성 시스템의 합성부의 일 실시예를 나타내는 도면이다.
도 4는 합성부를 통해 멜 스펙트로그램을 출력하는 일 실시예를 나타내는 도면이다.
도 5는 음성 합성 시스템의 일 실시예를 나타내는 도면이다.
도 6은 입력된 음성 신호에 단시간 푸리에 변환(Short-time Fourier Transform)를 수행하는 일 실시예를 나타내는 도면이다.
도 7은 음성 후처리부에서 속도를 변경하는 일 실시예를 나타내는 도면이다.
도 8은 음성 후처리부에서 피치(pitch)를 변경하는 일 실시예를 나타내는 도면이다.
도 9는 음성 신호의 속도 및 피치를 변경하는 방법의 일 실시예를 도시한 흐름도이다.
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 voice synthesis system.
4 is a diagram illustrating an embodiment of outputting a Mel spectrogram through a synthesizer.
5 is a diagram illustrating an embodiment of a speech synthesis system.
6 is a diagram illustrating an embodiment of performing a Short-time Fourier Transform on an input voice signal.
7 is a diagram illustrating an embodiment of changing a speed in a voice post-processing unit.
8 is a diagram illustrating an embodiment of changing a pitch in a voice post-processing unit.
9 is a flowchart illustrating an embodiment of a method for changing the speed and pitch of a voice signal.

본 실시예들에서 사용되는 용어는 본 실시예들에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 부분에서 상세히 그 의미를 기재할 것이다. 따라서, 본 실시예들에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 실시예들 전반에 걸친 내용을 토대로 정의되어야 한다.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, but may vary depending on the intention or precedent of a person skilled in the art, the emergence of new technology, etc. have. 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 voice synthesis system 100 and may be selected from among various speaker information pre-stored in the database of the voice synthesis system 100, but is limited thereto. no.

음성 합성 시스템(100)는 입력으로 수신한 텍스트 입력과 특정 화자 정보에 기초하여 음성(speech)를 출력할 수 있다. 예를 들어, 음성 합성 시스템(100)는 “Have a good day!” 및 “화자 1”을 입력으로 수신하여, 화자 1의 발화 특징이 반영된 “Have a good day!”에 대한 음성을 출력할 수 있다. 화자 1의 발화 특징은 화자 1의 음성, 운율, 음높이 및 감정 등 다양한 요소들 중 적어도 하나를 포함할 수 있다. 즉, 출력되는 음성은 화자 1이 “Have a good day!”를 자연스럽게 발음하는 듯한 음성일 수 있다. 음성 합성 시스템(100)의 구체적인 동작은 도 2 내지 도 4에서 후술한다. 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!”. A detailed operation of the speech synthesis system 100 will be described later with reference to FIGS. 2 to 4 .

도 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 output a spectrogram.

도 3은 음성 합성 시스템의 합성부의 일 실시예를 나타내는 도면이다. 도 3의 합성부(300)는 도 2의 합성부(220)와 동일할 수 있다. 3 is a diagram illustrating an embodiment of a synthesizer of a voice synthesis system. The synthesis unit 300 of FIG. 3 may be the same as the synthesis unit 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 synthesis unit 300 may further include other general-purpose components in addition to the components illustrated 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 synthesizing unit 300 receives the embedding vector representing the speech characteristic of the speaker from the speaker encoder 210 . can do.

합성부(300)의 텍스트 인코더는 텍스트를 입력으로 수신하여 텍스트 임베딩 벡터를 생성할 수 있다. 텍스트는 특정 자연 언어로 된 문자들의 시퀀스를 포함할 수 있다. 예를 들어, 문자들의 시퀀스는 알파벳 문자들, 숫자들, 문장 부호들 또는 기타 특수 문자들을 포함할 수 있다. The text encoder of the synthesizing unit 300 may generate a text embedding vector by receiving text as an input. 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 synthesizing unit 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.

스펙트로그램은 음성 신호의 스펙트럼을 시각화하여 그래프로 표현한 것이다. 스펙트로그램의 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.

한편, 도 3에는 도시되어 있지 않으나, 합성부(300)는 어텐션 얼라이먼트를 생성하기 위한 어텐션 모듈을 더 포함할 수 있다. 어텐션 모듈은 디코더의 특정 타임 스텝(time-step)의 출력이 인코더의 모든 타임 스텝의 출력 중 어떤 출력과 가장 연관이 있는가를 학습하는 모듈이다. 어텐션 모듈을 이용하여 더 고품질의 스펙트로그램 또는 멜 스펙트로그램을 출력할 수 있다. Meanwhile, although not shown in FIG. 3 , the synthesizing unit 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.

도 4는 합성부를 통해 멜 스펙트로그램을 출력하는 일 실시예를 나타내는 도면이다. 도 4의 합성부(400)는 도 3의 합성부(300)와 동일할 수 있다.4 is a diagram illustrating an embodiment of outputting a Mel spectrogram through a synthesizing unit. The synthesis unit 400 of FIG. 4 may be the same as the synthesis unit 300 of FIG. 3 .

도 4를 참조하면, 합성부(400)는 입력 텍스트들과 이에 대응되는 화자 임베딩 벡터들을 포함하는 리스트를 수신할 수 있다. 예를 들어, 합성부(400)는 'first sentence'라는 입력 텍스트와 이에 대응되는 화자 임베딩 벡터인 embed_voice1, 'second sentence'라는 입력 텍스트와 이에 대응되는 화자 임베딩 벡터인 embed_voice2, 'third sentence'라는 입력 텍스트와 이에 대응되는 화자 임베딩 벡터인 embed_voice3을 포함하는 리스트(410)를 입력으로 수신할 수 있다.Referring to FIG. 4 , the combining unit 400 may receive a list including input texts and speaker embedding vectors corresponding thereto. For example, the synthesizing unit 400 inputs the input text 'first sentence', the speaker embedding vectors corresponding thereto, embed_voice1, and the input text 'second sentence', and the corresponding speaker embedding vectors embed_voice2, 'third sentence'. A list 410 including text and a speaker embedding vector corresponding thereto, embed_voice3, may be received as an input.

합성부(400)는 수신한 리스트(410)에 포함된 입력 텍스트의 개수만큼의 멜 스펙트로그램(420)을 생성할 수 있다. 도 4를 참고하면, 'first sentence', 'second sentence' 및 'third sentence' 각각의 입력 텍스트에 대응하는 멜 스펙트로그램들이 생성된 것을 알 수 있다.The synthesizer 400 may generate as many Mel spectrograms 420 as the number of input texts included in the received list 410 . Referring to FIG. 4 , it can be seen that Mel spectrograms corresponding to input texts of 'first sentence', 'second sentence' and 'third sentence' are generated.

또는, 합성부(400)는 입력 텍스트의 개수만큼의 멜 스펙트로그램(420) 및 어텐션 얼라인먼트(attention alignment)을 함께 생성할 수 있다. 도 4에는 도시되어 있지 않으나, 예를 들어 'first sentence', 'second sentence' 및 'third sentence' 각각의 입력 텍스트에 대응하는 어텐션 얼라인먼트가 추가적으로 생성될 수 있다. 또는, 합성부(400)는 입력 텍스트들 각각에 대하여 복수의 멜 스펙트로그램 및 복수의 어텐션 얼라인먼트를 생성할 수도 있다. Alternatively, the synthesizing unit 400 may generate as many Mel spectrograms 420 and attention alignment as the number of input texts together. Although not shown in FIG. 4 , for example, attention alignment corresponding to each input text of 'first sentence', 'second sentence' and 'third sentence' may be additionally generated. Alternatively, the synthesizer 400 may generate a plurality of Mel spectrograms and a plurality of attention alignments for each of the input texts.

다시 도 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 an 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 voice signal 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 voice 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.

도 5는 음성 합성 시스템의 일 실시예를 나타내는 도면이다. 도 5의 음성 합성 시스템(500)는 도 1의 음성 합성 시스템(100) 또는 도 2의 음성 합성 시스템(200)와 동일할 수 있다.5 is a diagram illustrating an embodiment of a speech synthesis system. 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 .

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

도 5의 화자 인코더(510), 합성부(520) 및 보코더(530) 각각은 상술한 도 2의 화자 인코더(210), 합성부(220) 및 보코더(230)와 동일할 수 있다. 따라서, 도 5의 화자 인코더(510), 합성부(520) 및 보코더(530)에 대한 설명은 생략한다. The speaker encoder 510 , the synthesizer 520 , and the vocoder 530 of FIG. 5 may be the same as the speaker encoder 210 , the synthesizer 220 , and the vocoder 230 of FIG. 2 , respectively. Accordingly, descriptions of the speaker encoder 510 , the synthesizer 520 , and the vocoder 530 of FIG. 5 will be omitted.

상술한 바와 같이, 합성부(520)는 텍스트(text) 및 화자 인코더(510)로부터 수신한 화자 임베딩 벡터를 입력으로 하여 스펙트로그램 또는 멜 스펙트로그램을 생성할 수 있다. 또한, 보코더(530)는 스펙트로그램 또는 멜 스펙트로그램을 입력으로 하여 실제 음성(speech)을 생성할 수 있다. As described above, the synthesizer 520 may generate a spectrogram or a Mel spectrogram by inputting text and a speaker embedding vector received from the speaker encoder 510 as inputs. Also, the vocoder 530 may generate an actual speech by receiving a spectrogram or a Mel spectrogram as an input.

도 5의 음성 후처리부(540)는 보코더(530)에서 생성된 음성을 입력으로 수신하여 노이즈(noise) 제거, 오디오 스트레칭(audio stretching) 또는 피치 변경(pitch shifting) 등의 후처리 작업을 수행할 수 있다. 음성 후처리부(540)는 입력된 음성에 후처리 작업을 수행하여 사용자에게 최종적으로 들려줄 보정된 음성을 생성할 수 있다. The voice post-processing unit 540 of FIG. 5 receives the voice generated by the vocoder 530 as an input and performs post-processing operations such as noise removal, audio stretching, or pitch shifting. can The voice post-processing unit 540 may generate a corrected voice to be finally heard by the user by performing post-processing on the input voice.

예를 들어, 음성 후처리부(540)는 페이즈 보코더(phase vocoder)에 해당할 수 있으나, 이에 제한되는 것은 아니다. 페이즈 보코더는 위상 정보를 이용하여 음성의 주파수 영역 및 시간 영역을 조절할 수 있는 보코더에 해당한다.For example, the voice post-processing unit 540 may correspond to a phase vocoder, but is not limited thereto. The phase vocoder corresponds to a vocoder that can adjust the frequency domain and time domain of a voice using phase information.

페이즈 보코더는 입력된 음성 신호에 단시간 푸리에 변환(Short-time Fourier transform, STFT)를 수행하여, 시간 도메인의 음성 신호를 시간-주파수 도메인의 음성 신호로 변환할 수 있다. 도 2 에서 상술한 바와 같이 STFT는 음성 신호를 짧은 시간의 여러 구간들로 나누고 각 구간들에 대해 푸리에 변환을 수행하므로, 시간에 따라 변화하는 주파수 특성을 확인할 수 있다. The phase vocoder may perform short-time Fourier transform (STFT) on the input voice signal to convert a time domain voice signal into a time-frequency domain voice signal. As described above with reference to FIG. 2 , the STFT divides the voice signal into several sections of a short time and performs a Fourier transform on each section, so that frequency characteristics that change with time can be confirmed.

또는, 페이즈 보코더는 변환된 시간-주파수 도메인의 음성 신호는 복소수 값을 가지므로, 복소수 값에 절대값을 취해 크기 정보만을 포함하는 스펙트로그램을 생성할 수 있다. 또는, 페이즈 보코더는 스펙트로그램의 주파수 간격을 멜 스케일로 재조정하여 멜 스펙트로그램을 생성할 수도 있다. Alternatively, since the converted time-frequency domain voice signal has a complex value, the phase vocoder may generate a spectrogram including only magnitude information by taking an absolute value from the complex value. Alternatively, the phase vocoder may generate a mel spectrogram by re-adjusting a frequency interval of the spectrogram to a mel scale.

페이즈 보코더는 변환된 시간-주파수 도메인의 음성 신호 또는 스펙트로그램을 이용하여 노이즈 제거, 오디오 스트레칭 또는 피치 변경 등의 후처리 작업을 수행할 수 있다. The phase vocoder may perform post-processing operations such as noise removal, audio stretching, or pitch change using the converted time-frequency domain speech signal or spectrogram.

도 6은 음성 신호에 단시간 푸리에 변환(Short-time Fourier transform)를 수행하는 일 실시예를 나타내는 도면이다. 6 is a diagram illustrating an embodiment in which a short-time Fourier transform is performed on a voice signal.

도 6을 참고하면, 음성 후처리부(540)는 시간 도메인의 음성 신호를 일정한 윈도우 길이(window length)를 갖는 구간으로 나누고, 각 구간에 대하여 푸리에 변환을 수행할 수 있다. 이에 따라. 각 구간에 대하여 변환된 시간-주파수 도메인의 음성 신호 또는 스펙트로그램을 생성할 수 있다. 도 6은 각 구간에 대하여 푸리에 변환을 수행하여 스펙트로그램이 생성된 것을 나타낸다. 이 때, 스펙트로그램은 멜 스펙트로그램에 해당할 수도 있다. 한편, 윈도우 길이는 푸리에 변환을 수행할 샘플들의 개수를 의미하는 FFT 사이즈(Fast Fourier Transform size)와 동일한 값으로 설정될 수 있으나, 이에 제한되는 것은 아니다.Referring to FIG. 6 , the speech post-processing unit 540 may divide a time domain speech signal into sections having a constant window length, and perform Fourier transform on each section. Accordingly. For each section, a converted time-frequency domain voice signal or spectrogram may be generated. 6 shows that a spectrogram is generated by performing a Fourier transform on each section. In this case, the spectrogram may correspond to a Mel spectrogram. Meanwhile, the window length may be set to the same value as a Fast Fourier Transform size (FFT size) indicating the number of samples to be subjected to Fourier transform, but is not limited thereto.

한편, 주파수 해상도(resolution)과 시간 해상도 간의 트레이드 오프(trade off) 관계를 고려하여, 일정한 윈도우 길이(window length)를 갖는 구간들이 겹치도록 홉 길이(hop length)를 설정할 수 있다. Meanwhile, in consideration of a trade-off relationship between frequency resolution and temporal resolution, a hop length may be set so that sections having a constant window length overlap.

예를 들어, 샘플링 레이트(sampling rate)의 값이 24000이고, 윈도우 길이(window length)가 0.05초인 경우에는, 각 구간에 대하여 1200개의 샘플들을 이용하여 푸리에 변환을 수행할 수 있다. 또한, 홉 길이(hop length)가 0.125초인 경우에는, 제 1 윈도우 길이를 갖는 구간들 사이의 길이는 0.125초에 해당할 수 있다.For example, when the value of the sampling rate is 24000 and the window length is 0.05 seconds, the Fourier transform may be performed using 1200 samples for each section. Also, when the hop length is 0.125 seconds, the length between sections having the first window length may correspond to 0.125 seconds.

페이즈 보코더는 상술한 바와 같이 생성된 스펙트로그램에 후처리 작업을 수행한 후, 역 단시간 푸리에 변환(Inverse Short-time Fourier transform)를 이용하여 최종 음성을 출력할 수 있다. 또는, 페이즈 보코더는 상술한 바와 같이 생성된 스펙트로그램에 후처리 작업을 수행한 후, 그리핀-림 알고리즘(Griffin-Lim algorithm)을 사용하여 최종 음성을 출력할 수도 있다. After the phase vocoder performs post-processing on the generated spectrogram as described above, the final voice may be output by using an inverse short-time Fourier transform. Alternatively, the phase vocoder may output the final voice by using the Griffin-Lim algorithm after performing post-processing on the spectrogram generated as described above.

도 7은 음성 후처리부에서 속도를 변경하는 일 실시예를 나타내는 도면이다. 7 is a diagram illustrating an embodiment of changing a speed in a voice post-processing unit.

상술한 도 5의 음성 처리부(540)는 보코더(530)에서 생성한 음성의 속도를 변경할 수 있으며, 이는 오디오 스트레칭(audio stretching)이라고도 지칭된다. 오디오 스트레칭은 음성 신호의 피치(pitch)에는 영향을 주지 않으면서 음성 신호의 속도 또는 재생 시간을 변경하는 것이다.The above-described voice processing unit 540 of FIG. 5 may change the speed of the voice generated by the vocoder 530, which is also referred to as audio stretching. Audio stretching is to change the speed or playback time of a voice signal without affecting the pitch of the voice signal.

음성 처리부(540)는 보코더(530)에서 생성한 음성으로부터 스펙트로그램을 생성하고, 생성된 스펙트토그램을 다시 음성으로 복원하는 과정에서 음성의 속도를 변경할 수 있다. The voice processing unit 540 may generate a spectrogram from the voice generated by the vocoder 530 and change the speed of the voice in the process of restoring the generated spectogram back to the voice.

도 7을 참고하면, 음성 처리부(540)는 보코더(530)에서 생성한 제 1 음성 신호(710)에 단시간 푸리에 변환을 수행할 수 있다. 도 7의 스펙트로그램(720)은 보코더(530)에서 생성한 제 1 음성 신호(710)에 단시간 푸리에 변환을 수행하여 생성된 스펙트로그램에 해당할 수 있다. 예를 들어, 도 7의 스펙트로그램(720)은 멜 스펙트로그램에 해당할 수도 있다. Referring to FIG. 7 , the voice processing unit 540 may perform a short-time Fourier transform on the first voice signal 710 generated by the vocoder 530 . The spectrogram 720 of FIG. 7 may correspond to a spectrogram generated by performing a short-time Fourier transform on the first voice signal 710 generated by the vocoder 530 . For example, the spectrogram 720 of FIG. 7 may correspond to a Mel spectrogram.

예를 들어, 음성 후처리부(540)는 보코더(530)에서 생성한 제 1 음성 신호(710)에서 제 1 홉 길이(hop length)를 기반으로 제 1 윈도우 길이(window length)를 갖는 구간들을 설정할 수 있다. 제 1 홉 길이는 제 1 윈도우 길이를 갖는 구간들 사이의 길이에 해당할 수 있다. For example, the voice post-processing unit 540 sets sections having a first window length based on a first hop length in the first voice signal 710 generated by the vocoder 530 . can The first hop length may correspond to a length between sections having the first window length.

예를 들어 도 7을 참고하면, 샘플링 레이트의 값이 24000인 경우, 제 1 윈도우 길이는 0.05초일 수 있고, 제 1 홉 길이는 0.025초일 수 있다. 이러한 경우, 음성 후처리부(540)는 각 구간에 대하여 1200개의 샘플들을 이용하여 푸리에 변환을 수행할 수 있다. For example, referring to FIG. 7 , when the sampling rate value is 24000, the first window length may be 0.05 seconds, and the first hop length may be 0.025 seconds. In this case, the speech post-processing unit 540 may perform Fourier transform using 1200 samples for each section.

음성 후처리부(540)는 상술한 바와 같이 분할한 구간들에 대하여 단시간 푸리에 변환을 수행하여 시간-주파수 도메인의 음성 신호를 생성할 수 있고, 시간-주파수 도메인의 음성 신호를 기반으로 스펙트로그램(720)을 생성할 수 있다. 구체적으로, 시간-주파수 도메인의 음성 신호는 복소수 값을 가지므로, 복소수 값에 절대값을 취해 위상 정보를 소실시키고 크기 정보만을 포함하는 스펙트로그램(720)을 생성할 수 있다. 이 때, 스펙트로그램(720)은 멜 스펙트로그램에 해당할 수도 있다.The speech post-processing unit 540 may generate a time-frequency domain speech signal by performing a short-time Fourier transform on the divided sections as described above, and a spectrogram 720 based on the time-frequency domain speech signal. ) can be created. Specifically, since the speech signal in the time-frequency domain has a complex value, it is possible to generate the spectrogram 720 including only magnitude information by taking the absolute value of the complex value to lose phase information. In this case, the spectrogram 720 may correspond to a Mel spectrogram.

한편, 음성 후처리부(540)는 보코더(530)에서 생성한 제 1 음성 신호(710)의 속도를 변경하기 위하여 배속율을 결정할 수 있다. 예를 들어, 보코더(530)에서 생성한 제 1 음성 신호(710)의 속도보다 2배 빠른 음성을 생성하기 위해서는, 배속율은 2로 결정될 수 있다.Meanwhile, the voice post-processing unit 540 may determine a speed ratio to change the speed of the first voice signal 710 generated by the vocoder 530 . For example, in order to generate a voice that is twice as fast as the speed of the first voice signal 710 generated by the vocoder 530 , the double speed may be determined to be 2 .

음성 후처리부(540)는 스펙트로그램(720)으로부터 제 2 홉 길이를 기반으로 제 2 윈도우 길이를 갖는 구간들의 음성 신호들을 생성할 수 있다. 예를 들어, 음성 후처리부(540)는 스펙트로그램(720)에 단시간 푸리에 변환 및 역 단시간 푸리에 변환(Inverse Short-time Fourier transform)을 반복적으로 수행하여 위상 정보를 추정할 수 있고, 추정한 위상 정보를 기반으로 상기 구간들의 음성 신호들을 생성할 수 있다. 음성 후처리부(540)는 상기 구간들의 음성 신호들을 기반으로 속도가 변경된 제 2 음성 신호(730)를 생성할 수 있다. The speech post-processing unit 540 may generate speech signals of sections having the second window length based on the second hop length from the spectrogram 720 . For example, the speech post-processing unit 540 may estimate phase information by repeatedly performing a short-time Fourier transform and an inverse short-time Fourier transform on the spectrogram 720 , and the estimated phase information Voice signals of the sections may be generated based on . The voice post-processing unit 540 may generate the second voice signal 730 of which the speed is changed based on the voice signals of the sections.

음성 후처리부(540)는 제 1 음성 신호(710)의 속도를 변경하기 위하여 제 2 홉 길이에 대한 제 1 홉 길이의 비가 배속율과 같도록 설정할 수 있다. 예를 들어, 제 2 홉 길이는 기 설정된 값에 해당할 수 있고, 제 1 홉 길이는 제 2 홉 길이에 배속율을 곱한 값과 같도록 설정될 수 있다. 또는, 제 1 홉 길이는 기 설정된 값에 해당할 수 있고, 제 2 홉 길이가 제 1 홉 길이를 배속율로 나눈 값과 같도록 설정될 수 있다. 한편, 제 1 윈도우 길이 및 제 2 윈도우 길이는 서로 동일할 수 있으나, 이에 제한되는 것은 아니다. In order to change the speed of the first voice signal 710 , the voice post-processing unit 540 may set the ratio of the first hop length to the second hop length to be the same as the speed ratio. For example, the second hop length may correspond to a preset value, and the first hop length may be set equal to a value obtained by multiplying the second hop length by a multiplication rate. Alternatively, the first hop length may correspond to a preset value, and the second hop length may be set equal to a value obtained by dividing the first hop length by the multiplication rate. Meanwhile, the first window length and the second window length may be equal to each other, but is not limited thereto.

예를 들어 도 7을 참고하면, 제 2 윈도우 길이는 제 1 윈도우 길이와 동일하게 0.05초이고, 제 2 홉 길이는 0.0125초일 수 있다. 도 7에서는 제 1 음성 신호(710)의 속도보다 2배 빠른 음성을 생성하는 과정을 도시한 것으로, 제 2 홉 길이에 대한 제 1 홉 길이의 비는 2와 같도록 설정된 것임을 알 수 있다. For example, referring to FIG. 7 , the second window length may be equal to 0.05 seconds as the first window length, and the second hop length may be 0.0125 seconds. 7 illustrates a process of generating a voice that is twice as fast as the speed of the first voice signal 710, it can be seen that the ratio of the first hop length to the second hop length is set to be equal to 2.

음성 후처리부(540)는 제 2 홉 길이를 기반으로 제 2 윈도우 길이를 갖는 구간들의 음성 신호들을 기반으로 속도 및 피치가 변경된 제 2 음성 신호(730)를 생성할 수 있다. 보정된 음성 신호는 제 1 음성 신호(710)의 속도가 배속율만큼 변경된 음성 신호에 해당할 수 있다. 도 7을 참고하면, 제 1 음성 신호(710)의 속도보다 2배 빠른 제 2 음성 신호(730)이 생성되었음을 알 수 있다. The voice post-processing unit 540 may generate the second voice signal 730 in which the speed and pitch are changed based on the voice signals of sections having the second window length based on the second hop length. The corrected voice signal may correspond to a voice signal in which the speed of the first voice signal 710 is changed by a double speed. Referring to FIG. 7 , it can be seen that the second voice signal 730 that is twice as fast as the speed of the first voice signal 710 is generated.

도 8은 음성 후처리부에서 피치(pitch)를 변경하는 일 실시예를 나타내는 도면이다.8 is a diagram illustrating an embodiment of changing a pitch in a voice post-processing unit.

상술한 도 5의 음성 처리부(540)는 보코더(530)에서 생성한 음성의 피치를 변경할 수 있으며, 이는 피치 쉬프팅(pitch shifting)이라고도 지칭된다. 피치 쉬프팅은 음성 신호의 속도 또는 재생 시간에는 영향을 주지 않으면서 음성 신호의 피치를 변경하는 것이다. The above-described voice processing unit 540 of FIG. 5 may change the pitch of the voice generated by the vocoder 530, which is also referred to as pitch shifting. Pitch shifting is to change the pitch of a voice signal without affecting the speed or reproduction time of the voice signal.

음성 처리부(540)는 보코더(530)에서 생성한 음성으로부터 스펙트로그램을 생성하고, 생성된 스펙트토그램을 다시 음성으로 복원하는 과정에서 음성의 피치를 변경할 수 있다.The voice processing unit 540 may generate a spectrogram from the voice generated by the vocoder 530 and change the pitch of the voice in the process of restoring the generated spectogram back to the voice.

도 7에서 상술한 바와 마찬가지로, 음성 처리부(540)는 보코더(530)에서 생성한 제 1 음성 신호에 단시간 푸리에 변환을 수행하여 스펙트로그램 또는 멜 스펙트로그램을 생성할 수 있다. As described above with reference to FIG. 7 , the voice processing unit 540 may generate a spectrogram or a Mel spectrogram by performing a short-time Fourier transform on the first voice signal generated by the vocoder 530 .

예를 들어, 음성 후처리부(540)는 보코더(530)에서 제 1 홉 길이를 기반으로 제 1 윈도우 길이를 갖는 구간들을 설정할 수 있다. For example, the voice post-processing unit 540 may set sections having the first window length based on the first hop length in the vocoder 530 .

예를 들어, 샘플링 레이트의 값이 24000인 경우, 제 1 윈도우 길이는 0.05초일 수 있고, 제 1 홉 길이는 0.0125초일 수 있다.For example, when the value of the sampling rate is 24000, the first window length may be 0.05 seconds, and the first hop length may be 0.0125 seconds.

음성 후처리부(540)는 분할한 구간들에 대하여 단시간 푸리에 변환을 수행하여 시간-주파수 도메인의 음성 신호를 생성할 수 있고, 시간-주파수 도메인의 음성 신호를 기반으로 스펙트로그램 또는 멜 스펙트로그램을 생성할 수 있다. The speech post-processing unit 540 may generate a time-frequency domain speech signal by performing a short-time Fourier transform on the divided sections, and generates a spectrogram or a Mel spectrogram based on the time-frequency domain speech signal. can do.

한편, 음성 후처리부(540)는 제 1 음성 신호의 피치를 변경하기 위하여 피치 변경율을 결정할 수 있다. 예를 들어, 제 1 음성 신호의 피치보다 1.25배 높은 피치의 음성을 생성하기 위해서는, 피치 변경율은 1.25로 결정될 수 있다.Meanwhile, the voice post-processing unit 540 may determine a pitch change rate to change the pitch of the first voice signal. For example, in order to generate a voice having a pitch 1.25 times higher than that of the first voice signal, the pitch change rate may be determined to be 1.25.

음성 후처리부(540)는 스펙트로그램으로부터 제 2 홉 길이를 기반으로 제 2 윈도우 길이를 갖는 구간들의 음성 신호들을 생성할 수 있다. 예를 들어, 음성 후처리부(540)는 스펙트로그램에 단시간 푸리에 변환 및 역 단시간 푸리에 변환을 반복적으로 수행하여 위상 정보를 추정할 수 있고, 추정한 위상 정보를 기반으로 상기 구간들의 음성 신호들을 생성할 수 있다. 음성 후처리부(540)는 음성 후처리부(540)는 상기 구간들의 음성 신호들을 기반으로 피치가 변경된 제 2 음성 신호를 생성할 수 있다.The speech post-processing unit 540 may generate speech signals of sections having the second window length based on the second hop length from the spectrogram. For example, the speech post-processing unit 540 may estimate phase information by repeatedly performing short-time Fourier transform and inverse short-time Fourier transform on the spectrogram, and generate speech signals of the sections based on the estimated phase information. can The voice post-processing unit 540 may generate a second voice signal whose pitch is changed based on the voice signals of the sections.

음성 후처리부(540)는 제 1 음성 신호의 피치를 변경하기 위하여 제 2 윈도우 길이에 대한 제 1 윈도우 길이의 비가 피치 변경율과 같도록 설정할 수 있다. 예를 들어, 제 1 윈도우 길이는 기 설정된 값에 해당할 수 있고, 제 2 윈도우 길이는 제 1 윈도우 길이를 피치 변경율로 나눈 값과 같도록 설정될 수 있다. 또는, 제 2 윈도우 길이는 기 설정된 값에 해당할 수 있고, 제 1 윈도우 길이는 제 2 윈도우 길이에 피치 변경율을 곱한 값과 같도록 설정될 수 있다. 한편, 제 1 홉 길이 및 제 2 홉 길이는 서로 동일할 수 있으나, 이에 제한되는 것은 아니다. The voice post-processing unit 540 may set the ratio of the first window length to the second window length to be equal to the pitch change rate in order to change the pitch of the first voice signal. For example, the first window length may correspond to a preset value, and the second window length may be set equal to a value obtained by dividing the first window length by the pitch change rate. Alternatively, the second window length may correspond to a preset value, and the first window length may be set equal to a value obtained by multiplying the second window length by a pitch change rate. Meanwhile, the first hop length and the second hop length may be the same, but is not limited thereto.

예를 들어, 도 8의 (b)는 보코더(530)에서 생성한 제 1 음성 신호 및 제 1 음성 신호에 샘플링 레이트의 값이 24000, 제 1 윈도우 길이가 0.05초, 제 1 홉 길이가 0.0125초인 단시간 푸리에 변환을 수행하여 생성된 스펙트로그램을 나타낸다. 생성된 스펙트로그램은 20hz간격으로 12000hz까지 601개의 주파수 배열을 가질 수 있다. For example, in FIG. 8B , the first voice signal and the first voice signal generated by the vocoder 530 have a sampling rate of 24000, a first window length of 0.05 seconds, and a first hop length of 0.0125 seconds. A spectrogram generated by performing a short-time Fourier transform is shown. The generated spectrogram can have 601 frequency arrays up to 12000hz at intervals of 20hz.

한편, 피치 변경율이 1.25인 경우, 9600hz이상의 주파수 성분은 피치 변경 후 12000hz가 되므로 9600hz 이상인 주파수 성분들은 소실될 수 있다. 따라서, 9600hz 이하인 주파수 성분들에 대해서만 피치 변경을 수행할 수 있으며, 20hz간격으로 9600hz까지는 481개의 주파수 배열을 가질 수 있다. 즉, 스펙트로그램으로부터 피치가 1.25배 보정된 음성 신호를 생성하는 경우, 481개의 주파수 배열만을 이용하기 위해 제 2 윈도우 길이는 제 1 윈도우 길이의 값을 피치 변경율 1.25로 나눈 값인 0.04초로 설정될 수 있다. 도 8의 (c)는 도 8의 (b)의 스펙트로그램에 대하여 0.0125초의 제 2 홉 길이를 기반으로 0.04초의 제 2 윈도우 길이를 갖는 구간들의 음성 신호들을 생성하고, 상기 구간들의 음성 신호들을 기반으로 피치가 1.25배 변경된 제 2 음성 신호를 나타낼 수 있다. On the other hand, when the pitch change rate is 1.25, the frequency components of 9600hz or higher become 12000hz after the pitch change, so frequency components of 9600hz or higher may be lost. Accordingly, pitch change can be performed only for frequency components of 9600 Hz or less, and 481 frequency arrays can be arranged up to 9600 Hz at an interval of 20 Hz. That is, when generating a voice signal whose pitch is corrected by 1.25 times from the spectrogram, the second window length can be set to 0.04 seconds, which is a value obtained by dividing the value of the first window length by the pitch change rate of 1.25 in order to use only 481 frequency arrays. have. (c) of FIG. 8 (c) generates speech signals of sections having a second window length of 0.04 seconds based on the second hop length of 0.0125 seconds with respect to the spectrogram of FIG. 8 (b), and based on the speech signals of the sections may represent the second voice signal whose pitch is changed by 1.25 times.

또는, 피치 변경율이 0.75인 경우에는, 601개의 주파수 배열의 크기를 801개로 늘리기 위해, 나머지 200개의 주파수 성분은 제로 패딩(zero padding)할 수 있다. 따라서, 제 2 윈도우 길이는 제 1 윈도우 길이의 값을 피치 변경율 0.75로 나눈 값으로 설정할 수 있다. 도 8의 (a)는 도 8의 (b)의 음성 신호의 피치가 0.75배 변경된 제 2 음성 신호를 나타낼 수 있다. Alternatively, when the pitch change rate is 0.75, in order to increase the size of the 601 frequency arrays to 801, the remaining 200 frequency components may be zero padded. Accordingly, the second window length may be set as a value obtained by dividing the value of the first window length by the pitch change rate of 0.75. FIG. 8(a) may represent a second voice signal in which the pitch of the voice signal of FIG. 8(b) is changed by 0.75 times.

상술한 바와 같이, 보코더(530)에서 생성한 제 1 음성 신호의 속도를 보정하기 위해서는, 제 2 홉 길이에 대한 제 1 홉 길이의 비는 배속율의 값과 같도록 설정할 수 있다. 또한, 보코더(530)에서 생성한 제 1 음성 신호의 피치를 보정하기 위해서는, 제 2 윈도우 길이에 대한 제 1 윈도우 길이의 비는 피치 변경율의 값과 같도록 설정할 수 있다. As described above, in order to correct the speed of the first voice signal generated by the vocoder 530, the ratio of the first hop length to the second hop length may be set to be equal to the value of the speed ratio. In addition, in order to correct the pitch of the first voice signal generated by the vocoder 530, the ratio of the first window length to the second window length may be set to be equal to the value of the pitch change rate.

이를 종합하여, 보코더(530)에서 생성한 제 1 음성 신호의 속도 및 피치를 동시에 보정할 수도 있다. 예를 들어, 제 2 홉 길이에 대한 제 1 홉 길이의 비는 배속율의 값과 같고, 제 2 윈도우 길이에 대한 제 1 윈도우 길이의 비는 피치 변경율의 값과 같도록 설정하는 경우, 제 1 음성 신호의 속도를 배속율만큼 변경할 수 있고, 제 1 음성 신호의 피치를 피치 변경율만큼 변경할 수 있다. In summary, the speed and pitch of the first voice signal generated by the vocoder 530 may be simultaneously corrected. For example, when the ratio of the first hop length to the second hop length is equal to the value of the multiplication rate, and the ratio of the first window length to the second window length is set to be equal to the value of the pitch change rate, the first The speed of the first voice signal may be changed by the double speed, and the pitch of the first voice signal may be changed by the pitch change rate.

도 9는 음성 신호의 속도 및 피치를 변경하는 방법의 일 실시예를 도시한 흐름도이다.9 is a flowchart illustrating an embodiment of a method for changing the speed and pitch of a voice signal.

도 9를 참조하면, 단계 810에서 음성 후처리부는 제 1 음성 신호에서 제 1 홉 길이(hop length)를 기반으로 제 1 윈도우 길이(window length)를 갖는 구간들을 설정할 수 있다. Referring to FIG. 9 , in operation 810 , the voice post-processing unit may set sections having a first window length based on a first hop length in the first voice signal.

단계 820에서 음성 후처리부는 구간들에 대하여 단시간 푸리에 변환(Short-time Fourier transform)을 수행하여 스펙트로그램을 생성할 수 있다. In operation 820, the speech post-processing unit may generate a spectrogram by performing a short-time Fourier transform on the sections.

예를 들어, 음성 후처리부는 각 구간에 대하여 푸리에 변환을 수행하여 시간-주파수 도메인의 음성 신호를 생성할 수 있다. 음성 후처리부는 시간-주파수 도메인의 음성 신호에 절대값을 취해 위상 정보를 소실시키고 크기 정보만을 포함하는 스펙트로그램을 생성할 수 있다.For example, the speech post-processing unit may generate a time-frequency domain speech signal by performing a Fourier transform for each section. The speech post-processing unit may take an absolute value from a speech signal in the time-frequency domain, lose phase information, and generate a spectrogram including only magnitude information.

단계 830에서 음성 후처리부는 제 1 음성 신호의 속도 및 피치를 변경하기 위한 배속율 및 피치 변경율을 결정할 수 있다. 예를 들어, 보코더에서 생성한 제 1 음성 신호의 속도보다 2배 빠른 음성을 생성하기 위해서는, 배속율은 2로 결정될 수 있다. 또는, 보코더에서 생성한 제 1 음성 신호의 피치보다 1.25배 높은 피치의 음성을 생성하기 위해서는, 피치 변경율은 1.25로 결정될 수 있다.In operation 830, the voice post-processing unit may determine a multiplication rate and a pitch change rate for changing the speed and pitch of the first voice signal. For example, in order to generate a voice that is twice as fast as the speed of the first voice signal generated by the vocoder, the double speed may be determined to be 2. Alternatively, in order to generate a voice having a pitch 1.25 times higher than that of the first voice signal generated by the vocoder, the pitch change rate may be determined to be 1.25.

단계 840에서 음성 후처리부는 스펙트로그램으로부터 제 2 홉 길이를 기반으로 제 2 윈도우 길이를 갖는 구간들의 음성 신호들을 생성할 수 있다. In operation 840, the speech post-processing unit may generate speech signals of sections having the second window length based on the second hop length from the spectrogram.

예를 들어, 음성 후처리부는 스펙트로그램에 단시간 푸리에 변환 및 역 단시간 푸리에 변환(Inverse Short-time Fourier transform)을 반복적으로 수행하여 위상 정보를 추정할 수 있다. 예를 들어, 음성 후처리부는 그리핀-림 알고리즘(Griffin-Lim algorithm)을 이용할 수 있으나, 이에 제한되는 것은 아니다. 음성 후처리부는 추정된 위상 정보를 기반으로, 제 2 홉 길이를 기반으로 제 2 윈도우 길이를 갖는 구간들의 음성 신호들를 생성할 수 있다.For example, the speech post-processing unit may estimate phase information by repeatedly performing short-time Fourier transform and inverse short-time Fourier transform on the spectrogram. For example, the voice post-processing unit may use a Griffin-Lim algorithm, but is not limited thereto. The speech post-processing unit may generate speech signals of sections having a second window length based on the second hop length based on the estimated phase information.

단계 840에서 음성 후처리부는 구간들의 음성 신호들을 기반으로 속도 및 피치가 변경된 제 2 음성 신호를 생성할 수 있다.In operation 840, the voice post-processing unit may generate a second voice signal having a changed speed and pitch based on the voice signals of the sections.

예를 들어, 음성 후처리부는 구간들의 음성 신호들을 모두 합하여 최종적으로 제 1 음성 신호의 속도 및 피치가 각각 배속율 및 피치 변경율만큼 변경된 제 2 음성 신호를 생성할 수 있다. For example, the voice post-processing unit may add all the voice signals of the sections to finally generate the second voice signal in which the speed and the pitch of the first voice signal are changed by the double speed and the pitch change rate, respectively.

본 개시의 다양한 실시예들은 기기(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 makes it possible for the device to be operated to perform at least one function according to the called at least one command. 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 be implemented in a combined form.

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

Claims (4)

음성 후처리부가 제 1 음성 신호에서 제 1 홉 길이(hop length)를 기반으로 제 1 윈도우 길이(window length)를 갖는 구간들을 설정하는 단계;
상기 구간들에 대하여 단시간 푸리에 변환(Short-time Fourier Transform)을 수행하여 스펙트로그램을 생성하는 단계;
상기 제 1 음성 신호의 속도 및 피치를 변경하기 위한 배속율 및 피치 변경율을 결정하는 단계;
상기 스펙트로그램으로부터 제 2 홉 길이를 기반으로 제 2 윈도우 길이를 갖는 구간들의 음성 신호들을 생성하는 단계; 및
상기 구간들의 음성 신호들을 기반으로 속도 및 피치가 변경된 제 2 음성 신호를 생성하는 단계를 포함하고,
상기 제 2 홉 길이에 대한 제 1 홉 길이의 비는 배속율의 값과 같고, 상기 제 2 윈도우 길이에 대한 제 1 윈도우 길이의 비는 피치 변경율의 값과 같도록 설정되고,
상기 제 2 홉 길이의 값은 기 설정된 값에 해당하고, 상기 제 1 홉 길이는 상기 제 2 홉 길이에 상기 배속율을 곱한 값과 같도록 설정되고,
상기 제 1 윈도우 길이의 값은 기 설정된 값에 해당하고, 상기 제 2 윈도우 길이는 상기 제 1 윈도우 길이를 상기 피치 변경율로 나눈 값과 같도록 설정되고,
상기 제 2 윈도우 길이를 갖는 구간들의 음성 신호들을 생성하는 단계는,
상기 음성 후처리부가 상기 스펙트로그램에 단시간 푸리에 변환 및 역 단시간 푸리에 변환(Inverse Short-time Fourier Transform)을 반복적으로 수행하여 위상 정보를 추정하는 단계; 및
상기 위상 정보를 기반으로 상기 제 2 홉 길이를 기반으로 제 2 윈도우 길이를 갖는 구간들의 음성 신호들을 생성하는 단계를 포함하는, 방법.
setting, by a voice post-processing unit, sections having a first window length based on a first hop length in a first voice signal;
generating a spectrogram by performing a Short-time Fourier Transform on the sections;
determining a multiplier rate and a pitch change rate for changing the speed and pitch of the first voice signal;
generating speech signals of sections having a second window length based on a second hop length from the spectrogram; and
generating a second voice signal having a changed speed and pitch based on the voice signals of the sections;
The ratio of the first hop length to the second hop length is set to be equal to the value of the multiplication rate, and the ratio of the first window length to the second window length is set to be equal to the value of the pitch change rate,
The value of the second hop length corresponds to a preset value, and the first hop length is set to be equal to a value obtained by multiplying the second hop length by the multiplication rate;
The value of the first window length corresponds to a preset value, and the second window length is set to be equal to a value obtained by dividing the first window length by the pitch change rate,
The generating of voice signals of sections having the second window length comprises:
estimating phase information by repeatedly performing, by the speech post-processing unit, a short-time Fourier transform and an inverse short-time Fourier transform on the spectrogram; and
and generating voice signals of sections having a second window length based on the second hop length based on the phase information.
삭제delete 삭제delete 삭제delete
KR1020200161141A 2020-11-26 2020-11-26 Method and tts system for changing the speed and the pitch of the speech KR102358692B1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020200161141A KR102358692B1 (en) 2020-11-26 2020-11-26 Method and tts system for changing the speed and the pitch of the speech
US17/380,426 US11776528B2 (en) 2020-11-26 2021-07-20 Method for changing speed and pitch of speech and speech synthesis system
KR1020220012681A KR102449223B1 (en) 2020-11-26 2022-01-27 Method and tts system for changing the speed and the pitch of the speech

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200161141A KR102358692B1 (en) 2020-11-26 2020-11-26 Method and tts system for changing the speed and the pitch of the speech

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020220012681A Division KR102449223B1 (en) 2020-11-26 2022-01-27 Method and tts system for changing the speed and the pitch of the speech

Publications (1)

Publication Number Publication Date
KR102358692B1 true KR102358692B1 (en) 2022-02-07

Family

ID=80253330

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020200161141A KR102358692B1 (en) 2020-11-26 2020-11-26 Method and tts system for changing the speed and the pitch of the speech
KR1020220012681A KR102449223B1 (en) 2020-11-26 2022-01-27 Method and tts system for changing the speed and the pitch of the speech

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020220012681A KR102449223B1 (en) 2020-11-26 2022-01-27 Method and tts system for changing the speed and the pitch of the speech

Country Status (1)

Country Link
KR (2) KR102358692B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220073703A (en) * 2020-11-26 2022-06-03 주식회사 자이냅스 Method and tts system for changing the speed and the pitch of the speech
WO2023177063A1 (en) * 2022-03-16 2023-09-21 삼성전자주식회사 Electronic device and method for recognizing sound

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102358692B1 (en) * 2020-11-26 2022-02-07 주식회사 자이냅스 Method and tts system for changing the speed and the pitch of the speech

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Dan Barry et al., ‘Time and pitch scale modification: a real-time framework and tutorial’, Proc. of the 11th Conference on Digital Audio Effects, September 2008.* *
Ivan Damnjanovic et al., ‘A real-time framework for video time and pitch scale modification’, IEEE Transactions on multimedia, Vol.12, No.4, June 2010.* *
Xinglei Zhu et al., ‘Real-time signal estimation from modified short-time Fourier transform magnitude spectra’, IEEE Trans. on audio, speech, and language processing, Vol.15, No.5, July 2007.* *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220073703A (en) * 2020-11-26 2022-06-03 주식회사 자이냅스 Method and tts system for changing the speed and the pitch of the speech
KR102449223B1 (en) * 2020-11-26 2022-09-30 주식회사 자이냅스 Method and tts system for changing the speed and the pitch of the speech
WO2023177063A1 (en) * 2022-03-16 2023-09-21 삼성전자주식회사 Electronic device and method for recognizing sound

Also Published As

Publication number Publication date
KR102449223B1 (en) 2022-09-30
KR20220073703A (en) 2022-06-03

Similar Documents

Publication Publication Date Title
US9905220B2 (en) Multilingual prosody generation
US20210142783A1 (en) Method and system for generating synthetic speech for text through user interface
CN111276120B (en) Speech synthesis method, apparatus and computer-readable storage medium
KR102449209B1 (en) A tts system for naturally processing silent parts
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
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
JP2024505076A (en) Generate diverse, natural-looking text-to-speech samples
KR102489498B1 (en) A method and a system for communicating with a virtual person simulating the deceased based on speech synthesis technology and image synthesis technology
Ronanki et al. A Hierarchical Encoder-Decoder Model for Statistical Parametric Speech Synthesis.
KR102568145B1 (en) Method and tts system for generating speech data using unvoice mel-spectrogram
US11776528B2 (en) Method for changing speed and pitch of speech and speech synthesis system
KR20190088126A (en) Artificial intelligence speech synthesis method and apparatus in foreign language
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
KR102463570B1 (en) Method and tts system for configuring mel-spectrogram batch using unvoice section
KR102463589B1 (en) Method and tts system for determining the reference section of speech data based on the length of the mel-spectrogram
KR102503066B1 (en) A method and a TTS system for evaluating the quality of a spectrogram using scores of an attention alignment
KR20240014251A (en) Method and tts system for changing the speed and the pitch of the speech
KR102532253B1 (en) A method and a TTS system for calculating a decoder score of an attention alignment corresponded to a spectrogram
KR102363955B1 (en) Method and system for evaluating the quality of recordingas
KR20240014252A (en) Method and tts system for determining the unvoice section of the mel-spectrogram
KR20230018312A (en) Method and system for synthesizing speech by scoring speech
Matoušek et al. VITS: quality vs. speed analysis

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