KR102555701B1 - Automatic synchronization between musical audio signals and lyrics using artificial intelligence - Google Patents

Automatic synchronization between musical audio signals and lyrics using artificial intelligence Download PDF

Info

Publication number
KR102555701B1
KR102555701B1 KR1020220107122A KR20220107122A KR102555701B1 KR 102555701 B1 KR102555701 B1 KR 102555701B1 KR 1020220107122 A KR1020220107122 A KR 1020220107122A KR 20220107122 A KR20220107122 A KR 20220107122A KR 102555701 B1 KR102555701 B1 KR 102555701B1
Authority
KR
South Korea
Prior art keywords
voice
lyrics
language
data
alignment
Prior art date
Application number
KR1020220107122A
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 KR1020220107122A priority Critical patent/KR102555701B1/en
Application granted granted Critical
Publication of KR102555701B1 publication Critical patent/KR102555701B1/en

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/284Lexical analysis, e.g. tokenisation or collocates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/58Use of machine translation, e.g. for multi-lingual retrieval, for server-side translation for client devices or for real-time translation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/02Feature extraction for speech recognition; Selection of recognition unit
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Processing of the speech or voice signal to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/02Speech enhancement, e.g. noise reduction or echo cancellation
    • G10L21/0272Voice signal separating
    • 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/78Detection of presence or absence of voice signals

Abstract

인공지능을 이용한 자동 가사 동기화 장치 및 방법이 제공된다. 실시예에 따른 자동 가사 동기화 장치는 음원과 관련된 가사 데이터를 자동으로 수정하여 수정 가사 데이터를 생성하는 자동 가사 동기화 장치로서, 상기 음원에서 음성을 추출하는 음성 추출부; 가사 데이터에 대한 전처리를 수행하여 전처리 가사 데이터를 생성하는 데이터 전처리부; 상기 음성과 상기 전처리 가사 데이터를 강제 정렬(forced alignment)하여 상기 수정 가사 데이터를 생성하는 강제 정렬 수행부를 포함한다.An apparatus and method for automatic lyrics synchronization using artificial intelligence are provided. An automatic lyrics synchronizing device according to an embodiment is an automatic lyrics synchronizing device that automatically corrects lyric data related to a sound source and generates modified lyric data, comprising: a voice extraction unit that extracts voice from the sound source; a data pre-processing unit that performs pre-processing on lyric data to generate pre-processed lyric data; and a forced alignment performer generating the corrected lyrics data by forcibly aligning the voice and the preprocessed lyric data.

Description

인공지능을 이용한 자동 가사 동기화 방법 및 장치{Automatic synchronization between musical audio signals and lyrics using artificial intelligence}Automatic synchronization between musical audio signals and lyrics using artificial intelligence

본 발명은 인공지능을 이용한 자동 가사 동기화 방법 및 장치로, 음원에 가사를 인공지능 기반의 음성 인식 장치 및 강제 정렬(forced-alignment)을 이용하여 자동으로 동기화하는 방법 및 장치에 관한 것이다.The present invention relates to a method and apparatus for automatically synchronizing lyrics using artificial intelligence, and relates to a method and apparatus for automatically synchronizing lyrics to a sound source using an artificial intelligence-based voice recognition apparatus and forced-alignment.

4차 산업 혁명과 함께 다양한 언어의 음원과 함께 해당 음원에 대응되는 가사가 사용자들에게 함께 제공되고 있다. 해외 음원을 경우, 원 외국어로 가사를 제공하기도 하지만 한국에 공급될 때, 노래를 따라 부를 수 있도록 한국어 표기로 바꾸어 가사를 제공하기도 한다. 최근 K-pop의 열풍으로 반대의 경우도 많아지고 있으며, 발음대로 해당 언어로 표기하는 방법을 음역(transliteration)이라고 한다.Along with the 4th industrial revolution, music sources in various languages and lyrics corresponding to the music sources are provided to users. In the case of overseas sound sources, lyrics are provided in the original foreign language, but when supplied to Korea, lyrics are provided in Korean notation so that the song can be sung along. Recently, with the craze of K-pop, there are many opposite cases, and the method of transliteration in the language as it is pronounced is called transliteration.

단순히 가사의 전문이 음원과 함께 제공될 수 있으나, 사전 작업을 통해 가사와 음원을 동기화하여 가사를 선택적으로 사용자에게 출력할 수 있다. 즉, 재생되는 음원에 대응되는 가사가 하이라이트 되어 사용자가 해당 가사를 식별하고, 따라 부르는 것을 지원하는 서비스를 사용자에게 제공하고 있다.The full text of the lyrics may simply be provided together with the sound source, but the lyrics may be selectively output to the user by synchronizing the lyrics and the sound source through preliminary work. That is, lyrics corresponding to the reproduced sound source are highlighted, and a service is provided to the user in which the user identifies the corresponding lyrics and supports singing along.

다만, 이러한 가사와 음원의 동기화는 대부분 수작업으로 이루어지고 있으며, 많은 인력과 시간이 요구되고 있어, 가사 동기화 서비스는 인기 음원 위주로 작업이 수행되며 전체 음원에 대해서는 제공되지 못하고 있다. However, synchronization of lyrics and sound sources is mostly performed manually, and a lot of manpower and time are required. Therefore, the lyrics synchronization service is performed mainly on popular sound sources, and not all sound sources are provided.

다양한 음원에 가사 동기화 서비스가 제공될 수 있도록, 더욱 효율적이면서 정확하게 음원에 대응하는 가사를 자동으로 동기화할 수 있는 장치 및 방법이 요구되고 있는 실정이다.There is a demand for a device and method capable of automatically synchronizing lyrics corresponding to sound sources more efficiently and accurately so that lyrics synchronization services can be provided to various sound sources.

본 발명의 목적은, 더욱 효율적이면서 정확하게 음원에 대응하는 가사를 자동으로 동기화할 수 있는 장치 및 방법을 제공하는 것이다.An object of the present invention is to provide an apparatus and method capable of automatically synchronizing lyrics corresponding to sound sources more efficiently and accurately.

본 발명의 목적들은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있고, 본 발명의 실시예에 의해 보다 분명하게 이해될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.The objects of the present invention are not limited to the above-mentioned objects, and other objects and advantages of the present invention not mentioned above can be understood by the following description and will be more clearly understood by the examples of the present invention. It will also be readily apparent that the objects and advantages of the present invention may be realized by means of the instrumentalities and combinations indicated in the claims.

본 발명의 몇몇 실시예에 따른 자동 가사 동기화 장치는 음원과 관련된 가사 데이터를 자동으로 수정하여 수정 가사 데이터를 생성하는 자동 가사 동기화 장치로서, 상기 음원에서 음성을 추출하는 음성 추출부; 가사 데이터에 대한 전처리를 수행하여 전처리 가사 데이터를 생성하는 데이터 전처리부; 상기 음성과 상기 전처리 가사 데이터를 강제 정렬(forced alignment)하여 상기 수정 가사 데이터를 생성하는 강제 정렬 수행부를 포함한다.An automatic lyrics synchronizing apparatus according to some embodiments of the present invention is an automatic lyrics synchronizing apparatus for automatically modifying lyric data related to a sound source and generating modified lyric data, comprising: a voice extraction unit that extracts voice from the sound source; a data pre-processing unit that performs pre-processing on lyric data to generate pre-processed lyric data; and a forced alignment performer generating the corrected lyrics data by forcibly aligning the voice and the preprocessed lyric data.

또한, 상기 강제 정렬 수행부는 제1 언어에 기초하여 상기 강제 정렬을 수행하며, 상기 데이터 전처리부는 상기 가사 데이터의 제2 언어로 구성된 텍스트를 제2 언어의 발음에 따라 상기 제1 언어로 변환하는 제1 전처리를 수행하는 언어 변환 유닛; 및 상기 제1 전처리가 수행된 가사 데이터에 대한 토큰화를 수행하여 상기 전처리 가사 데이터를 생성하는 토큰 변환 유닛을 포함할 수 있다. In addition, the forced alignment performer performs the forced alignment based on the first language, and the data preprocessor converts the text composed of the second language of the lyrics data into the first language according to the pronunciation of the second language. 1 language conversion unit that performs preprocessing; and a token conversion unit configured to generate the pre-processed lyrics data by performing tokenization on the first pre-processed lyrics data.

또한, 상기 토큰 변환 유닛은 단어의 시작을 특수 기호로 표시하도록 토큰을 형성하며, 상기 언어 변환 유닛은 상기 가사 데이터에 대해 수행된 제1 전처리 정보를 생성할 수 있다.Also, the token conversion unit may form a token to indicate the beginning of a word with a special symbol, and the language conversion unit may generate first preprocessing information performed on the lyric data.

또한, 상기 강제 정렬 수행부는 상기 제1 전처리 정보를 이용하여 상기 제1 전처리된 텍스트를 상기 제2 언어로 역변환하여 상기 수정 가사 데이터를 생성할 수 있다. Also, the forced alignment unit may generate the corrected lyric data by inversely converting the first pre-processed text into the second language using the first pre-processing information.

또한, 상기 강제 정렬 수행부는 상기 음성 인식 텍스트의 음성 특징을 추출하는 음성 특징 추출 유닛; 상기 음성 인식 텍스트의 음성 구간을 검출하여 음성 구간 정보를 생성하는 음성 구간 검출 유닛; 상기 추출된 음성 특징과 상기 전처리 가사 데이터를 강제 정렬(forced alignment)하여 음성 정렬 정보를 생성하는 강제 정렬 유닛; 및 상기 음성 정렬 정보와 음성 구간 정보를 비교하여 수정 정렬 정보를 생성하는 수정 정보 생성 유닛을 포함할 수 있다.In addition, the forced alignment performing unit may include a voice feature extraction unit extracting voice features of the voice recognition text; a speech section detection unit configured to detect a speech section of the speech recognition text and generate speech section information; a forced alignment unit generating voice alignment information by forcibly aligning the extracted voice features and the preprocessed lyric data; and a correction information generating unit configured to generate corrected alignment information by comparing the voice alignment information with the voice interval information.

또한, 상기 강제 정렬 유닛은 상기 수정 정렬 정보를 피드백 받아 상기 음성 정렬 정보를 다시 생성하도록 구성될 수 있다. Also, the forced alignment unit may be configured to generate the voice alignment information again by receiving feedback of the corrected alignment information.

또한, 상기 강제 정렬 유닛은 상기 추출된 음성 특징과 상기 전처리 가사 데이터를 분석하여 자소 단위로 음성 정렬 정보를 추출하고, 상기 자소 단위로 추출된 음성 정렬 정보를 기초로 상위 단위에 해당하는 음성 정렬 정보를 생성할 수 있다. In addition, the forced alignment unit analyzes the extracted voice features and the preprocessed lyric data to extract voice alignment information in units of character elements, and voice alignment information corresponding to a higher unit based on the extracted voice alignment information in units of character elements. can create

또한, 상기 음원은 상기 음성 및 악기음이 스테레오 형식으로 합쳐져서 제공되며, 상기 음성 추출부는 상기 음원에서 딥러닝 기반의 음성 분리 모델을 통해 상기 음성을 추출하며, 상기 음성 분리 모델은 상기 음원에서 상기 악기음을 필터링하여 상기 음성만을 추출하도록 학습된 상태일 수 있다. In addition, the sound source is provided by combining the voice and musical instrument sound in a stereo format, and the voice extraction unit extracts the voice from the sound source through a deep learning-based voice separation model, and the voice separation model is used to extract the musical instrument from the sound source. It may be in a learned state to extract only the voice by filtering the sound.

본 발명의 몇몇 실시예에 따른 가사 자동 동기화 방법은 자동 가사 동기화 장치에서 수행되는 가사 자동 동기화 방법으로, 음원과 상기 음원과 관련된 가사 데이터가 입력되는 단계; 상기 음원에서 음성을 추출하는 단계; 상기 가사 데이터에 대한 전처리를 수행하여 전처리 가사 데이터를 생성하는 단계; 및 상기 음성과 상기 전처리 가사 데이터를 강제 정렬(forced alignment)하여 상기 수정 가사 데이터를 생성하는 단계를 포함한다.An automatic lyrics synchronization method according to some embodiments of the present invention is an automatic lyrics synchronization method performed by an automatic lyrics synchronization device, comprising the steps of inputting a sound source and lyrics data related to the sound source; extracting voice from the sound source; performing pre-processing on the lyric data to generate pre-processed lyric data; and generating the modified lyrics data by forcibly aligning the voice and the preprocessed lyrics data.

본 발명의 몇몇 실시예에 따른 컴퓨터 프로그램은 하드웨어와 결합되어 상기 자동 가사 동기화 방법을 실행하도록 매체에 저장된다. A computer program according to some embodiments of the present invention is combined with hardware and stored in a medium to execute the automatic lyrics synchronization method.

본 발명의 실시예에 따른 자동 가사 동기화 장치 및 방법은 자소 단위로부터 시작하여 여러 상위 단위에 대한 정렬을 수행하여 문장의 하위 단위에 해당하는 단어, 토큰 단위로 가사를 출력할 수 있게 된다. 따라서, 대략적 위치의 시작점과 끝점을 잡고, 문맥이 연결되는 단위의 문장으로 음성 전사 후, 분리해야 될 부분만 단어 사이에 표시하여 자동으로 생성자가 원하는 형태의 가사를 빠르게 생성하는 것이 지원될 수 있다.The apparatus and method for synchronizing automatic lyrics according to an embodiment of the present invention can output lyrics in units of words and tokens corresponding to lower units of a sentence by sorting several higher units starting from a grapheme unit. Therefore, it can be supported to quickly generate lyrics in a form desired by the creator automatically by holding the starting and ending points of the approximate position, transcribing the voice into sentences of units in which the context is connected, and displaying only the parts to be separated between words. .

본 발명의 실시예에 따른 자동 가사 동기화 장치 및 방법은 자소 단위로 강제 정렬된 결과로부터 여러 상위 단위에 대한 정렬을 수행하여 문장의 하위 단위에 해당하는 단어, 토큰, 줄 단위로 가사를 출력할 수 있게 된다. 따라서, 문맥이 연결되는 단위의 문장으로 가사 데이터를 분리해야 될 부분을 라인 변경과 같은 역할을 하는 기호로 표시하여 자동으로 생성자가 원하는 동기화 정보(timestamp)가 있는 형태로 가사를 빠르게 생성하는 것이 지원될 수 있다.The apparatus and method for synchronizing automatic lyrics according to an embodiment of the present invention may output lyrics in units of words, tokens, and lines corresponding to lower units of a sentence by performing sorting on several upper units from the result of forcibly sorting on a grapheme basis. there will be Therefore, it is supported to quickly generate lyrics in the form of synchronizing information (timestamp) desired by the generator automatically by displaying the part where lyrics data should be separated into sentences of units connected with context with symbols that act as line changes. It can be.

또한, 가사 데이터의 텍스트에 대한 토큰화를 통해 단어사전 밖에 있는 단어들(out-of-vocabulary; OOV)의 수를 최소화할 수 있어, 강제 정렬이 더욱 효율적으로 수행되는 것을 지원할 수 있다. In addition, it is possible to minimize the number of out-of-vocabulary (OOV) words through tokenization of the text of the lyric data, so that forced sorting can be performed more efficiently.

또한, 본 발명의 실시예에 따른 자동 가사 동기화 장치 및 방법은 강제 정렬이 수행되는 기준 언어에 대응하여 가사 데이터에 대한 언어 변환을 자동으로 수행하여 더욱 효율적인 강제 정렬이 수행되는 것을 지원할 수 있다. 또한, 가사 데이터의 텍스트에 대한 토큰화를 수행하되, 단어의 시작 위치를 표시하여 강제 정렬이 더욱 효율적으로 수행되는 것을 지원할 수 있다. In addition, the apparatus and method for automatic lyrics synchronization according to an embodiment of the present invention can support more efficient forced alignment by automatically performing language conversion on lyrics data corresponding to a reference language for which forced alignment is performed. In addition, while performing tokenization on the text of the lyric data, it is possible to support more efficient execution of forced alignment by displaying the start position of a word.

또한, 본 발명의 실시예에 따른 자동 가사 동기화 장치 및 방법은 노래(음성)의 다양한 음성 변이로 인해 발생한 강제 정렬(forced-alignment)의 오류 부분을 음성 구간 정보를 통해 보완하도록 구성되어 더욱 정확한 강제 정렬이 수행되는 것을 지원할 수 있다. In addition, the automatic lyrics synchronizing apparatus and method according to an embodiment of the present invention is configured to compensate for the error part of forced-alignment caused by various voice variations of a song (voice) through voice section information, so that more accurate forced-alignment It can support sorting being performed.

도 1은 본 발명의 몇몇 실시예에 따른 자동 가사 동기화 장치를 개념을 설명하기 위한 예시도이다.
도 2는 본 발명의 몇몇 실시예에 따른 자동 가사 동기화 장치의 구성을 개략적으로 도시한 예시도이다.
도 3은 실시예에 따른 음성 추출부의 구성 및 동작을 설명하기 위한 예시도이다.
도 4는 실시예에 따른 데이터 전처리부의 구성을 나타내는 블록도이다.
도 5는 실시예에 따른 강제 정렬 수행부의 구성 및 동작을 설명하기 위한 예시도이다.
도 6은 강제 정렬 유닛의 동작을 설명하기 위한 예시도이다.
도 7은 자소 단위 강제 정렬 결과를 예시적으로 나타낸다.
도 8은 단어 단위 강제 정렬 결과를 예시적으로 나타낸다.
도 9는 문장 단위의 음성 정렬 정보를 예시적으로 나타낸다.
도 10은 음성 구간 검출 정보를 예시적으로 나타낸다.
도 11은 도 10의 음성 구간 검출 정보에 기초하여 도 9의 음성 정렬 정보를 수정한 음성 정렬 정보를 예시적으로 나타낸다.
도 12는 본 발명의 다른 실시예에 따른 자동 가사 동기화 방법의 순서도이다.
1 is an exemplary diagram for explaining the concept of an automatic lyrics synchronization device according to some embodiments of the present invention.
2 is an exemplary view schematically showing the configuration of an automatic lyrics synchronization device according to some embodiments of the present invention.
3 is an exemplary diagram for explaining the configuration and operation of a voice extraction unit according to an embodiment.
4 is a block diagram showing the configuration of a data pre-processing unit according to an embodiment.
5 is an exemplary diagram for explaining the configuration and operation of a forced alignment performer according to an embodiment.
6 is an exemplary view for explaining the operation of the forced alignment unit.
7 illustratively shows results of forced sorting in grapheme units.
8 illustratively shows results of forced sorting in word units.
9 illustratively shows voice alignment information in sentence units.
10 shows voice section detection information by way of example.
FIG. 11 exemplarily shows voice alignment information obtained by correcting the voice alignment information of FIG. 9 based on the voice section detection information of FIG. 10 .
12 is a flowchart of an automatic lyrics synchronization method according to another embodiment of the present invention.

본 명세서 및 특허청구범위에서 사용된 용어나 단어는 일반적이거나 사전적인 의미로 한정하여 해석되어서는 아니된다. 발명자가 그 자신의 발명을 최선의 방법으로 설명하기 위해 용어나 단어의 개념을 정의할 수 있다는 원칙에 따라, 본 발명의 기술적 사상과 부합하는 의미와 개념으로 해석되어야 한다. 또한, 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명이 실현되는 하나의 실시예에 불과하고, 본 발명의 기술적 사상을 전부 대변하는 것이 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 및 응용 가능한 예들이 있을 수 있음을 이해하여야 한다.Terms or words used in this specification and claims should not be construed as being limited to a general or dictionary meaning. According to the principle that an inventor may define a term or a concept of a word in order to best describe his/her invention, it should be interpreted as meaning and concept consistent with the technical spirit of the present invention. In addition, the embodiments described in this specification and the configurations shown in the drawings are only one embodiment in which the present invention is realized, and do not represent all of the technical spirit of the present invention, so they can be replaced at the time of the present application. It should be understood that there may be many equivalents and variations and applicable examples.

본 명세서 및 특허청구범위에서 사용된 제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. '및/또는' 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.Terms such as first, second, A, and B used in this specification and claims may be used to describe various components, but the components should not be limited by the terms. These terms are only used for the purpose of distinguishing one component from another. For example, a first element may be termed a second element, and similarly, a second element may be termed a first element, without departing from the scope of the present invention. The term 'and/or' includes a combination of a plurality of related recited items or any one of a plurality of related recited items.

본 명세서 및 특허청구범위에서 사용된 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서 "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Terms used in this specification and claims are only used to describe specific embodiments, and are not intended to limit the present invention. Singular expressions include plural expressions unless the context clearly dictates otherwise. It should be understood that terms such as "include" or "having" in this application do not exclude in advance the possibility of existence or addition of features, numbers, steps, operations, components, parts, or combinations thereof described in the specification. .

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해서 일반적으로 이해되는 것과 동일한 의미를 가지고 있다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which the present invention belongs.

일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with the meaning in the context of the related art, and unless explicitly defined in this application, it should not be interpreted in an ideal or excessively formal meaning. don't

이하, 도 1 내지 도 11을 참조하여, 본 발명의 몇몇 실시예들에 따른 자동 가사 동기화 방법 및 장치를 설명한다.Hereinafter, with reference to FIGS. 1 to 11 , an automatic lyrics synchronization method and apparatus according to some embodiments of the present invention will be described.

도 1은 본 발명의 몇몇 실시예에 따른 자동 가사 동기화 장치를 개념을 설명하기 위한 예시도이다. 도 2는 본 발명의 몇몇 실시예에 따른 자동 가사 동기화 장치의 구성을 개략적으로 도시한 예시도이다. 도 3은 실시예에 따른 음성 추출부의 구성 및 동작을 설명하기 위한 예시도이다. 도 4는 실시예에 따른 데이터 전처리부의 구성을 나타내는 블록도이다. 도 5는 실시예에 따른 강제 정렬 수행부의 구성 및 동작을 설명하기 위한 예시도이다. 도 6은 강제 정렬 유닛의 동작을 설명하기 위한 예시도이다. 도 7은 자소 단위 강제 정렬 결과를 예시적으로 나타낸다. 도 8은 단어 단위 강제 정렬 결과를 예시적으로 나타낸다. 도 9는 문장 단위의 음성 정렬 정보를 예시적으로 나타낸다. 도 10은 음성 구간 검출 정보를 예시적으로 나타낸다. 도 11은 도 10의 음성 구간 검출 정보에 기초하여 도 9의 음성 정렬 정보를 수정한 음성 정렬 정보를 예시적으로 나타낸다. 1 is an exemplary diagram for explaining the concept of an automatic lyrics synchronization device according to some embodiments of the present invention. 2 is an exemplary view schematically showing the configuration of an automatic lyrics synchronization device according to some embodiments of the present invention. 3 is an exemplary diagram for explaining the configuration and operation of a voice extraction unit according to an embodiment. 4 is a block diagram showing the configuration of a data pre-processing unit according to an embodiment. 5 is an exemplary diagram for explaining the configuration and operation of a forced alignment performer according to an embodiment. 6 is an exemplary view for explaining the operation of the forced alignment unit. 7 illustratively shows results of forced sorting in grapheme units. 8 illustratively shows results of forced sorting in word units. 9 illustratively shows voice alignment information in sentence units. 10 shows voice section detection information by way of example. FIG. 11 exemplarily shows voice alignment information obtained by correcting the voice alignment information of FIG. 9 based on the voice section detection information of FIG. 10 .

도 1을 참조하면, 자동 가사 동기화 장치(10)는 음원과 가사 데이터를 입력받을 수 있다. Referring to FIG. 1 , the automatic lyrics synchronization device 10 may receive a sound source and lyrics data.

음원은 일정 시간의 재생 길이를 가지는 음악일 수 있다. 음원은 가수의 음성에 해당하는 노래 및 상기 노래에 대응되는 악기음으로 구성될 수 있다. 가수의 노래는 적어도 하나의 언어로 구성될 수 있다. 예를 들어, 노래는 한국어와 영어가 함께 구사된 음성을 포함할 수 있으나, 이에 한정되는 것은 아니다. 가사 데이터는 음원 중 음성과 관련된 정보를 나타낼 수 있다. 가사 데이터는 청각 정보인 음성을 시각적으로 전달하기 위한 시각 정보에 해당할 수 있다. 실시예에서, 가사 데이터는 음성에 대응하는 시각 정보를 적어도 하나의 언어를 통해 사용자에게 전달하도록 구성될 수 있다. The sound source may be music having a reproduction length of a predetermined time. The sound source may include a song corresponding to the singer's voice and an instrumental sound corresponding to the song. A singer's song may consist of at least one language. For example, a song may include voices in both Korean and English, but is not limited thereto. Lyrics data may represent information related to voice among sound sources. Lyrics data may correspond to visual information for visually conveying voice, which is auditory information. In an embodiment, the lyric data may be configured to convey visual information corresponding to voice to a user through at least one language.

실시예에서, 음원은 스트리밍 서비스로 제공되는 압축 형태의 음원 형식을 가질 수 있다. 예를 들어, 음원은 ac3, mp3, aac, wma, flac, opus, wav 등과 같은 오디오 코텍 중 하나의 형식을 가질 수 있다. 가사 데이터는 구절, 문장 단위의 복수의 라인을 포함할 수 있다. 또한, 가사 데이터는 각 라인별 시작 시점 및 종료 시점에 해당하는 타임 스탬프를 포함할 수 있으며, LRC, SMI, SRT 중 하나의 형식으로 구성될 수 있다. 여기서, 가사 데이터와 음원(구체적으로, 음성)은 싱크가 맞지 않는 상태일 수 있다. 실시예에서, 가사 데이터의 복수의 라인은 타임 스탬프가 설정되지 않은 상태일 수 있으나, 이에 한정되는 것은 아니다. 몇몇 실시예에서, 가사 데이터의 복수의 라인은 타임 스탬프가 설정되어 있으나, 설정된 타임 스탬프와 음원 사이의 동기화가 수행되지 않아 싱크가 맞지 않은 상태일 수 있다.In an embodiment, the sound source may have a compressed sound source format provided as a streaming service. For example, the sound source may have one of audio codecs such as ac3, mp3, aac, wma, flac, opus, and wav. Lyrics data may include a plurality of lines in units of phrases and sentences. In addition, the lyric data may include time stamps corresponding to start and end times for each line, and may be configured in one of LRC, SMI, and SRT formats. Here, the lyric data and sound source (specifically, voice) may be out of sync. In an embodiment, the plurality of lines of lyric data may be in a state in which time stamps are not set, but is not limited thereto. In some embodiments, time stamps are set for a plurality of lines of lyric data, but synchronization between the set time stamp and the sound source may not be performed, and thus may be out of sync.

실시예에 따른 자동 가사 동기화 장치(10)는 음원과 비동기화된 가사 데이터를 수신하고, 음원 및 가사 데이터를 비교 분석하여, 가사 데이터를 음원에 자동으로 동기화하여 수정 가사 데이터를 생성, 생성된 수정 가사 데이터를 출력할 수 있다. 자동 가사 동기화 장치(10)는 입력된 가사 데이터의 복수의 라인에 음원에 대응하는 타임 스탬프를 새로 설정하거나 음원에 대응하도록 타임 스탬프를 수정하여, 수정 가사 데이터를 생성할 수 있다. The automatic lyrics synchronization device 10 according to the embodiment receives lyric data that is not synchronized with the sound source, compares and analyzes the sound source and lyric data, automatically synchronizes the lyric data with the sound source, generates corrected lyrics data, and generates modified lyrics data. Lyrics data can be output. The automatic lyrics synchronization device 10 may generate modified lyrics data by newly setting time stamps corresponding to sound sources in a plurality of lines of input lyrics data or by modifying time stamps to correspond to sound sources.

도 2를 참조하면, 자동 가사 동기화 장치(10)는 음성 추출부(100), 데이터 전처리부(110) 및 강제 정렬 수행부(120)를 포함한다. 본 실시예에 따른 자동 가사 동기화 장치(10)는, 전적으로 하드웨어이거나, 또는 부분적으로 하드웨어이고 부분적으로 소프트웨어인 측면을 가질 수 있다. 예컨대, 자동 가사 동기화 장치 및 이에 포함된 각 모듈(module)은, 특정 형식 및 내용의 데이터를 전자통신 방식으로 주고받기 위한 장치 및 이에 관련된 소프트웨어를 통칭할 수 있다. 본 명세서에서 "부(unit)", "모듈(module)", "서버(server)", "장치", "장치" 또는 "단말" 등의 용어는 하드웨어 및 해당 하드웨어에 의해 구동되는 소프트웨어의 조합을 지칭하는 것으로 의도된다. 예를 들어, 여기서 하드웨어는 CPU, GPU, NPU 또는 다른 프로세서(processor)를 포함하는 데이터 처리 장치일 수 있다. 또한, 하드웨어에 의해 구동되는 소프트웨어는 실행중인 프로세스, 객체(object), 실행파일(executable), 실행 스레드(thread of execution), 프로그램(program) 등을 지칭할 수 있다.Referring to FIG. 2 , the automatic lyrics synchronization device 10 includes a voice extraction unit 100 , a data pre-processing unit 110 and a forced alignment unit 120 . The automatic lyrics synchronization device 10 according to the present embodiment may be entirely hardware, or may have an aspect of being partially hardware and partially software. For example, an automatic lyrics synchronization device and each module included therein may collectively refer to a device for exchanging data of a specific format and content in an electronic communication method and software related thereto. In this specification, terms such as “unit”, “module”, “server”, “device”, “device” or “terminal” refer to a combination of hardware and software driven by the hardware. It is intended to refer to For example, the hardware may be a data processing device including a CPU, GPU, NPU, or other processor. Also, software driven by hardware may refer to a running process, an object, an executable file, a thread of execution, a program, and the like.

또한, 자동 가사 동기화 장치(10)를 구성하는 각각의 모듈은 반드시 물리적으로 구분되는 별개의 구성요소를 지칭하는 것으로 의도되지 않는다. 음성 추출부(100), 데이터 전처리부(110) 및 강제 정렬 수행부(120)는 서로 구분되는 블록으로 도시되나, 이는 자동 가사 동기화 장치의 구성을 실행되는 동작에 의해 단지 기능적으로 구분한 것이다. 따라서, 실시예에 따라서는 음성 추출부(100), 데이터 전처리부(110) 및 강제 정렬 수행부(120)는 일부 또는 전부가 동일한 하나의 장치 내에 집적화될 수 있고, 하나 이상이 다른 부와 물리적으로 구분되는 별개의 장치로 구현될 수도 있으며, 분산 컴퓨팅 환경 하에서 서로 통신 가능하게 연결된 컴포넌트들일 수도 있다.In addition, each module constituting the automatic lyrics synchronization device 10 is not necessarily intended to refer to a separate physically distinct component. The voice extraction unit 100, the data pre-processing unit 110, and the forced alignment execution unit 120 are shown as separate blocks, but this only functionally divides the configuration of the automatic lyrics synchronization device by the operation to be executed. Therefore, depending on the embodiment, some or all of the voice extractor 100, the data preprocessor 110, and the forced alignment performer 120 may be integrated in the same device, and one or more may be physically integrated with other units. It may be implemented as a separate device distinguished by , or may be components communicatively connected to each other under a distributed computing environment.

음성 추출부(100)는 음원에서 음성을 추출한다. 음성 추출부(100)는 입력된 음원에서 음성만을 추출하도록 구성된다. 후술하는 강제 정렬 수행부(120)에서 수행되는 가사 데이터의 강제 정렬(Forced-alignment)은 음성에만 적용하는 것이 효과적일 수 있다. 따라서, 음원에서 음성 이외의 잡음, 악기음이 효과적으로 필터링 되어야 강제 정렬이 효과적으로 수행될 수 있어, 음성과 가사의 동기화가 정확하게 수행될 수 있다.The voice extraction unit 100 extracts voice from a sound source. The voice extraction unit 100 is configured to extract only voice from an input sound source. It may be effective to apply the forced-alignment of lyric data performed by the forced-aligner 120 to be described later only to the voice. Therefore, forced alignment can be effectively performed only when noise other than voice and musical instrument sounds are effectively filtered out of the sound source, so that voice and lyrics can be synchronized accurately.

실시예에서, 입력된 음원은 음성과 악기음이 스테레오 형식으로 합쳐진 상태일 수 있다. 즉, 입력된 음원은 음성과 악기음이 서로 상이한 트랙으로 구성되는 멀티 트랙 음원으로 제공되지 않아, 단순히 트랙 분리를 통해 음성 추출이 어려운 상황일 수 있다. In an embodiment, the input sound source may be in a state in which voice and musical instrument sound are combined in a stereo format. That is, since the input sound source is not provided as a multi-track sound source composed of different tracks for voice and instrument sound, it may be difficult to extract the sound simply by separating the tracks.

실시예에서, 음성 추출부(100)는 딥러닝 기반의 음성 분리 모델을 포함할 수 있으며, 음성 분리 모델을 통해 입력된 음원에서 음성만을 추출할 수 있다. 음성 분리 모델은 입력층, 출력층, 그리고 상기 입력층과 출력층 사이에 적어도 하나 이상의 중간층(또는 은닉층, hidden layer)을 포함하는 계층 구조로 구성된 딥러닝 알고리즘에 기반하여 구성될 수 있다. 딥러닝 알고리즘은, 이와 같은 다중 계층 구조에 기반하여, 층간 활성화 함수(activation function)의 가중치를 최적화 (optimization)하는 학습을 통해 결과적으로 신뢰성 높은 결과를 도출할 수 있다.In an embodiment, the voice extractor 100 may include a deep learning-based voice separation model, and may extract only voice from an input sound source through the voice separation model. The speech separation model may be constructed based on a deep learning algorithm composed of a hierarchical structure including an input layer, an output layer, and at least one intermediate layer (or hidden layer) between the input layer and the output layer. The deep learning algorithm, based on such a multi-layered structure, can derive highly reliable results through learning that optimizes weights of activation functions between layers.

본 발명에 적용 가능한 딥러닝 알고리즘은, 심층 신경망 (deep neural network; DNN), 합성곱 신경망 (convolutional neural network; CNN), 순환 신경망 (recurrent neural network; RNN), 장단기 메모리(Long Short Term Memory; LSTM), 양방향 장단기 메모리(Bidirectional Short Term Memory; BLSTM 등을 포함할 수 있다. 여기서, 음성은 시계열적인 데이터이므로, 반복적이고 순차적인 데이터(sequential data)학습에 특화된 LSTM 또는 BLSTM을 기초로 음성 분리 모델이 구현될 수 있으나, 이에 한정되는 것은 아니다. Deep learning algorithms applicable to the present invention include a deep neural network (DNN), a convolutional neural network (CNN), a recurrent neural network (RNN), and a long short term memory (LSTM). ), Bidirectional Short Term Memory (BLSTM), etc. Here, since speech is time-series data, a speech separation model based on LSTM or BLSTM specialized for repetitive and sequential data learning It may be implemented, but is not limited thereto.

음성 추출부(100)은 상술한 딥러닝 알고리즘을 통해 효과적으로 음원에서 악기음을 필터링할 수 있으며, 음성만을 추출하게 된다. The voice extraction unit 100 can effectively filter instrumental sounds from sound sources through the above-described deep learning algorithm, and extracts only voices.

도 3a는 입력된 음원을 예시적으로 도시하며, 도 3b는 상술한 음성 분리 모델을 통해 입력된 음원에서 악기음을 필터링하고 음성만을 분리한 상태를 예시적으로 도시한다. 도 3a 및 도 3b는 시간에 따른 음원의 파형을 예시적으로 도시한 것으로, 도 3b를 참조하면 도 3a에 비교하여 음성 이외의 악기음을 완전히 제거된 상태로 분리된 음성만을 파형으로 예시적으로 도시한 것임을 알 수 있다.FIG. 3A illustrates an input sound source as an example, and FIG. 3B illustrates a state in which musical instrument sounds are filtered and only voice is separated from the input sound source through the above-described voice separation model. 3A and 3B illustratively show the waveform of a sound source over time. Referring to FIG. 3B, compared to FIG. 3A, only voices separated with musical sounds other than voices completely removed are illustratively shown as waveforms. It can be seen that it is illustrated.

실시예에서, 음성 추출부(100)은 후술하는 데이터 처리에 적합한 형식으로 분리된 음성의 형식을 변경하는 전처리 과정을 더 수행할 수도 있다. 실시예에서, 전처리 과정은 강제 정렬 수행부(120)에서 사용될 수 있도록 음성의 샘플링 레이트(샘플링 주파수) 영역을 변경하거나 스테레오를 모노로 변경하는 것을 포함할 수 있으나, 이에 한정되는 것은 아니다. 음성 추출부(100)에서, 추출된 음성은 강제 정렬 수행부(120)로 제공될 수 있다.In an embodiment, the voice extractor 100 may further perform a preprocessing process of changing the format of the separated voice into a format suitable for data processing described below. In an embodiment, the pre-processing process may include changing a sampling rate (sampling frequency) region of voice or changing stereo to mono so that it can be used in the forced alignment unit 120, but is not limited thereto. In the voice extraction unit 100, the extracted voice may be provided to the forced alignment performing unit 120.

데이터 전처리부(110)는 강제 정렬(force-alignment)를 위한 데이터 전처리를 수행할 수 있다.The data pre-processing unit 110 may perform data pre-processing for force-alignment.

도 4를 참조하면, 데이터 전처리부(110)는 언어 변환 유닛(112) 및 토큰 변환 유닛(114)을 포함한다.Referring to FIG. 4 , the data pre-processing unit 110 includes a language conversion unit 112 and a token conversion unit 114 .

실시예에서, 음원의 음성은 적어도 두 개의 언어로 구성될 수 있으며, 가사 데이터 또한 두 개의 언어로 구성될 수 있다. 강제 정렬 수행부(120)에서 수행되는 강제 정렬은 발음 사전을 사용하지 않고 하나의 언어를 기준으로 수행될 수 있다. 예를 들어, 음성은 제1 언어가 주로 구사되나, 부분적으로 제2 언어가 사용되는 콘텐츠일 수 있으며, 가사 데이터는 음성의 언어 구성에 대응하여 제1 언어와 제2 언어를 함께 포함하여 구성된 상태일 수 있다. 예시적으로, 제1 언어는 한국어, 제2 언어는 영어일 수 있으나, 이에 한정되는 것은 아니다. 강제 정렬 수행부(120)가 제1 언어를 기준으로 음성과 텍스트 사이의 강제 정렬을 수행하도록 구성되므로, 가사 데이터를 제1 언어로 변환하는 전처리 과정이 필요할 수 있다. In an embodiment, the audio of the sound source may be composed of at least two languages, and the lyric data may also be composed of two languages. The forced alignment performed by the forced alignment performer 120 may be performed based on one language without using a pronunciation dictionary. For example, the voice may be content in which a first language is mainly used, but a second language is partially used, and the lyric data includes both the first language and the second language in correspondence with the language configuration of the voice. can be Illustratively, the first language may be Korean and the second language may be English, but is not limited thereto. Since the forced alignment performer 120 is configured to perform forced alignment between voice and text based on the first language, a preprocessing process of converting the lyric data into the first language may be required.

언어 변환 유닛(112)은 상술한 가사 데이터를 제1 언어로 변환하는 작업을 수행할 수 있다. 구체적으로, 언어 변환 유닛(112)은 제2 언어로 구성된 문장을 제2 언어의 발음에 따라 제1 언어로 변환하는 전처리를 수행할 수 있다. 예를 들어, "I believe in you"는 "아이 빌립 인 유"로 변환될 수 있다. 언어 변환 유닛(112)은 가사 데이터를 하나의 언어로 변환하는 언어 변환 작업을 수행하여 제1 전처리 가사 데이터를 생성할 수 있다. 즉, 제1 전처리 가사 데이터는 하나의 언어로 변환하는 제1 전처리가 수행된 상태를 의미할 수 있다. 언어 변환 유닛(112)은 가사 데이터의 문장별로 제1 전처리를 수행할 수 있다. 언어 변환 유닛(112)은 가사 데이터에서 제1 전처리가 수행된 텍스트에 대한 정보인 제1 전처리 정보를 생성할 수 있다. 이러한 제1 전처리 정보에 기초하여 추후 강제 정렬을 통해 수정 가사 데이터의 생성시 제1 전처리된 텍스트에 대한 역변환이 수행될 수 있다. The language conversion unit 112 may perform an operation of converting the above-described lyric data into a first language. Specifically, the language conversion unit 112 may perform preprocessing of converting a sentence composed of a second language into a first language according to a pronunciation of the second language. For example, "I believe in you" can be converted to "I believe in you." The language conversion unit 112 may generate first pre-processed lyrics data by performing a language conversion task of converting lyrics data into one language. That is, the first pre-processed lyric data may indicate a state in which a first pre-process for converting into one language has been performed. The language conversion unit 112 may perform first pre-processing for each sentence of lyric data. The language conversion unit 112 may generate first pre-processing information, which is information about text on which the first pre-processing has been performed, in lyrics data. Based on the first pre-processing information, inverse conversion may be performed on the first pre-processed text when the modified lyric data is generated through forced alignment later.

실시예에서, 강제 정렬 수행부(120)는 단어 단위보다 하위 단위에 해당하는 토큰 단위, 또는 자소 단위를 기준으로 강제 정렬(forced-alignment)을 수행할 수 있다. 특히, 정렬을 수행하게 되는 언어가 한국어인 경우, 조사 및 의미 변화가 많기 때문에 인식해야 될 단어의 수가 너무 많기 때문에 토큰 단위로 인식 대상 단위를 사전에 분리하는 전처리 작업이 필요할 수 있다. In an embodiment, the forced alignment performer 120 may perform forced-alignment based on a token unit or grapheme unit corresponding to a lower unit than a word unit. In particular, when the language to be aligned is Korean, the number of words to be recognized is too large due to a large number of postpositions and semantic changes, so a pre-processing task of separating recognition target units into token units may be required.

토큰 변환 유닛(114)은 제1 전처리 가사 데이터를 토큰화(tokenization)하는 과정을 수행할 수 있다. 실시예에서, 토큰 변환 유닛(114)은 각 전처리 가사 데이터에 포함된 스크립트에 대한 토큰화를 수행할 수 있다. 토큰화를 통해 단어 단위보다 작은 유닛으로 분리됨에 따라, 강제 정렬 대상 어휘를 줄이고 단어사전 밖에 있는 단어들(out-of-vocabulary; OOV)의 수를 최소화할 수 있어 어떤 가사 데이터가 입력되더라도 후술하는 강제 정렬이 더욱 효과적으로 실행될 수 있게 된다.The token conversion unit 114 may perform a process of tokenizing the first pre-processed lyric data. In an embodiment, the token conversion unit 114 may perform tokenization on scripts included in each pre-processed lyric data. As it is divided into units smaller than word units through tokenization, it is possible to reduce the vocabulary subject to forced alignment and minimize the number of out-of-vocabulary (OOV) words. Forced sorting can be performed more effectively.

몇몇 실시예에서, 토큰 변환 유닛(114)은 토큰화를 수행하기 위한 맞춤형 사전을 포함하도록 구성될 수 있다. 사전은 토큰화를 수행하기 위한 사전으로, 스크립트에 포함된 음절 또는 자소를 손실없이 보존한 상태에서 구축된 사전에 해당할 수 있다.In some embodiments, token conversion unit 114 may be configured to include a custom dictionary for performing tokenization. The dictionary is a dictionary for performing tokenization and may correspond to a dictionary built while preserving syllables or grapheme included in the script without loss.

또한, 몇몇 실시예에서, 토큰 변환 유닛(114)은 단어의 시작을 나타내는 토큰과 단어의 시작이 아닌 토큰을 표시하는 특수 기호를 사용하여 토큰을 형성할 수 있다. 예를 들어, "처음이라 그래 며칠 뒤엔 괜찮아져"는 "_처음 이라 _그래 _며칠 _뒤 엔 _괜찮아져"와 같이 토큰화가 수행되되 원본 문장에서 단어의 시작은 _와 같은 특수 기호로 표시하도록 토큰화가 수행될 수 있다. 이와 같이, 분할된 텍스트에서 시작 위치가 특수 기호로 확인되기 때문에 모호함없이 강제 정렬 결과로 추출된 토큰 단위의 결과를 단어 단위로 디토큰나이제이션(detokenization)을 수행할 수 있다. Additionally, in some embodiments, token conversion unit 114 may form tokens using tokens to indicate the beginning of a word and special symbols to indicate a token that is not the beginning of a word. For example, "_for the first time, yes, in a few days it will be fine" is tokenized as "_for the first time _yes _for _days _after _it will be fine", but the beginning of a word in the original sentence is marked with a special symbol such as _. Tokenization can be performed. In this way, since the start position of the divided text is identified as a special symbol, detokenization can be performed on a word-by-word basis on the result of the token unit extracted as a result of forced alignment without ambiguity.

토큰 변환 유닛(114)은 제1 전처리 가사 데이터를 상술한 바와 같이 토큰화하여 제2 전처리 가사 데이터를 생성할 수 있다. 생성된 제2 전처리 가사 데이터는 강제 정렬 수행부(120)로 제공될 수 있다. The token conversion unit 114 may generate second pre-processed lyrics data by tokenizing the first pre-processed lyrics data as described above. The generated second pre-processed lyric data may be provided to the forced alignment performer 120 .

강제 정렬 수행부(120)는 음성과 가사 데이터에 기초하여 강제 정렬(forced alignment)을 수행하여 수정 가사 데이터를 생성할 수 있다. 강제 정렬 수행부(120)는 가사 데이터를 구성하는 자소들의 정보 및 음성의 특정 프레임이 어떤 자소에 해당하는지에 관한 정보를 포함하는 음성 정렬 정보를 추출할 수 있으며, 이를 기초로 음성과 가사 데이터를 동기화하여 수정 가사 데이터를 생성할 수 있다.The forced alignment performer 120 may generate modified lyrics data by performing forced alignment based on the voice and lyrics data. The forced alignment performer 120 may extract voice alignment information including information of character elements constituting the lyrics data and information about which character elements a specific frame of voice corresponds to, and based on this, voice and lyrics data may be extracted. Corrected lyric data may be generated by synchronization.

도 5를 참조하면, 강제 정렬 수행부(120)는 음성 특징 추출 유닛(122), 음성 구간 검출 유닛(124), 강제 정렬 유닛(126) 및 수정 정보 생성 유닛(128)을 포함한다.Referring to FIG. 5 , the forced alignment performing unit 120 includes a voice feature extraction unit 122, a voice section detection unit 124, a forced alignment unit 126, and a correction information generating unit 128.

음성 특징 추출 유닛(122)은 음성에 대한 특징 벡터를 추출할 수 있다. 실시예에서, 특징 벡터는 MFCC(Mel Frequency Cepstral Coefficients) 또는 필터 뱅크(Filterbank)일 수 있으나, 이에 한정되는 것은 아니다. 음성 특징 추출 유닛(122)은 시간 윈도우에 기반하여 음성을 음성 프레임 단위로 분할하고, 음성 프레임 단위를 기준으로 음성 특징을 추출할 수 있다. 구체적으로, MFCC은 시간 윈도우에 기반하여 음성을 음성 프레임 단위로 분할되고, FFT(Fast Fourier Transform)을 이용하여 음성 프레임을 주파수 영역으로 변환될 수 있다. The speech feature extraction unit 122 may extract a feature vector for speech. In an embodiment, the feature vector may be MFCC (Mel Frequency Cepstral Coefficients) or a filter bank, but is not limited thereto. The voice feature extraction unit 122 may divide the voice into voice frame units based on the time window and extract voice features based on the voice frame unit. Specifically, the MFCC may divide the “voice” into “voice” frame units based on a time window, and convert the “voice” frame into a frequency domain using FFT (Fast Fourier Transform).

또한, 필터 뱅크(Filter bank)를 이용하여 음성 프레임을 여러 주파수 대역의 신호로 나누고, 각 주파수 대역의 신호의 에너지를 계산하며, 계산된 에너지에 DCT(Discrete Cosine Transform)를 적용하는 과정을 통해 MFCC가 획득될 수 있다. In addition, by using a filter bank, MFCC divides the voice frame into signals of several frequency bands, calculates the energy of the signal of each frequency band, and applies DCT (Discrete Cosine Transform) to the calculated energy. can be obtained.

또한, 몇몇 실시예에서, 음성 특징은 음성으로부터 스펙트로그램(spectrogram)을 획득하고, 스펙트로그램으로부터 추출된 음성의 주파수 특징일 수 있다. 스펙트로그램은 생성된 스펙트럼에서 진폭 값이 클수록 빈(bin)의 크기를 크게 하고, 진폭 값이 작을수록 빈의 크기를 작게 나타내 각각의 주파수 위치에 대해 진폭 값의 크기를 연속으로 표시한 것이다. 음성 특징 추출 유닛(122)은 스펙트로그램에 나타난 주파수 특징 정보를 음성의 특징으로서 추출할 수 있다.Also, in some embodiments, the voice feature may be a frequency feature of the voice obtained by obtaining a spectrogram from the voice and extracted from the spectrogram. In the spectrogram generated, the larger the amplitude value, the larger the bin size, and the smaller the amplitude value, the smaller the bin size. The voice feature extraction unit 122 may extract the frequency feature information indicated in the spectrogram as a voice feature.

도 6을 참조하면, 강제 정렬 유닛(126)은 추출된 음성 특징에 대응되는 가사 데이터의 텍스트를 강제 정렬할 수 있다. 실시예에서, 강제 정렬 유닛(126)은 제1 언어를 기준으로 강제 정렬을 수행할 수 있으며, 강제 정렬 유닛(126)에 입력되는 가사 데이터는 제1 언어로 변환하는 제1 전처리와 토큰화가 수행된 제2 전처리가 수행된 가사 데이터일 수 있다. 즉, 인식 대상 단위가 토큰 단위로 사전에 분리된 상태이며, 단어의 시작 위치가 특수 기호로 확인되는 상태로, 더욱 정확하고 효율적인 강제 정렬이 수행될 수 있다. Referring to FIG. 6 , the forced alignment unit 126 may forcibly align text of lyric data corresponding to extracted voice features. In an embodiment, the forced sorting unit 126 may perform forced sorting based on the first language, and perform first preprocessing and tokenization of lyrics data input to the forced sorting unit 126 to be converted into the first language. It may be lyric data on which the second pre-processing has been performed. That is, more accurate and efficient forced alignment can be performed in a state in which units to be recognized are separated into token units in advance, and the start position of a word is confirmed with a special symbol.

강제 정렬 유닛(126)은 언어 변환 및 토큰화가 수행된 제2 전처리 가사 데이터와 음성 특징을 분석하여 음성 정렬 정보를 생성할 수 있다. The compulsory alignment unit 126 may generate voice alignment information by analyzing voice characteristics and the second preprocessed lyrics data subjected to language conversion and tokenization.

도 7은 "비 내리는 날엔 우산이 돼주고 어둠이 오면 빛이 돼줄게"라는 가사문장에 대한 자소 단위의 음성 정렬 정보를 나타낸다. 음성 정렬 정보에서 X축은 시간(s), Y축은 최대값이 1, 최소값이 -1로 정규화된 음성 진폭(amplitude)을 의미할 수 있다. 도 7에 도시된 바와 같이, 강제 정렬 수행부(120)는 가사 데이터의 자소 단위로 음성 정렬 정보를 추출할 수 있다. 또한, 강제 정렬 수행부(120)는 자소 단위로 추출된 음성 정렬 정보를 기초로 상위 단위에 해당하는 토큰별 결과, 단어별 결과, 문장별 결과를 추출할 수 있다. 도 8은 도 7의 문장에 대한 단어 단위의 음성 정렬 정보를 나타낸다. 자소 단위로부터 시작하여 여러 상위 단위에 대한 정렬이 수행됨에 따라 문장 단위로 가사를 출력하는 것이 아닌, 문장의 하위 단위에 해당하는 단어, 토큰 단위로 가사를 출력할 수 있게 된다. 7 shows phonetic alignment information in grapheme units for the lyric sentence "I'll be your umbrella on a rainy day and a light when it's dark." In the voice alignment information, the X axis may mean time (s), and the Y axis may mean normalized voice amplitude with a maximum value of 1 and a minimum value of -1. As shown in FIG. 7 , the forced alignment performer 120 may extract voice alignment information in units of character elements of lyrics data. In addition, the forced alignment performer 120 may extract a result by token, a result by word, and a result by sentence corresponding to a higher unit based on the phonetic alignment information extracted in units of graphemes. FIG. 8 shows voice alignment information in units of words for the sentence of FIG. 7 . As sorting is performed for several upper units starting from the grapheme unit, it is possible to output lyrics in units of words and tokens corresponding to lower units of sentences instead of outputting lyrics in units of sentences.

여기서, 음원에 포함된 노래(음성)는 일반적인 사람의 발화(음성)와 다른 특징적인 요소를 더 포함할 수 있다. 노래(음성)는 바이브레이션, 발음 변이, 가성, 코러스, 음성 변조 등 다양한 발성으로 인한 음성의 왜곡이 발생할 수 있다. 강제 정렬(Forced-alignment)은 음성이 어떤 말을 하는지 대응되는 텍스트에 정렬을 수행하는 것으로, 일정 수준 이상의 성능(정확도)을 낼 수 있지만 완벽하게 인식하기에는 어려움이 존재한다. Here, the song (voice) included in the sound source may further include a characteristic element different from that of a general person's speech (voice). Singing (voice) may cause distortion of voice due to various vocalizations such as vibration, pronunciation variation, falsetto, chorus, and voice modulation. Forced-alignment is to align the text corresponding to what the voice says, and it can achieve a certain level of performance (accuracy), but there is difficulty in perfectly recognizing it.

본 실시예에 따른 강제 정렬 수행부(120)는 추출된 음성에 대해 음성 구간과 비음성 구간을 검출하고, 검출된 결과에 기초하여 음성 정렬 정보를 수정하는 과정을 더 수행하여, 상술한 노래(음성) 특성을 반영한 음성 정렬 정보를 출력하도록 구성될 수 있다. 즉, 음성 검출(Speech activity detection) 기술을 통해 노래에 대한 강제 정렬을 보완할 수 있다.The forced alignment performing unit 120 according to the present embodiment detects a voice section and a non-speech section of the extracted voice, and further performs a process of correcting voice alignment information based on the detected result, so as to perform the above-described song ( voice) may be configured to output voice alignment information reflecting characteristics. That is, forced alignment for songs can be supplemented through speech activity detection technology.

다시, 도 5를 참조하면, 음성 구간 검출 유닛(124)은 추출된 음성을 분석하여 음성 구간 정보를 생성할 수 있다. 음성 구간 검출 유닛(124)은 미리 학습된 비음성 구간 검출 모델을 포함할 수 있다. 비음성 구간 검출 모델은 딥러닝 기반의 학습 모델일 수 있으나, 이에 한정되는 것은 아니다. 실시예에서, 비음성 구간 검출 모델은 바이브레이션, 발음 변이, 가상, 코러스, 음성 변조 등과 같은 다양한 발성에 의한 노이즈인 비음성 구간을 검출하도록 미리 학습된 상태일 수 있다. 비음성 구간 검출 모델을 통해 식별된 비음성 구간을 제외한 구간은 음성 구간일 수 있다. 음성 구간 검출 유닛(124)은 음성 구간 및 비음성 구간을 식별한 음성 구간 정보를 생성할 수 있으며, 생성된 음성 구간 정보는 수정 정보 생성 유닛(128)에 제공될 수 있다.Again referring to FIG. 5 , the speech section detection unit 124 may generate speech section information by analyzing the extracted speech. The speech section detection unit 124 may include a pre-learned non-speech section detection model. The non-speech section detection model may be a deep learning-based learning model, but is not limited thereto. In an embodiment, the non-voice section detection model may be in a pre-learned state to detect non-voice sections, which are noises caused by various vocalizations such as vibration, pronunciation variation, virtual, chorus, voice modulation, and the like. A section excluding the non-voice section identified through the non-voice section detection model may be a speech section. The speech segment detection unit 124 may generate speech segment information identifying the speech segment and the non-speech segment, and the generated speech segment information may be provided to the correction information generation unit 128.

수정 정보 생성 유닛(128)은 음성 구간 정보와 음성 정렬 정보를 수신 받고, 음성 정렬 정보와 음성 구간 정보를 비교하여 수정 정렬 정보를 생성할 수 있다. 수정 정보 생성 유닛(128)은 음성 구간 정보에 포함된 비음성 구간을 활용하여, 노래(음성)의 다양한 음성 변이로 인해 발생한 강제 정렬(forced-alignment)의 오류 부분을 보완하는 수정 정보를 생성할 수 있다. 여기서, 수정 정보 생성 유닛(128)은 음성 정렬 정보에서 비음성 구간에 대응하는 구간을 제외하는 수정 정렬 정보를 생성할 수 있다. The correction information generating unit 128 may receive the voice section information and the voice alignment information, and generate the correction alignment information by comparing the voice alignment information and the voice interval information. The correction information generation unit 128 utilizes the non-speech section included in the speech section information to generate correction information that compensates for the error part of forced-alignment caused by various voice variations of the song (speech). can Here, the correction information generation unit 128 may generate correction alignment information excluding a section corresponding to the non-speech section from the speech alignment information.

도 9는 음성 정렬 정보를 나타낸 예시 이미지로, "안녕 쉽지 않죠 바쁘죠"라는 문장에 대한 음성 정렬 정보를 도시한다. 도 10은 도 9에 대응하는 문장에 대한 음성 구간과 비음성 구간을 도시한다. 도 10에서 붉은 이미지로 식별된 부분은 음성 구간, 나머지 구간은 비음성 구간일 수 있다. 예시적으로, 비음성 구간은 바이브레이션이 수행된 구간일 수 있다. 수정 정보 생성 유닛(128)은 음성 정렬 정보에서 비음성 구간에 해당하는 구간이 후속되는 음성 정렬에서 제외되도록 처리하는 수정 정렬 정보를 생성할 수 있다. 수정 정보 생성 유닛(128)은 수정 정렬 정보를 강제 정렬 유닛(126)에 피드백할 수 있으며, 강제 정렬 유닛(126)은 수정 정렬 정보를 참조하여 음성 특징과 가사 데이터에 대한 강제 정렬을 다시 수행하게 되며, 음성 정렬 정보를 생성하게 된다. 도 11은 도 10의 비음성 구간에 기초하여 생성된 수정 정렬 정보를 참조하여 "안녕 쉽지 않죠 바쁘죠"라인에 대한 강제 정렬을 다시 수행한 결과이다. 도 11과 도 9를 비교하면, 수정 정렬 정보에 의해 비음성 구간이 제외됨에 따라, 비음성 구간에 중첩되어 정렬되었던 "쉽지 않죠 바쁘죠" 문장은 대한 비음성 구간이 끝난 이후에 시작되도록 타임 스탬프가 이동되게 된다.9 is an example image showing voice alignment information, and shows voice alignment information for the sentence “Hello, it's not easy, I'm busy.” FIG. 10 shows a speech section and a non-speech section for the sentence corresponding to FIG. 9 . In FIG. 10 , the portion identified as a red image may be a voice section, and the remaining sections may be a non-voice section. Illustratively, the non-voice period may be a period in which vibration is performed. The correction information generation unit 128 may generate correction alignment information for processing so that a section corresponding to a non-speech section in the voice alignment information is excluded from subsequent voice alignment. The correction information generation unit 128 may feed back the corrected alignment information to the forced alignment unit 126, and the forced alignment unit 126 refers to the corrected alignment information to perform forced alignment on voice features and lyric data again. and generate voice alignment information. FIG. 11 is a result of performing forced alignment on the line “Hello, it's not easy, I'm busy” again with reference to corrected alignment information generated based on the non-speech section of FIG. 10 . Comparing FIG. 11 with FIG. 9, as the non-speech section is excluded by the modified alignment information, the sentence "It's not easy, I'm busy", which was overlapped and sorted in the non-speech section, has a timestamp so that it starts after the non-speech section ends. will be moved

강제 정렬 수행부(120)는 다시 생성된 음성 정렬 정보에 기초하여 가사 데이터의 타임 스탬프를 수정한 수정 가사 데이터를 생성할 수 있다. 즉, 자소 단위로 음성 데이터에 대응하도록 정렬된 수정 가사 데이터가 생성될 수 있다. 강제 정렬 수행부(120)는 제1 전처리 정보에 기초하여 제1 전처리된 텍스트에 대한 역변환을 수행할 수 있으며, 수정 가사 데이터는 종래와 같이 제1 언어와 제2 언어가 함께 포함되도록 구성되게 된다. The forced alignment performer 120 may generate corrected lyrics data by correcting the time stamp of the lyrics data based on the regenerated voice alignment information. That is, modified lyric data aligned to correspond to voice data in units of character elements may be generated. The forced alignment performing unit 120 may perform inverse transformation on the first pre-processed text based on the first pre-processing information, and the modified lyric data is configured to include both the first language and the second language as in the prior art. .

본 발명의 실시예에 따른 자동 가사 동기화 장치는 자소 단위로부터 시작하여 여러 상위 단위에 대한 정렬을 수행하여 문장의 하위 단위에 해당하는 단어, 토큰 단위로 가사를 출력할 수 있게 된다. 따라서, 대략적 위치의 시작점과 끝점을 잡고, 문맥이 연결되는 단위의 문장으로 음성 전사 후, 분리해야 될 부분만 단어 사이에 표시하여 자동으로 생성자가 원하는 형태의 가사를 빠르게 생성하는 것이 지원될 수 있다.The apparatus for synchronizing automatic lyrics according to an embodiment of the present invention can output lyrics in units of words and tokens corresponding to lower units of a sentence by sorting several upper units starting from a grapheme unit. Therefore, it can be supported to quickly generate lyrics in a form desired by the creator automatically by holding the starting and ending points of the approximate position, transcribing the voice into sentences of units in which the context is connected, and displaying only the parts to be separated between words. .

또한, 강제 정렬이 수행되는 기준 언어에 대응하여 가사 데이터에 대한 언어 변환을 자동으로 수행하여 더욱 효율적인 강제 정렬이 수행되는 것을 지원할 수 있다. In addition, more efficient forced alignment may be supported by automatically performing language conversion on lyrics data corresponding to a reference language in which forced alignment is performed.

또한, 가사 데이터의 텍스트에 대한 토큰화를 수행하되, 단어의 시작 위치를 표시하여 강제 정렬이 더욱 효율적으로 수행되는 것을 지원할 수 있다. In addition, while performing tokenization on the text of the lyric data, it is possible to support more efficient execution of forced alignment by displaying the start position of a word.

또한, 노래(음성)의 다양한 음성 변이로 인해 발생한 강제 정렬(forced-alignment)의 오류 부분을 보완하도록 구성되어 더욱 정확한 강제 정렬의 수행이 가능할 수 있다.In addition, it is configured to compensate for errors in forced-alignment caused by various voice variations of songs (voices), so that more accurate forced-alignment can be performed.

도 12는 본 발명의 다른 실시예에 따른 자동 가사 동기화 방법의 순서도이다. 도 12에 따른 자동 가사 동기화 방법은 상술한 도 1 내지 도 11의 자동 가사 동기화 장치(10)에서 수행된다. 본 실시예의 설명 및 이해를 위해 도 1 내지 도 11 및 관련된 설명이 참조될 수 있다.12 is a flowchart of an automatic lyrics synchronization method according to another embodiment of the present invention. The automatic lyrics synchronization method according to FIG. 12 is performed by the automatic lyrics synchronization device 10 of FIGS. 1 to 11 described above. 1 to 11 and related descriptions may be referred to for description and understanding of this embodiment.

도 12를 참조하면, 실시예에 따른 자동 가사 동기화 방법은 음원과 상기 음원과 관련된 가사 데이터가 입력되는 단계(S110); 상기 음원에서 음성을 추출하는 단계(S120); 상기 가사 데이터에 대한 전처리를 수행하여 전처리 가사 데이터를 생성하는 단계(S130); 및 상기 음성과 상기 전처리 가사 데이터를 강제 정렬(forced alignment)하여 상기 수정 가사 데이터를 생성하는 단계(S140)를 포함한다.Referring to FIG. 12 , the automatic lyrics synchronization method according to the embodiment includes inputting a sound source and lyric data related to the sound source (S110); Extracting voice from the sound source (S120); generating preprocessed lyrics data by performing preprocessing on the lyrics data (S130); and generating the corrected lyrics data by forcibly aligning the voice and the preprocessed lyrics data (S140).

상기 단계(S140)는 제1 언어에 기초하여 상기 강제 정렬을 수행할 수 있으며, 상기 단계(S130)는 상기 가사 데이터의 제2 언어로 구성된 텍스트를 제2 언어의 발음에 따라 상기 제1 언어로 변환하는 제1 전처리를 수행하는 단계; 및 상기 제1 전처리가 수행된 가사 데이터에 대한 토큰화를 수행하여 상기 전처리 가사 데이터를 생성하는 단계를 포함할 수 있다.In the step S140, the forced sorting may be performed based on the first language, and in the step S130, the text composed of the second language of the lyrics data is converted to the first language according to the pronunciation of the second language. performing a first pre-processing of conversion; and generating the pre-processed lyrics data by tokenizing the first pre-processed lyric data.

상기 토큰화를 수행하여 상기 전처리 가사 데이터를 생성하는 단계는 단어의 시작을 특수 기호로 표시하도록 토큰을 형성하는 것을 포함할 수 있다.The generating of the preprocessed lyric data by performing the tokenization may include forming a token to indicate a start of a word with a special symbol.

상기 제1 전처리 가사 데이터를 생성하는 단계는, 상기 가사 데이터에 대해 수행된 제1 전처리 정보를 생성하는 것을 포함하며, 상기 단계(S140)는 상기 제1 전처리 정보를 이용하여 상기 제1 전처리된 텍스트를 상기 제2 언어로 역변환하여 상기 수정 가사 데이터를 생성하는 것을 포함할 수 있다. The generating of the first pre-processed lyric data includes generating first pre-processed information performed on the lyric data, and the step (S140) includes the first pre-processed text using the first pre-processed information. and generating the modified lyric data by inversely converting the lyric into the second language.

상기 단계(S140)는 상기 추출된 음성으로부터 음성 특징을 추출하는 단계; 상기 추출된 음성으로부터 음성 구간을 검출하여 음성 구간 정보를 생성하는 단계; 상기 추출된 음성 특징과 상기 전처리 가사 데이터를 강제 정렬(forced alignment)하여 음성 정렬 정보를 생성하는 단계; 및 상기 음성 정렬 정보와 음성 구간 정보를 비교하여 수정 정렬 정보를 생성하는 단계를 포함할 수 있다. The step (S140) includes extracting voice features from the extracted voice; generating voice section information by detecting a voice section from the extracted voice; generating voice alignment information by forcibly aligning the extracted voice features and the preprocessed lyric data; and generating corrected alignment information by comparing the voice alignment information with the voice section information.

상기 단계(S140)는 상기 수정 정렬 정보를 피드백 받아 상기 음성 정렬 정보를 다시 생성하는 단계를 더 포함할 수 있다.The step S140 may further include regenerating the voice alignment information by receiving feedback of the corrected alignment information.

실시예에서, 음성 정렬 정보를 생성하는 단계는 상기 추출된 음성 특징과 상기 전처리 가사 데이터를 분석하여 자소 단위로 음성 정렬 정보를 추출하고, 상기 자소 단위로 추출된 음성 정렬 정보를 기초로 상위 단위에 해당하는 음성 정렬 정보를 생성하는 것을 포함할 수 있다.In an embodiment, the generating voice alignment information may include extracting voice alignment information in units of character elements by analyzing the extracted voice characteristics and the preprocessed lyric data, and extracting voice alignment information in units of character elements in a higher unit based on the voice alignment information extracted in units of character elements. It may include generating corresponding voice alignment information.

실시예에서, 상기 음원은 상기 음성 및 악기음이 스테레오 형식으로 합쳐져서 제공되며, 상기 단계(S110)는 상기 음원에서 딥러닝 기반의 음성 분리 모델을 통해 상기 음성을 추출하는 것을 포함하며, 상기 음성 분리 모델은 상기 음원에서 상기 악기음을 필터링하여 상기 음성만을 추출하도록 학습된 상태일 수 있다.In the embodiment, the sound source is provided by combining the voice and musical instrument sound in a stereo format, and the step (S110) includes extracting the voice from the sound source through a deep learning-based voice separation model, and the voice separation The model may be in a state in which it has been learned to extract only the voice by filtering the musical instrument sound from the sound source.

실시예에 따른 자동 가사 동기화 방법은 컴퓨터에 의해 실행 가능한 명령어 및 데이터를 저장하는, 컴퓨터로 판독 가능한 매체의 형태로도 구현될 수 있다. 이때, 명령어 및 데이터는 프로그램 코드의 형태로 저장될 수 있으며, 프로세서에 의해 실행되었을 때, 소정의 프로그램 모듈을 생성하여 소정의 동작을 수행할 수 있다. 또한, 컴퓨터로 판독 가능한 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터로 판독 가능한 매체는 컴퓨터 기록 매체일 수 있는데, 컴퓨터 기록 매체는 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함할 수 있다. 예를 들어, 컴퓨터 기록 매체는 HDD 및 SSD 등과 같은 마그네틱 저장 매체, CD, DVD 및 블루레이 디스크 등과 같은 광학적 기록 매체, 또는 네트워크를 통해 접근 가능한 서버에 포함되는 메모리일 수 있다.The automatic lyrics synchronization method according to the embodiment may be implemented in the form of a computer-readable medium storing instructions and data executable by a computer. In this case, instructions and data may be stored in the form of program codes, and when executed by a processor, a predetermined program module may be generated to perform a predetermined operation. Also, computer-readable media can be any available media that can be accessed by a computer and includes both volatile and nonvolatile media, removable and non-removable media. Also, a computer-readable medium may be a computer recording medium, which is a volatile and non-volatile memory implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules, or other data. It can include both volatile, removable and non-removable media. For example, the computer recording medium may be a magnetic storage medium such as HDD and SSD, an optical recording medium such as CD, DVD, and Blu-ray disc, or a memory included in a server accessible through a network.

또한 실시예에 따른 자동 가사 동기화 방법은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 컴퓨터 프로그램(또는 컴퓨터 프로그램 제품)으로 구현될 수도 있다. 컴퓨터 프로그램은 프로세서에 의해 처리되는 프로그래밍 가능한 기계 명령어를 포함하고, 고레벨 프로그래밍 언어(High-level Programming Language), 객체 지향 프로그래밍 언어(Object-oriented Programming Language), 어셈블리 언어 또는 기계 언어 등으로 구현될 수 있다. 또한 컴퓨터 프로그램은 유형의 컴퓨터 판독가능 기록매체(예를 들어, 메모리, 하드디스크, 자기/광학 매체 또는 SSD(Solid-State Drive) 등)에 기록될 수 있다.Also, the automatic lyrics synchronization method according to the embodiment may be implemented as a computer program (or computer program product) including instructions executable by a computer. A computer program includes programmable machine instructions processed by a processor and may be implemented in a high-level programming language, object-oriented programming language, assembly language, or machine language. . Also, the computer program may be recorded on a tangible computer-readable recording medium (eg, a memory, a hard disk, a magnetic/optical medium, or a solid-state drive (SSD)).

따라서 실시예에 따른 자동 가사 동기화 방법은 상술한 바와 같은 컴퓨터 프로그램이 컴퓨팅 장치에 의해 실행됨으로써 구현될 수 있다. 컴퓨팅 장치는 프로세서와, 메모리와, 저장 장치와, 메모리 및 고속 확장포트에 접속하고 있는 고속 인터페이스와, 저속 버스와 저장 장치에 접속하고 있는 저속 인터페이스 중 적어도 일부를 포함할 수 있다. 이러한 성분들 각각은 다양한 버스를 이용하여 서로 접속되어 있으며, 공통 머더보드에 탑재되거나 다른 적절한 방식으로 장착될 수 있다.Accordingly, the automatic lyrics synchronization method according to the embodiment may be implemented by executing the computer program as described above by a computing device. A computing device may include at least some of a processor, a memory, a storage device, a high-speed interface connected to the memory and a high-speed expansion port, and a low-speed interface connected to a low-speed bus and a storage device. Each of these components are connected to each other using various buses and may be mounted on a common motherboard or mounted in any other suitable manner.

여기서 프로세서는 컴퓨팅 장치 내에서 명령어를 처리할 수 있는데, 이런 명령어로는, 예컨대 고속 인터페이스에 접속된 디스플레이처럼 외부 입력, 출력 장치상에 GUI(Graphic User Interface)를 제공하기 위한 그래픽 정보를 표시하기 위해 메모리나 저장 장치에 저장된 명령어를 들 수 있다. 다른 실시예로서, 다수의 프로세서 및(또는) 다수의 버스가 적절히 다수의 메모리 및 메모리 형태와 함께 이용될 수 있다. 또한 프로세서는 독립적인 다수의 아날로그 및(또는) 디지털 프로세서를 포함하는 칩들이 이루는 칩셋으로 구현될 수 있다.Here, the processor may process commands within the computing device, for example, to display graphic information for providing a GUI (Graphic User Interface) on an external input/output device, such as a display connected to a high-speed interface. Examples include instructions stored in memory or storage devices. As another example, multiple processors and/or multiple buses may be used along with multiple memories and memory types as appropriate. Also, the processor may be implemented as a chipset comprising chips including a plurality of independent analog and/or digital processors.

또한 메모리는 컴퓨팅 장치 내에서 정보를 저장한다. 일례로, 메모리는 휘발성 메모리 유닛 또는 그들의 집합으로 구성될 수 있다. 다른 예로, 메모리는 비휘발성 메모리 유닛 또는 그들의 집합으로 구성될 수 있다. 또한 메모리는 예컨대, 자기 혹은 광 디스크와 같이 다른 형태의 컴퓨터 판독 가능한 매체일 수도 있다.Memory also stores information within the computing device. In one example, the memory may consist of a volatile memory unit or a collection thereof. As another example, the memory may be composed of a non-volatile memory unit or a collection thereof. Memory may also be another form of computer readable medium, such as, for example, a magnetic or optical disk.

그리고 저장장치는 컴퓨팅 장치에게 대용량의 저장공간을 제공할 수 있다. 저장 장치는 컴퓨터 판독 가능한 매체이거나 이런 매체를 포함하는 구성일 수 있으며, 예를 들어 SAN(Storage Area Network) 내의 장치들이나 다른 구성도 포함할 수 있고, 플로피 디스크 장치, 하드 디스크 장치, 광 디스크 장치, 혹은 테이프 장치, 플래시 메모리, 그와 유사한 다른 반도체 메모리 장치 혹은 장치 어레이일 수 있다.Also, the storage device may provide a large amount of storage space to the computing device. A storage device may be a computer-readable medium or a component that includes such a medium, and may include, for example, devices in a storage area network (SAN) or other components, such as a floppy disk device, a hard disk device, an optical disk device, or a tape device, flash memory, or other semiconductor memory device or device array of the like.

이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The above description is merely an example of the technical idea of the present embodiment, and various modifications and variations can be made to those skilled in the art without departing from the essential characteristics of the present embodiment. Therefore, the present embodiments are not intended to limit the technical idea of the present embodiment, but to explain, and the scope of the technical idea of the present embodiment is not limited by these embodiments. The scope of protection of this embodiment should be construed according to the claims below, and all technical ideas within the scope equivalent thereto should be construed as being included in the scope of rights of this embodiment.

이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The above description is merely an example of the technical idea of the present embodiment, and various modifications and variations can be made to those skilled in the art without departing from the essential characteristics of the present embodiment. Therefore, the present embodiments are not intended to limit the technical idea of the present embodiment, but to explain, and the scope of the technical idea of the present embodiment is not limited by these embodiments. The scope of protection of this embodiment should be construed according to the claims below, and all technical ideas within the scope equivalent thereto should be construed as being included in the scope of rights of this embodiment.

Claims (10)

음원과 관련된 가사 데이터를 자동으로 수정하여 수정 가사 데이터를 생성하는 자동 가사 동기화 장치로서, 상기 자동 가사 동기화 장치는:
상기 음원에서 음성을 추출하는 음성 추출부;
가사 데이터에 대한 전처리를 수행하여 전처리 가사 데이터를 생성하는 데이터 전처리부로서, 제1 언어로 구성된 텍스트와 상기 제1 언어와 상이한 제2 언어를 구성된 텍스트를 포함하는 가사 데이터에서 상기 제2 언어로 구성된 텍스트를 상기 제2 언어의 발음에 따라 상기 제1 언어로 변환하는 제1 전처리를 수행하는 언어 변환 유닛; 및 상기 제1 전처리가 수행된 가사 데이터에 대한 토큰화를 수행하여 상기 전처리 가사 데이터를 생성하는 토큰 변환 유닛을 포함하는, 데이터 전처리부; 및
상기 음성과 상기 전처리 가사 데이터를 상기 제1 언어에 기초하여 강제 정렬(forced alignment)하여 상기 수정 가사 데이터를 생성하는 강제 정렬 수행부를 포함하는,
자동 가사 동기화 장치.
An automatic lyrics synchronizing device for generating modified lyrics data by automatically modifying lyrics data related to a sound source, the automatic lyrics synchronizing device comprising:
a voice extraction unit extracting voice from the sound source;
A data pre-processor that performs pre-processing on lyric data to generate pre-processed lyric data, wherein lyric data including text in a first language and text in a second language different from the first language is composed of the second language a language conversion unit which performs a first pre-processing of converting text into the first language according to the pronunciation of the second language; and a token conversion unit configured to perform tokenization on the first pre-processed lyric data to generate the pre-processed lyric data; and
A forced alignment performer generating the corrected lyrics data by forcibly aligning the voice and the preprocessed lyric data based on the first language,
Automatic Lyrics Synchronizer.
삭제delete 제1 항에 있어서,
상기 토큰 변환 유닛은 단어의 시작을 특수 기호로 표시하도록 토큰을 형성하며,
상기 언어 변환 유닛은 상기 가사 데이터에 대해 수행된 제1 전처리 정보를 생성하는,
자동 가사 동기화 장치.
According to claim 1,
The token conversion unit forms a token to indicate the start of a word with a special symbol;
wherein the language conversion unit generates first preprocessing information performed on the lyrics data;
Automatic Lyrics Synchronizer.
제3 항에 있어서,
상기 강제 정렬 수행부는 상기 제1 전처리 정보를 이용하여 상기 제1 전처리가 수행된 텍스트를 상기 제2 언어로 역변환하여 상기 수정 가사 데이터를 생성하고,
상기 수정 가사 데이터는 상기 제1 언어로 구성된 텍스트와 상기 제2 언어로 구성된 텍스트를 포함하는,
자동 가사 동기화 장치.
According to claim 3,
The forced alignment performer inversely converts the first pre-processed text into the second language using the first pre-processing information to generate the corrected lyric data;
The modified lyric data includes text composed of the first language and text composed of the second language.
Automatic Lyrics Synchronizer.
제1 항에 있어서,
상기 강제 정렬 수행부는,
상기 추출된 음성으로부터 음성 특징을 추출하는 음성 특징 추출 유닛;
상기 추출된 음성의 음성 구간을 검출하여 음성 구간 정보를 생성하는 음성 구간 검출 유닛;
상기 추출된 음성 특징과 상기 전처리 가사 데이터를 강제 정렬(forced alignment)하여 음성 정렬 정보를 생성하는 강제 정렬 유닛; 및
상기 음성 정렬 정보와 음성 구간 정보를 비교하여 수정 정렬 정보를 생성하는 수정 정보 생성 유닛을 포함하는,
자동 가사 동기화 장치.
According to claim 1,
The forced sorting unit,
a voice feature extraction unit extracting voice features from the extracted voice;
a voice section detection unit configured to detect a voice section of the extracted voice and generate voice section information;
a forced alignment unit generating voice alignment information by forcibly aligning the extracted voice features and the preprocessed lyric data; and
a correction information generation unit configured to compare the voice alignment information with the voice interval information to generate correct alignment information;
Automatic Lyrics Synchronizer.
제5 항에 있어서,
상기 강제 정렬 유닛은,
상기 수정 정렬 정보를 피드백 받아 상기 음성 정렬 정보를 다시 생성하도록 구성되는,
자동 가사 동기화 장치.
According to claim 5,
The forced alignment unit,
And configured to generate the voice alignment information again by receiving feedback of the corrected alignment information.
Automatic Lyrics Synchronizer.
제5 항에 있어서,
상기 강제 정렬 유닛은
상기 추출된 음성 특징과 상기 전처리 가사 데이터를 분석하여 자소 단위로 음성 정렬 정보를 추출하고, 상기 자소 단위로 추출된 음성 정렬 정보를 기초로 상위 단위에 해당하는 음성 정렬 정보를 생성하는,
자동 가사 동기화 장치.
According to claim 5,
The forced alignment unit
Analyzing the extracted voice characteristics and the preprocessed lyrics data to extract voice alignment information in units of character elements, and generating voice alignment information corresponding to a higher unit based on the voice alignment information extracted in units of character elements;
Automatic Lyrics Synchronizer.
제1 항에 있어서,
상기 음원은 상기 음성 및 악기음이 스테레오 형식으로 합쳐져서 제공되며,
상기 음성 추출부는,
상기 음원에서 딥러닝 기반의 음성 분리 모델을 통해 상기 음성을 추출하며,
상기 음성 분리 모델은 상기 음원에서 상기 악기음을 필터링하여 상기 음성만을 추출하도록 학습된 상태인,
자동 가사 동기화 장치.
According to claim 1,
The sound source is provided by combining the voice and instrument sound in a stereo format,
The voice extraction unit,
extracting the voice from the sound source through a deep learning-based voice separation model;
The voice separation model is in a state in which it is learned to extract only the voice by filtering the musical instrument sound from the sound source.
Automatic Lyrics Synchronizer.
자동 가사 동기화 장치에서 수행되는 가사 자동 동기화 방법으로, 상기 방법은:
음원과 상기 음원과 관련된 가사 데이터가 입력되는 단계;
상기 음원에서 음성을 추출하는 단계;
상기 가사 데이터에 대한 전처리를 수행하여 전처리 가사 데이터를 생성하는 단계로서, 제1 언어로 구성된 텍스트와 상기 제1 언어와 상이한 제2 언어를 구성된 텍스트를 포함하는 가사 데이터에서 상기 제2 언어로 구성된 텍스트를 상기 제2 언어의 발음에 따라 상기 제1 언어로 변환하는 제1 전처리를 수행하는 단계; 및 상기 제1 전처리가 수행된 가사 데이터에 대한 토큰화를 수행하여 상기 전처리 가사 데이터를 생성하는 단계를 포함하는, 단계; 및
상기 음성과 상기 전처리 가사 데이터를 상기 제1 언어에 기초하여 강제 정렬(forced alignment)하여 수정 가사 데이터를 생성하는 단계를 포함하는,
자동 가사 동기화 방법.
A lyrics automatic synchronization method performed in an automatic lyrics synchronization device, the method comprising:
inputting a sound source and lyric data related to the sound source;
extracting voice from the sound source;
Generating pre-processed lyric data by performing pre-processing on the lyric data, wherein the lyric data including text in a first language and text in a second language different from the first language includes text in a second language. performing a first pre-processing of converting into the first language according to the pronunciation of the second language; and performing tokenization on the first pre-processed lyric data to generate the pre-processed lyric data; and
Generating modified lyrics data by forcibly aligning the voice and the preprocessed lyrics data based on the first language,
How to automatically synchronize lyrics.
하드웨어와 결합되어 제9 항에 따른 자동 가사 동기화 방법을 실행시키기 위해 매체에 저장된 컴퓨터 프로그램.A computer program stored in a medium for executing the automatic lyrics synchronization method according to claim 9 in combination with hardware.
KR1020220107122A 2022-08-25 2022-08-25 Automatic synchronization between musical audio signals and lyrics using artificial intelligence KR102555701B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220107122A KR102555701B1 (en) 2022-08-25 2022-08-25 Automatic synchronization between musical audio signals and lyrics using artificial intelligence

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220107122A KR102555701B1 (en) 2022-08-25 2022-08-25 Automatic synchronization between musical audio signals and lyrics using artificial intelligence

Publications (1)

Publication Number Publication Date
KR102555701B1 true KR102555701B1 (en) 2023-07-17

Family

ID=87430151

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220107122A KR102555701B1 (en) 2022-08-25 2022-08-25 Automatic synchronization between musical audio signals and lyrics using artificial intelligence

Country Status (1)

Country Link
KR (1) KR102555701B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001175267A (en) * 1999-12-20 2001-06-29 Sony Corp System and method for authoring display lyrics, recording medium with display lyrics authoring program recorded thereon and automatic lyrics display system
KR20130042493A (en) * 2010-05-18 2013-04-26 샤잠 엔터테인먼트 리미티드 Methods and systems for performing synchronization of audio with corresponding textual transcriptions and determining confidence values of the synchronization
KR20190051498A (en) * 2017-11-07 2019-05-15 서울대학교산학협력단 Method and system for controlling subtitle sync
JP2020012855A (en) * 2018-07-13 2020-01-23 株式会社ソケッツ Device and method for generating synchronization information for text display

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001175267A (en) * 1999-12-20 2001-06-29 Sony Corp System and method for authoring display lyrics, recording medium with display lyrics authoring program recorded thereon and automatic lyrics display system
KR20130042493A (en) * 2010-05-18 2013-04-26 샤잠 엔터테인먼트 리미티드 Methods and systems for performing synchronization of audio with corresponding textual transcriptions and determining confidence values of the synchronization
KR20190051498A (en) * 2017-11-07 2019-05-15 서울대학교산학협력단 Method and system for controlling subtitle sync
JP2020012855A (en) * 2018-07-13 2020-01-23 株式会社ソケッツ Device and method for generating synchronization information for text display

Similar Documents

Publication Publication Date Title
US11605371B2 (en) Method and system for parametric speech synthesis
Ramu Reddy et al. Identification of Indian languages using multi-level spectral and prosodic features
US8106285B2 (en) Speech-driven selection of an audio file
Fujihara et al. Lyrics-to-audio alignment and its application
Kruspe et al. Bootstrapping a System for Phoneme Recognition and Keyword Spotting in Unaccompanied Singing.
Boeffard et al. Towards Fully Automatic Annotation of Audio Books for TTS.
WO2007055233A1 (en) Speech-to-text system, speech-to-text method, and speech-to-text program
Dzhambazov et al. Modeling of phoneme durations for alignment between polyphonic audio and lyrics
EP2766899A1 (en) Speech-to-text conversion
Lee et al. Word level lyrics-audio synchronization using separated vocals
Tanghe et al. An algorithm for detecting and labeling drum events in polyphonic music
Gupta et al. Deep learning approaches in topics of singing information processing
KR102555698B1 (en) Automatic synchronization between content video and subtitle using artificial intelligence
Marasek et al. System for automatic transcription of sessions of the Polish senate
Waseem et al. Speech synthesis system for indian accent using festvox
Demirel et al. A recursive search method for lyrics alignment
KR102555701B1 (en) Automatic synchronization between musical audio signals and lyrics using artificial intelligence
Dabike et al. The sheffield university system for the MIREX 2020: Lyrics transcription task
Mengko et al. Indonesian Text-To-Speech system using syllable concatenation: Speech optimization
JP6849977B2 (en) Synchronous information generator and method for text display and voice recognition device and method
Kruspe et al. Retrieval of song lyrics from sung queries
Wang et al. Adapting pretrained speech model for Mandarin lyrics transcription and alignment
Kruspe et al. LYRICS ALIGNMENT USING HMMS, POSTERIORGRAM-BASED DTW, AND PHONEME-BASED LEVENSHTEIN ALIGNMENT
Lertwongkhanakool et al. Real-time synchronization of live speech with its transcription
Lin et al. A corpus-based singing voice synthesis system for Mandarin Chinese

Legal Events

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