KR20210132855A - 음성 처리 방법 및 장치 - Google Patents

음성 처리 방법 및 장치 Download PDF

Info

Publication number
KR20210132855A
KR20210132855A KR1020200051269A KR20200051269A KR20210132855A KR 20210132855 A KR20210132855 A KR 20210132855A KR 1020200051269 A KR1020200051269 A KR 1020200051269A KR 20200051269 A KR20200051269 A KR 20200051269A KR 20210132855 A KR20210132855 A KR 20210132855A
Authority
KR
South Korea
Prior art keywords
character sequence
target
segment
speech processing
cost
Prior art date
Application number
KR1020200051269A
Other languages
English (en)
Inventor
강태균
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020200051269A priority Critical patent/KR20210132855A/ko
Priority to US17/083,854 priority patent/US11721323B2/en
Priority to EP20212778.3A priority patent/EP3905240B1/en
Priority to CN202110096040.0A priority patent/CN113643698A/zh
Priority to JP2021010387A priority patent/JP2021173993A/ja
Priority to US17/368,983 priority patent/US11776529B2/en
Publication of KR20210132855A publication Critical patent/KR20210132855A/ko

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
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; 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 TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/04Segmentation; Word boundary detection
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/10Speech classification or search using distance or distortion measures between unknown speech and reference templates
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/12Speech classification or search using dynamic programming techniques, e.g. dynamic time warping [DTW]
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/28Constructional details of speech recognition systems
    • G10L15/32Multiple recognisers used in sequence or in parallel; Score combination systems therefor, e.g. voting systems
    • 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/27Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique
    • G10L25/30Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique using neural networks
    • 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/45Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of analysis window
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command

Landscapes

  • Engineering & Computer Science (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Signal Processing (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Character Discrimination (AREA)
  • Machine Translation (AREA)

Abstract

음성 처리 방법 및 장치가 개시된다. 개시된 음성 처리 방법은 음성 신호로부터 타겟 세그먼트를 획득하는 단계, 타겟 세그먼트를 디코딩함으로써 타겟 세그먼트에 대응하는 타겟 문자 시퀀스를 획득하는 단계, 타겟 문자 시퀀스와 이전 문자 시퀀스 간 오버랩되는 부분을 편집 거리에 기반하여 식별하는 단계 및 오버랩되는 부분에 기반하여 타겟 문자 시퀀스와 이전 문자 시퀀스를 병합하는 단계를 포함한다. 편집 거리에 적용되는 비용은 편집 거리에서 수행되는 작업의 종류, 작업 대상인 문자가 오버랩되는 부분에 위치하는지 여부, 매칭 여부 중 적어도 하나에 기반하여 결정된다.

Description

음성 처리 방법 및 장치{METHOD AND APPARATUS FOR PROCESSING SPEECH}
아래 실시예들은 음성 처리 방법 및 장치에 관한 것이다.
음성 인식은 사용자의 음성을 인식하는 기술이다. 음성 인식에 의해 사용자의 음성은 텍스트로 변환될 수 있다. 음성 인식 기술의 발전으로 인해 사용자가 기기 혹은 에이전트에 음성으로 명령을 하고 싶어하는 니즈(needs)가 증가하고 있으나, 음성 인식을 수행하는 모델의 한정적인 학습 데이터, 음성 신호의 주변 노이즈 등으로 인해 최적의 성능을 보장하기 어렵다.
일실시예에 따른 음성 처리 방법은 음성 신호로부터 타겟 세그먼트를 획득하는 단계; 상기 타겟 세그먼트(target segment)를 디코딩함으로써, 상기 타겟 세그먼트에 대응하는 타겟 문자 시퀀스(target character sequence)를 획득하는 단계; 상기 타겟 문자 시퀀스와 이전 문자 시퀀스 간 오버랩되는 부분(overlapping portion)을 편집 거리(edit distance)에 기반하여 식별하는 단계; 및 상기 오버랩되는 부분에 기반하여 상기 타겟 문자 시퀀스와 상기 이전 문자 시퀀스를 병합(merge)하는 단계를 포함하고, 상기 편집 거리에 적용되는 비용은 상기 편집 거리에서 수행되는 작업의 종류, 작업 대상인 문자가 상기 오버랩되는 부분에 위치하는지 여부, 매칭 여부 중 적어도 하나에 기반하여 결정된다.
일실시예에 따른 음성 처리 방법에서 상기 편집 거리의 비용은 상기 타겟 문자 시퀀스와 상기 이전 문자 시퀀스 중 오버랩되지 않은 부분과 상기 오버랩되는 부분에 상이하게 적용될 수 있다.
일실시예에 따른 음성 처리 방법에서 상기 타겟 문자 시퀀스와 상기 이전 문자 시퀀스 중 오버랩되지 않은 부분에서 발생하는 상기 편집 거리의 삽입 비용(insertion cost)은 상기 오버랩되는 부분에서 발생하는 삽입 비용보다 작을 수 있다.
일실시예에 따른 음성 처리 방법에서 상기 편집 거리의 매칭 비용은 상기 타겟 문자 시퀀스와 상기 이전 문자 시퀀스 중 오버랩되지 않은 부분에서 발생하는 상기 편집 거리의 삽입 비용보다 작을 수 있다.
일실시예에 따른 음성 처리 방법에서 상기 오버랩되는 부분에서 발생하는 상기 편집 거리의 삽입 비용, 삭제 비용 및 편집 거리의 교체 비용(substitution cost)은 양수(positive number)일 수 있다.
일실시예에 따른 음성 처리 방법에서 상기 편집 거리의 매칭 비용은 음수(negative number)이고, 상기 타겟 문자 시퀀스와 상기 이전 문자 시퀀스 중 오버랩되지 않은 부분에서 발생하는 상기 편집 거리의 삽입 비용은 0일 수 있다.
일실시예에 따른 음성 처리 방법에서 상기 음성 신호로부터 타겟 세그먼트를 획득하는 단계는 세그먼트 길이 및 세그먼트들 간 오버랩 길이에 기초하여 상기 음성 신호로부터 상기 타겟 세그먼트를 획득할 수 있다.
일실시예에 따른 음성 처리 방법에서 상기 세그먼트들 간 오버랩 길이는 상기 음성 처리 방법을 수행하는 장치의 가용 리소스에 기반하여 결정될 수 있다.
일실시예에 따른 음성 처리 방법에서 상기 오버랩되는 부분을 식별하는 단계는 세그먼트들 간 오버랩 길이 동안 사용자가 발화 가능한 최대 문자 길이에 따라 상기 이전 문자 시퀀스에서 추출된 일부 시퀀스와 상기 타겟 문자 시퀀스 간 오버랩되는 부분을 식별할 수 있다.
일실시예에 따른 음성 처리 방법에서 상기 이전 문자 시퀀스는 상기 음성 신호에서 상기 타겟 세그먼트와 일부가 오버랩되는 이전 세그먼트의 디코딩 결과에 기초하여 결정될 수 있다.
일실시예에 따른 음성 처리 방법에서 상기 오버랩되는 부분을 식별하는 단계는 상기 이전 문자 시퀀스에 포함된 상기 이전 세그먼트의 디코딩 결과와 상기 타겟 문자 시퀀스 간 오버랩되는 부분을 식별할 수 있다.
일실시예에 따른 음성 처리 방법에서 상기 타겟 세그먼트에서 상기 이전 세그먼트와 오버랩되는 부분은 상기 타겟 세그먼트의 절반 미만일 수 있다.
일실시예에 따른 음성 처리 장치는 하나 이상의 프로세서를 포함하고, 상기 하나 이상의 프로세서는 음성 신호로부터 타겟 세그먼트를 획득하고, 상기 타겟 세그먼트를 디코딩함으로써, 상기 타겟 세그먼트에 대응하는 타겟 문자 시퀀스를 획득하고, 상기 타겟 문자 시퀀스와 이전 문자 시퀀스 간 오버랩되는 부분을 편집 거리에 기반하여 식별하며, 상기 오버랩되는 부분에 기반하여 상기 타겟 문자 시퀀스와 상기 이전 문자 시퀀스를 병합하고, 상기 편집 거리에 적용되는 비용은 상기 편집 거리에서 수행되는 작업의 종류, 작업 대상인 문자가 상기 오버랩되는 부분에 위치하는지 여부, 매칭 여부 중 적어도 하나에 기반하여 결정된다.
도 1은 일실시예에 따른 뉴럴 네트워크 기반 음성 처리를 설명하기 위한 도면이다.
도 2 및 도 3은 일실시예에 따른 음성 인식 과정을 설명하기 위한 도면이다.
도 4 내지 도 6은 일실시예에 따라 문자 시퀀스를 통합하는 예시를 설명하기 위한 도면이다.
도 7은 일실시예에 따른 편집 거리를 설명하기 위한 예시를 나타낸 도면이다.
도 8은 일실시예에 따른 음성 처리 방법을 나타낸 도면이다.
도 9는 일실시예에 따른 음성 처리 장치를 나타낸 도면이다.
도 10 및 도 11은 일실시예에 따른 음성 처리 장치의 예시들을 설명하기 위한 도면이다.
실시예들에 대한 특정한 구조적 또는 기능적 설명들은 단지 예시를 위한 목적으로 개시된 것으로서, 다양한 형태로 변경되어 실시될 수 있다. 따라서, 실시예들은 특정한 개시형태로 한정되는 것이 아니며, 본 명세서의 범위는 기술적 사상에 포함되는 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 해석되어야 한다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 아래의 특정한 구조적 내지 기능적 설명들은 단지 실시예들을 설명하기 위한 목적으로 예시된 것으로, 실시예의 범위가 본문에 설명된 내용에 한정되는 것으로 해석되어서는 안된다. 관련 기술 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 또한, 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타내며, 공지된 기능 및 구조는 생략하도록 한다.
도 1은 일실시예에 따른 뉴럴 네트워크 기반 음성 처리를 설명하기 위한 도면이다.
도 1을 참조하면, 일실시예에 따라 음성 처리를 위한 뉴럴 네트워크는 인코더(110) 및 디코더(120)를 포함할 수 있다. 음성 처리 장치는 인코더(110)와 디코더(120)를 이용하여 사용자의 음성 신호(130)를 음성 인식하여 그 결과로 문자 시퀀스(140)를 결정할 수 있다. 인코더(110)는 주어진 음성 신호(130)를 인코딩하여 음성 신호(130)의 컨텍스트 정보(context information)를 생성하고, 디코더(120)는 컨텍스트 정보에 기반한 디코딩을 통해 점진적으로 인식된 문자 시퀀스(140)를 인식 결과로 출력할 수 있다. 디코더(120)에서는 특정 시점의 단어가 다음 시점의 입력으로 제공되어 다음에 올 것으로 예상되는 단어가 추론되는 과정이 해당 인식이 종료될 때까지 반복해서 수행될 수 있다. 인코더(110)와 디코더(120)는 사용자의 음성 신호(130)가 입력됨에 응답하여 그에 대응하는 음성 인식 결과가 출력되도록 기 학습된 음성 인식 모델일 수 있다.
이처럼, 음성 처리는 인코더(110)와 디코더(120)에 기반한 음성 인식을 포함하는 데, 네트워크의 한정적인 학습 데이터와 학습 효율성으로 인한 학습 데이터 길이의 제한 등으로 인해 학습 데이터보다 긴 음성 신호에 대해서는 인식 정확도가 낮아지는 현상이 발생할 수 있다. 이를 방지하기 위해서, 긴 음성 신호를 복수의 세그먼트들로 분할하고, 인코더(110)와 디코더(120)를 이용하여 분할된 각 세그먼트들에 음성 인식을 개별적으로 수행하고, 인식 결과로 획득된 문자 시퀀스들을 통합함으로써, 긴 음성 신호의 음성 인식 결과를 결정할 수 있다. 이하 도면들을 참조하여 상세히 설명한다.
도 2 및 도 3은 일실시예에 따른 음성 인식 과정을 설명하기 위한 도면이다.
도 2를 참조하면, 일실시예에 따른 음성 처리 장치는 긴 음성 신호(210)를 복수의 세그먼트들(221~224)로 구분하여 음성 인식을 개별적으로 수행함으로써 복수의 문자 시퀀스들(231~234)을 각각 결정하고, 복수의 문자 시퀀스들(231~234)을 병합함으로써 긴 음성 신호(210)의 음성 인식 결과(240)를 얻을 수 있다. 본 명세서에서 세그먼트는 설명의 편의를 위하여 청크(chunk)나 윈도우(window)로도 지칭될 수 있다.
음성 처리 장치는 긴 음성 신호(210)를 복수의 세그먼트들(221~224)로 구분할 수 있다. 이를테면, 음성 처리 장치는 세그먼트 길이 a 및 세그먼트들 간 오버랩 길이 b에 기초하여 긴 음성 신호(210)로부터 복수의 세그먼트들(221~224)을 구분할 수 있다.
일실시예에서, 오버랩 길이 b가 세그먼트 길이 a의 절반 미만으로 결정될 수 있다. 추후 자세히 설명되는 것처럼 복수의 세그먼트들(221~224) 각각에 대해 음성 인식이 수행되므로, 각 세그먼트에서 이웃하는 세그먼트와 오버랩되는 부분은 두 번 디코딩될 수 있다. 오버랩 길이 b를 세그먼트 길이 a의 절반 미만으로 설정함으로써, 긴 음성 신호(210)의 모든 부분이 두 번 디코딩될 필요가 없어 계산 오버헤드를 최소화시킬 수 있다. 예컨대, 세그먼트 길이 a는 8초이고, 세그먼트들 간 오버랩 길이 b는 2초로 결정될 수 있으나, 이외에도 다양한 수치가 적용될 수 있다.
일실시예에서, 음성 처리 장치는 세그먼트들 간 오버랩 길이 b를 가용 리소스에 기반하여 동적으로 결정할 수 있다. 음성 인식이 수행되는 각 세그먼트는 긴 음성 신호(210)로부터 특정 기준(예컨대, 세그먼트 길이 a 및 오버랩 길이 b)에 따라 분할된 것이므로, 발화 도중에 잘려진 세그먼트 경계에서는 음성 인식의 정확도가 세그먼트 중심보다 낮을 수 있다. 이를 보완하기 위해 세그먼트들 간 오버랩 길이 b를 길게 설정하는 것이 바람직하겠으나, 오버랩 길이 b가 길어질수록 긴 음성 신호(210)에서 디코딩이 두 번 수행되는 부분의 비율이 높아져서 계산 오버헤드의 증가를 피하기 어렵다. 만약 가용 리소스가 충분하여 계산 오버헤드가 증가하더라도 일정 수준 이상의 성능이 보장될 수 있다면, 음성 처리 장치는 오버랩 길이 b를 미리 설정된 임계 길이보다 길게 설정할 수 있다. 반대로 가용 리소스가 충분하지 않은 경우, 음성 처리 장치는 오버랩 길이 b를 미리 설정된 임계 길이보다 짧게 설정함으로써 계산 오버헤드 증가로 인한 성능 저하를 방지할 수 있다.
일례로, 음성 처리 장치가 음성 인식용 서버인 경우, 해당 서버에서 수행되고 있는 음성 인식 작업의 개수가 적다면 오버랩 길이 b가 미리 설정된 임계 길이보다 길게 설정되고, 반대로 음성 인식 작업의 개수가 많다면 오버랩 길이 b가 미리 설정된 임계 길이보다 짧게 설정될 수 있다. 다른 일례로, 음성 처리 장치가 스마트 폰과 같은 사용자 단말인 경우, 해당 사용자 단말에서 음성 인식 작업 외에 다른 작업이 수행되지 않으면 오버랩 길이 b가 미리 설정된 임계 길이보다 길게 설정되고, 반대로 사용자 단말에서 음성 인식 작업 외에 다른 작업(예컨대, 모바일 게임 등)이 동시에 수행되고 있으면 오버랩 길이 b가 미리 설정된 임계 길이보다 짧게 설정될 수 있다.
음성 처리 장치는 복수의 세그먼트들(221~224) 각각에 대해 도 1에서 설명한 인코더-디코더에 기반한 음성 인식을 수행할 수 있으며, 그 결과로 복수의 문자 시퀀스들(231~234)을 결정할 수 있다. 예컨대, 제1 세그먼트(221)의 음성 인식 결과로 제1 문자 시퀀스(231)가 결정될 수 있으며, 마찬가지로 나머지 문자 시퀀스들(232~234)도 제2 세그먼트(222) 내지 제4 세그먼트(224) 각각의 음성 인식 결과로 결정될 수 있다.
음성 처리 장치는 복수의 문자 시퀀스들(231~234)을 병합함으로써, 긴 음성 신호(210)에 대응하는 음성 인식 결과(240)를 결정할 수 있다. 음성 처리 장치는 이웃하는 문자 시퀀스들 간에 오버랩되는 부분을 편집 거리에 기초하여 식별할 수 있으며, 오버랩되는 부분에 기반하여 아웃하는 문자 시퀀스들을 병합할 수 있다. 여기서, 편집 거리는 하나의 문자 시퀀스를 다른 문자 시퀀스로 변환하는 데 필요한 최소 작업 비용(minimum cost of operations)을 계산하여 두 문자 시퀀스가 서로 다른 정도를 수량화 하는 기법으로, 이때 적용되는 비용은 작업의 종류(예컨대, 삽입, 변경, 삭제), 작업 대상인 문자의 위치, 매칭 여부 중 적어도 하나에 기반하여 결정될 수 있다. 오버랩되는 부분은 디코딩이 두 번 수행된 부분이므로, 디코딩 결과들 중 하나가 선택되어 음성 인식 결과(240)에 포함될 수 있다. 오버랩되는 부분을 식별하고, 문자 시퀀스들을 병합하는 과정은 추후 상세히 설명한다.
도 3을 참조하면, 일실시예에 따른 긴 음성 신호의 음성 인식 과정을 설명하기 위한 플로우차트가 도시된다.
단계(310)에서, 음성 처리 장치는 음성 신호가 입력되면 음성 인식을 수행하고자 하는 타겟 세그먼트의 시작시간 t_start을 0으로 초기화하고, 음성 인식 결과가 누적되는 history를 빈 값(empty value)으로 초기화할 수 있다.
단계(320)에서, 음성 처리 장치는 음성 신호에서 시작시간 t_start로부터 세그먼트 길이 a까지 음성이 존재하는지 또는 그 전에 음성 신호가 종료되는지를 확인할 수 있다. 이를 통해, 음성 처리 장치는 음성 신호에서 시작시간 t_start로부터 세그먼트 길이 a까지 추출하여 타겟 세그먼트로 획득할 수 있다. 또는, 시작시간 t_start로부터 세그먼트 길이 a까지 추출하기 전에 음성 신호가 종료되면, 음성 처리 장치는 시작시간 t_start로부터 추출된 부분까지를 타겟 세그먼트로 획득할 수도 있다.
단계(330)에서, 음성 처리 장치는 추출된 타겟 세그먼트를 디코딩한 결과인 타겟 문자 시퀀스 D를 획득할 수 있다.
단계(340)에서, 음성 처리 장치는 타겟 문자 시퀀스 D와 history를 병합하고, 그 결과를 history로 저장할 수 있다. 처음에는 history에 빈 값이 저장되어 있으므로, 단계(330)에서 획득된 타겟 문자 시퀀스 D가 그대로 history에 저장될 수 있다. 처음이 아닌 경우에는 history에 이전 문자 시퀀스가 저장되어 있으므로, 음성 처리 장치는 타겟 문자 시퀀스 D와 history 간 오버랩되는 부분을 식별하고, 식별된 부분에 기초하여 타겟 문자 시퀀스 D와 history를 병합하고 그 결과를 history로 저장할 수 있다. 오버랩되는 부분은 디코딩이 두 번 수행된 부분이므로, 디코딩 결과들 중 하나가 선택되어 history에 저장될 수 있다. 이처럼, history에는 음성 신호를 세그먼트 단위로 음성 인식한 결과들이 순차적으로 누적될 수 있다. 문자 시퀀스들을 병합하는 과정에 대해서는 도 4 내지 도 6을 통해 후술한다.
단계(350)에서, 음성 처리 장치는 음성 신호가 종료되는지 확인할 수 있다. 만약 종료되지 않는다면 단계(360)가 이어서 수행되고, 반대로 음성 신호가 종료되었다면 단계(370)가 이어서 수행될 수 있다.
단계(360)에서, 음성 처리 장치는 타겟 세그먼트의 시작시간 t_start을 시프트 시간 c만큼 증가시킬 수 있다. 시프트 시간 c는 세그먼트 길이 a의 절반보다는 크고, 세그먼트 길이 a보다는 작게 설정됨으로써, 계산 오버헤드를 최소화시킬 수 있다. 일실시예에 따르면, 시프트 시간 c는 음성 처리 장치의 가용 리소스에 기반하여 동적으로 결정될 수도 있다. 가령, 가용 리소스가 충분할수록 시프트 시간 c는 세그먼트 길이 a의 절반에 가깝게 설정되고, 반대로 가용 리소스가 부족할수록 시프트 시간 c는 세그먼트 길이 a에 가깝게 설정될 수 있다.
단계(370)에서, 음성 처리 장치는 history에 누적된 문자 시퀀스를 음성 신호의 인식 결과로 리턴할 수 있다.
도 4 내지 도 6은 일실시예에 따라 문자 시퀀스를 통합하는 예시를 설명하기 위한 도면이다.
도 4를 참조하면, 일실시예에 따라 타겟 문자 시퀀스(420)를 이전 문자 시퀀스(410)와 병합하는 과정을 설명하기 위한 예시가 도시된다. 도 4는 음성 처리 방법의 초기 단계를 예시적으로 나타내며, 이전 문자 시퀀스(410)는 음성 신호로부터 추출된 제1 세그먼트의 디코딩 결과이고, 타겟 문자 시퀀스(420)는 음성 신호로부터 추출된 제2 세그먼트의 디코딩 결과이다.
음성 처리 장치는 이전 문자 시퀀스(410)와 타겟 문자 시퀀스(420) 간 오버랩되는 부분(430)을 편집 거리에 기반하여 식별할 수 있다. 편집 거리에 적용되는 비용은 편집 거리에서 수행되는 작업의 종류(예컨대, 삽입, 변경, 삭제), 작업 대상인 문자가 두 문자 시퀀스들 간 오버랩되는 부분에 위치하는지 여부, 매칭 여부 중 적어도 하나에 기반하여 결정될 수 있다. 편집 거리에 적용되는 비용에 대한 자세한 내용은 도 7을 통해 후술한다.
도 4의 예시처럼, 이전 문자 시퀀스(410)와 타겟 문자 시퀀스(420) 간 오버랩되는 부분(430)을 기준으로 이전 문자 시퀀스(410)와 타겟 문자 시퀀스(420)가 문자 레벨(character level)로 정렬(align)될 수 있으며, 이때 이전 문자 시퀀스(410)와 타겟 문자 시퀀스(420) 간 편집 거리의 비용이 가장 적다.
정렬된 이전 문자 시퀀스(410)와 타겟 문자 시퀀스(420)는 다음과 같이 병합될 수 있다.
우선, 이전 문자 시퀀스(410)와 타겟 문자 시퀀스(420) 중 오버랩되는 부분(430)을 제외한 나머지 부분, 즉 오버랩되지 않은 부분에 대해서는 디코딩이 한 번씩 수행되었으므로, 기 수행된 디코딩 결과가 그대로 활용될 수 있다. 반면, 오버랩되는 부분(430)에 대해서는 디코딩이 두 번 수행되어서 디코딩 결과가 이전 문자 시퀀스(410)와 타겟 문자 시퀀스(420) 각각에 포함되어 있다. 따라서, 이전 문자 시퀀스(410)와 타겟 문자 시퀀스(420)에 포함된 오버랩되는 부분(430)의 디코딩 결과들 중 어느 하나가 선택되어야 한다.
예를 들어, 음성 처리 장치는 오버랩되는 부분(430)에서 단어 경계(word boundary)를 확인할 수 있다. 단어 경계는 단어와 단어 사이를 나타내는 것으로, 디코딩 결과에서 단어들 사이의 스페이싱(spacing)에 해당될 수 있다. 그리고, 음성 처리 장치는 확인된 단어 경계를 전환 후보(transition candidate)로 지정하고, 지정된 전환 후보들 중에서 오버랩되는 부분(430) 중 가장 가운데에 위치하는 어느 하나를 전환 포인트로 선택할 수 있다. 그리고, 음성 처리 장치는 이전 문자 시퀀스(410) 내 처음부터 전환 포인트 이전까지의 단어와 타겟 문자 시퀀스(420) 내 전환 포인트 이후부터 마지막까지의 단어를 연결함으로써, 이전 문자 시퀀스(410) 및 타겟 문자 시퀀스(420)를 병합할 수 있다. 각 세그먼트 경계는 음성 신호가 잘려진 부분에 해당되어 세그먼트 중심보다는 인식 정확도가 낮으므로, 오버랩되는 부분(430)의 가운데에 위치하는 전환 포인트를 기준으로 이전 문자 시퀀스(410) 및 타겟 문자 시퀀스(420)를 병합시킴으로써, 높은 인식 정확도의 병합 결과를 얻을 수 있다.
도 4의 예시에서, 오버랩되는 부분(430) 내 단어 경계는 이전 문자 시퀀스(410)에서 "recognition" 및 "all" 사이로 결정되고, 타겟 문자 시퀀스(420)에서 "recognition" 및 "algorithm" 사이로 결정되고, 해당 부분이 전환 후보로 지정될 수 있다. 본 예시에서는 전환 후보가 한 개로 오버랩되는 부분(430) 중 가장 가운데에 위치하므로 전환 포인트로 선택될 수 있다. 그러면, 이전 문자 시퀀스(410) 내 처음부터 전환 포인트 이전까지의 단어 "The end-to-end speech recognition"와 타겟 문자 시퀀스(420) 내 전환 포인트 이후부터 마지막까지의 단어 "algorithm has been widely studied"가 서로 이어짐으로써, 병합 결과로 "The end-to-end speech recognition algorithm has been widely studied"가 결정될 수 있다. 이전 문자 시퀀스(410) 내 마지막 단어 "all"은 음성 신호가 잘려져서 "algorithm"이 "all"로 잘못 인식된 것인데, 앞서 설명한 방법을 통해 잘못 인식된 단어가 병합 결과에 포함되는 것이 효과적으로 방지될 수 있다.
도 4에서 결정된 병합 결과는 다음 타겟 세그먼트의 디코딩 결과와 병합될 수 있으며, 이에 대해서는 도 5를 통해 후술한다.
도 5를 참조하면, 일실시예에 따라 타겟 문자 시퀀스(520)를 이전 문자 시퀀스(510)와 병합하는 과정을 설명하기 위한 예시가 도시된다. 여기서, 이전 문자 시퀀스(510)는 도 4에서 수행된 병합 결과이고, 타겟 문자 시퀀스(520)는 음성 신호로부터 추출된 제3 세그먼트의 디코딩 결과이다.
음성 처리 장치는 이전 문자 시퀀스(510)와 타겟 문자 시퀀스(520) 간 오버랩되는 부분을 편집 거리에 기반하여 식별할 수 있다. 도 5의 예시처럼, 경우에 따라서는 이전 문자 시퀀스(510)와 타겟 문자 시퀀스(520) 간 오버랩되는 부분이 존재하지 않을 수 있고, 그 결과 이전 문자 시퀀스(510)와 타겟 문자 시퀀스(520)는 서로 겹치지 않도록 정렬될 수 있다. 앞서 설명한 것처럼, 오버랩되지 않은 부분은 기 수행된 디코딩 결과가 그대로 활용되어 병합 결과에 포함될 수 있으므로, 이전 문자 시퀀스(510)와 타겟 문자 시퀀스(520)가 그대로 이어져서 병합 결과로 "The end-to-end speech recognition algorithm has been widely studied and showed competitive performance to conventional speech"가 결정될 수 있다. 도 5에서 결정된 병합 결과는 다음 타겟 세그먼트의 디코딩 결과와 병합될 수 있으며, 이에 대해서는 도 6을 통해 후술한다.
도 6을 참조하면, 일실시예에 따라 타겟 문자 시퀀스(620)를 이전 문자 시퀀스(610)와 병합하는 과정을 설명하기 위한 예시가 도시된다. 여기서, 이전 문자 시퀀스(610)는 도 5에서 수행된 병합 결과이고, 타겟 문자 시퀀스(620)는 음성 신호로부터 추출된 제4 세그먼트의 디코딩 결과이다.
음성 처리 장치는 이전 문자 시퀀스(610)와 타겟 문자 시퀀스(620) 간 오버랩되는 부분(630)을 편집 거리에 기반하여 식별할 수 있다. 도 6의 예시처럼, 오버랩되는 부분(630)을 기준으로 이전 문자 시퀀스(610)와 타겟 문자 시퀀스(620)가 문자 레벨로 정렬될 수 있으며, 이때 오버랩되는 부분(630) 간 편집 거리의 비용이 가장 적다.
일실시예에 따른 편집 거리에 기반하여 오버랩되는 부분(630)을 식별할 때, 이전 문자 시퀀스(610)의 전체가 고려될 수 있지만, 실시예에 따라서는, 이전 문자 시퀀스(610)의 일부만이 고려될 수도 있다. 일례로, 세그먼트들 간 오버랩 길이 동안 사용자가 발화 가능한 문자 길이가 제한적이므로, 이전 문자 시퀀스(610)에서 사용자가 발화 가능한 최대 문자 길이만큼 일부 시퀀스(640)가 추출될 수 있다. 일부 시퀀스(640)와 타겟 문자 시퀀스(620) 간 편집 거리를 계산함으로써, 적은 연산량으로도 오버랩되는 부분(630)이 식별될 수 있다. 다른 일례로, 이전 문자 시퀀스(610)는 제1 세그먼트 내지 제3 세그먼트의 디코딩 결과들이 병합한 것인데, 이 중에서 마지막 세그먼트에 해당하는 제3 세그먼트의 디코딩 결과(650)가 타겟 문자 시퀀스(620)와 오버랩될 수 있다. 따라서, 제3 세그먼트의 디코딩 결과(650)와 타겟 문자 시퀀스(620) 간 편집 거리를 계산함으로써, 적은 연산량으로도 오버랩되는 부분(630)이 식별될 수 있다. 이때 제3 세그먼트는 타겟 세그먼트에 바로 앞서는 세그먼트로서, 설명의 편의를 위해 이전 세그먼트로도 지칭될 수 있다.
오버랩되는 부분(630)을 기준으로 정렬된 이전 문자 시퀀스(610)와 타겟 문자 시퀀스(620)는 앞서 설명한 방식에 따라 병합될 수 있으며, 그 병합 결과로 "The end-to-end speech recognition algorithm has been widely studied and showed competitive performance to conventional speech recognition methods"가 결정될 수 있다. 도 6의 예시에서 이전 문자 시퀀스(610) 및 타겟 문자 시퀀스(620) 각각에서 오버랩되는 부분(630)의 첫 단어가 "conventional"과 "convolutional"로 상이하나, "conventional speech" 사이의 스페이싱, "convolutional speech" 사이의 스페이싱으로 지정된 전환 포인트에 기반하여 "conventional"이 병합 결과에 포함될 수 있다.
도 7은 일실시예에 따른 편집 거리를 설명하기 위한 예시를 나타낸 도면이다.
도 7을 참조하면, 일실시예에 따른 타겟 문자 시퀀스와 이전 문자 시퀀스 간 편집 거리를 계산하기 위한 예시가 도시된다. 도 7의 예시적인 테이블에서, 첫번째 열의 "proposed convolution"은 이전 문자 시퀀스를 나타내고, 첫번째 행의 "conventional algorithm"은 타겟 문자 시퀀스이며, 첫번째 행과 첫번째 열에 포함된 ' '은 스페이싱을 나타낸다.
일실시예에 따르면, 편집 거리는 하나의 문자 시퀀스를 다른 문자 시퀀스로 변환하는 데 필요한 최소 작업 비용을 계산하여 두 문자 시퀀스가 서로 다른 정도를 수량화 하는 기법으로, 설명의 편의를 위해 최소 작업 비용의 계산 과정이 도 7과 같은 테이블로 표현될 수 있다.
편집 거리에 적용되는 비용은 편집 거리에서 수행되는 작업의 종류(예컨대, 삽입, 변경, 삭제), 작업 대상인 문자가 오버랩되는 부분에 위치하는지 여부, 매칭 여부 중 적어도 하나에 기반하여 결정된다.
편집 거리의 비용은 타겟 문자 시퀀스와 이전 문자 시퀀스 중 오버랩되지 않은 부분과 오버랩되는 부분에 상이하게 적용될 수 있다. 달리 표현하면, 오버랩되지 않은 부분에서 발생하는 편집 거리의 삽입 비용은 오버랩되는 부분에서 발생하는 삽입 비용보다 작을 수 있다. 예컨대, 오버랩되지 않은 부분에서 발생하는 편집 거리의 삽입 비용은 0이고, 오버랩되는 부분에서 발생하는 삽입 비용은 2일 수 있다. 도 7의 예시에서, 이전 문자 시퀀스의 앞부분(710)은 오버랩되지 않은 부분으로 테이블 아래로 갈수록(다시 말해, 이전 문자 시퀀스의 문자가 삽입되더라도) 비용이 증가하지 않고 동일하게 유지될 수 있다. 또한, 타겟 문자 시퀀스의 뒷부분(720)도 오버랩되지 않은 부분으로 테이블 우측으로 갈수록(다시 말해, 타겟 문자 시퀀스의 문자가 삽입되더라도) 비용이 증가하지 않고 동일하게 유지될 수 있다. 반대로, 오버랩되는 부분인 이전 문자 시퀀스의 뒷부분과 타겟 문자 시퀀스의 앞부분에서는 문자가 삽입될 때마다 비용이 2씩 증가할 수 있다.
또한, 오버랩되는 부분에서 발생하는 편집 거리의 삽입 비용, 삭제 비용 및 편집 거리의 교체 비용은 양수일 수 있으며, 이때 각 비용은 음성 처리 기법에 대한 튜닝에 의해 결정될 수 있다. 예를 들어, 오버랩되는 부분에서 발생하는 편집 거리의 삽입 비용 및/또는 삭제 비용은 편집 거리의 교체 비용보다 클 수 있다. 예컨대, 오버랩되는 부분에서 발생하는 편집 거리의 삽입 비용 및/또는 삭제 비용은 2이고, 편집 거리의 교체 비용은 1일 수 있다. 이는 음성 인식 과정에서 노이즈 등에 의해 특정 문자가 다른 문자로 인식되는 경우보다 특정 문자가 인식 결과에서 누락되는 경우를 더 큰 오류로 인식하기 위함일 수 있다.
또한, 편집 거리의 매칭 비용은 오버랩되지 않은 부분에서 발생하는 편집 거리의 삽입 비용보다 작을 수 있다. 달리 표현하면, 매칭 비용은 음수(예컨대, -1)로 설정되어 오버랩되지 않은 부분에서 발생하는 편집 거리의 삽입 비용인 0보다 작을 수 있다. 도 7의 예시에서, 오버랩되는 부분(730)에서 매칭이 발생할 때마다 비용이 감소할 수 있다.
앞선 설명에 따른 비용이 적용되어 편집 거리가 계산될 때, 최소 작업 비용은 도 7의 테이블 내 좌측 상단의 시점부터 우측 하단의 종점까지를 연결하는 전체적인 관점에서 계산될 수 있다. 도 7의 예시에서는, 이전 문자 시퀀스 "proposed convolution"에서 "convolution"이 오버랩되는 부분으로 식별되고, 타겟 문자 시퀀스 "conventional algorithm"에서 "conventional"이 오버랩되는 부분으로 식별될 수 있다. 이처럼, 타겟 문자 시퀀스의 앞부분과 이전 문자 시퀀스의 뒷부분이 완벽히 일치하지 않더라도 편집 거리의 최소 작업 비용에 기반하여 오버랩되는 부분으로 식별될 수 있다. 상술된 것처럼, 편집 거리가 문자 단위로 계산됨으로써 어떤 언어에도 적용 가능한 범용성을 가질 수 있다.
도 8은 일실시예에 따른 음성 처리 방법을 나타낸 도면이다.
도 8을 참조하면, 일실시예에 따른 음성 처리 장치에 구비된 프로세서에서 수행되는 음성 처리 방법이 도시된다.
단계(810)에서, 음성 처리 장치는 음성 신호로부터 타겟 세그먼트를 획득한다. 음성 처리 장치는 세그먼트 길이 및 세그먼트들 간 오버랩 길이에 기초하여 음성 신호로부터 타겟 세그먼트를 획득할 수 있다. 세그먼트들 간 오버랩 길이는 음성 처리 방법을 수행하는 장치의 가용 리소스에 기반하여 결정될 수 있다.
단계(820)에서, 음성 처리 장치는 타겟 세그먼트를 디코딩함으로써, 타겟 세그먼트에 대응하는 타겟 문자 시퀀스를 획득한다.
단계(830)에서, 음성 처리 장치는 타겟 문자 시퀀스와 이전 문자 시퀀스 간 오버랩되는 부분을 편집 거리에 기반하여 식별한다. 편집 거리에 적용되는 비용은 편집 거리에서 수행되는 작업의 종류, 작업 대상인 문자가 오버랩되는 부분에 위치하는지 여부, 매칭 여부 중 적어도 하나에 기반하여 결정된다. 편집 거리의 비용은 타겟 문자 시퀀스와 이전 문자 시퀀스 중 오버랩되지 않은 부분과 오버랩되는 부분에 상이하게 적용될 수 있다. 편집 거리의 매칭 비용은 음수이고, 오버랩되지 않은 부분에서 발생하는 편집 거리의 삽입 비용은 0이며, 편집 거리의 교체 비용과 오버랩되는 부분에서 발생하는 삽입 비용은 양수일 수 있다.
단계(840)에서, 음성 처리 장치는 오버랩되는 부분에 기반하여 타겟 문자 시퀀스와 이전 문자 시퀀스를 병합한다.
도 1 내지 도 7을 통해 기술된 사항은 도 8을 통해 기술된 사항에 적용될 수 있으므로, 상세한 설명은 생략한다.
도 9는 일실시예에 따른 음성 처리 장치를 나타낸 도면이다.
도 9를 참조하면, 일실시예에 따른 음성 처리 장치(900)는 메모리(910), 프로세서(920) 및 입출력 인터페이스(930)를 포함할 수 있다. 메모리(910), 프로세서(920) 및 입출력 인터페이스(930)는 버스(bus)(940)를 통하여 서로 통신할 수 있다.
메모리(910)는 컴퓨터에서 읽을 수 있는 명령어를 포함할 수 있다. 프로세서(920)는 메모리(910)에 저장된 명령어가 프로세서(920)에서 실행됨에 따라 앞서 언급된 동작들을 수행할 수 있다. 메모리(910)는 휘발성 메모리 또는 비휘발성 메모리일 수 있다.
프로세서(920)는 명령어들, 혹은 프로그램들을 실행하거나, 음성 처리 장치(900)를 제어하는 하나 이상의 장치로서, 예를 들어, CPU(Central Processing Unit), GPU(Graphic Processing Unit) 등을 포함할 수 있다. 음성 처리 장치(900)는 입출력 인터페이스(930)를 통하여 다른 장치(예를 들어, 마이크로폰 또는 사용자 음성 신호를 획득한 외부 디바이스 등)에 연결되고, 데이터를 교환할 수 있다. 그 밖에, 음성 처리 장치(900)에 관해서는 상술된 동작을 처리할 수 있다.
사용자 단말은 스마트폰, 태블릿, 랩탑, 퍼스널 컴퓨터 등 다양한 컴퓨팅 장치, 스마트 시계, 스마트 안경 등 다양한 웨어러블 기기, 스마트 스피커, 스마트 TV, 스마트 냉장고 등 다양한 가전장치, 스마트 자동차, 스마트 키오스크, IoT(Internet of Things) 기기 등을 포함할 수 있다.
도 10 및 도 11은 일실시예에 따른 음성 처리 장치의 예시들을 설명하기 위한 도면이다.
도 10을 참조하면 일실시예에 따른 음성 처리 장치는 서버(1000)로 구현될 수 있다.
서버(1000)는 사용자에 의해 제어되는 사용자 단말과 구분되는 별도의 장치로서, 유선 및/또는 무선 네트워크를 통해 사용자 단말과 통신을 수행할 수 있다. 사용자의 음성 신호는 사용자 단말에서 수집되어 네트워크를 통해 서버(1000)로 전달되고, 서버(1000)는 앞서 설명한 음성 처리 방법에 따라 음성 인식 모델(1010)을 이용하여 해당 음성 신호를 인식할 수 있다. 이 때 음성 인식 모델(1010)이 이용될 수 있다. 그리고, 서버(1000)는 음성 인식 결과를 사용자 단말로 리턴할 수 있다. 예를 들어, 사용자 단말은 스마트폰, 태블릿, 랩탑, 퍼스널 컴퓨터 등 다양한 컴퓨팅 장치, 스마트 시계, 스마트 안경 등 다양한 웨어러블 기기, 스마트 스피커, 스마트 TV, 스마트 냉장고 등 다양한 가전장치, 스마트 자동차, 스마트 키오스크, IoT(Internet of Things) 기기 등을 포함할 수 있다.
사용자 단말은 서버(1000)로부터 수신된 인식 결과를 단순히 사용자로 제공하거나, 또는 인식 결과에 기반한 후속 동작을 수행할 수 있다. 예를 들어, 후속 동작은 날씨를 물어보는 등의 사용자 질문에 대한 응답 정보 출력, 음악 재생 등의 사용자 명령에 따른 명령 수행, 사용자 단말에 표시된 입력 항목에 텍스트 입력, 음성 인식 결과를 다른 언어로 번역 또는 통역 등을 제한 없이 포함할 수 있다.
도 11을 참조하면, 일실시예에 따른 음성 처리 장치는 사용자 단말(1100)로 구현될 수 있다. 도 11에서는 설명의 편의를 위해 사용자 단말(1100)이 스마트 폰으로 도시되었지만, 이외에도 사용자에 의해 제어되는 기기라면 제한 없이 적용될 수 있다. 사용자 단말(1100)은 직접 사용자로부터 음성 신호를 획득하고, 앞서 설명한 음성 처리 방법에 따라 음성 인식 모델(11110)을 이용하여 해당 음성 신호를 인식할 수 있다. 그리고, 사용자 단말(1100)은 인식 결과를 단순히 사용자로 제공하거나, 또는 인식 결과에 기반한 후속 동작을 수행할 수 있다.
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.

Claims (20)

  1. 음성 신호로부터 타겟 세그먼트를 획득하는 단계;
    상기 타겟 세그먼트를 디코딩함으로써, 상기 타겟 세그먼트에 대응하는 타겟 문자 시퀀스를 획득하는 단계;
    상기 타겟 문자 시퀀스와 이전 문자 시퀀스 간 오버랩되는 부분을 편집 거리에 기반하여 식별하는 단계; 및
    상기 오버랩되는 부분에 기반하여 상기 타겟 문자 시퀀스와 상기 이전 문자 시퀀스를 병합하는 단계
    를 포함하고,
    상기 편집 거리에 적용되는 비용은 상기 편집 거리에서 수행되는 작업의 종류, 작업 대상인 문자가 상기 오버랩되는 부분에 위치하는지 여부, 매칭 여부 중 적어도 하나에 기반하여 결정되는,
    음성 처리 방법.
  2. 제1항에 있어서,
    상기 편집 거리의 비용은 상기 타겟 문자 시퀀스와 상기 이전 문자 시퀀스 중 오버랩되지 않은 부분과 상기 오버랩되는 부분에 상이하게 적용되는,
    음성 처리 방법.
  3. 제1항에 있어서,
    상기 타겟 문자 시퀀스와 상기 이전 문자 시퀀스 중 오버랩되지 않은 부분에서 발생하는 상기 편집 거리의 삽입 비용은 상기 오버랩되는 부분에서 발생하는 삽입 비용보다 작은,
    음성 처리 방법.
  4. 제1항에 있어서,
    상기 편집 거리의 매칭 비용은 상기 타겟 문자 시퀀스와 상기 이전 문자 시퀀스 중 오버랩되지 않은 부분에서 발생하는 상기 편집 거리의 삽입 비용보다 작은,
    음성 처리 방법.
  5. 제1항에 있어서,
    상기 오버랩되는 부분에서 발생하는 상기 편집 거리의 삽입 비용, 삭제 비용 및 상기 편집 거리의 교체 비용은 양수인,
    음성 처리 방법.
  6. 제1항에 있어서,
    상기 편집 거리의 매칭 비용은 음수이고,
    상기 타겟 문자 시퀀스와 상기 이전 문자 시퀀스 중 오버랩되지 않은 부분에서 발생하는 상기 편집 거리의 삽입 비용은 0인,
    음성 처리 방법.
  7. 제1항에 있어서,
    상기 음성 신호로부터 타겟 세그먼트를 획득하는 단계는
    세그먼트 길이 및 세그먼트들 간 오버랩 길이에 기초하여 상기 음성 신호로부터 상기 타겟 세그먼트를 획득하는,
    음성 처리 방법.
  8. 제7항에 있어서,
    상기 세그먼트들 간 오버랩 길이는 상기 음성 처리 방법을 수행하는 장치의 가용 리소스에 기반하여 결정되는,
    음성 처리 방법.
  9. 제1항에 있어서,
    상기 오버랩되는 부분을 식별하는 단계는
    세그먼트들 간 오버랩 길이 동안 사용자가 발화 가능한 최대 문자 길이에 따라 상기 이전 문자 시퀀스에서 추출된 일부 시퀀스와 상기 타겟 문자 시퀀스 간 오버랩되는 부분을 식별하는,
    음성 처리 방법.
  10. 제1항에 있어서,
    상기 이전 문자 시퀀스는
    상기 음성 신호에서 상기 타겟 세그먼트와 일부가 오버랩되는 이전 세그먼트의 디코딩 결과에 기초하여 결정되는,
    음성 처리 방법.
  11. 제10항에 있어서,
    상기 오버랩되는 부분을 식별하는 단계는
    상기 이전 문자 시퀀스에 포함된 상기 이전 세그먼트의 디코딩 결과와 상기 타겟 문자 시퀀스 간 오버랩되는 부분을 식별하는,
    음성 처리 방법.
  12. 제10항에 있어서,
    상기 타겟 세그먼트에서 상기 이전 세그먼트와 오버랩되는 부분은 상기 타겟 세그먼트의 절반 미만인,
    음성 처리 방법.
  13. 제1항 내지 제12항 중에서 어느 하나의 항의 방법을 실행시키기 위한 프로그램이 기록된 컴퓨터 판독 가능한 저장 매체.
  14. 하나 이상의 프로세서를 포함하고,
    상기 하나 이상의 프로세서는
    음성 신호로부터 타겟 세그먼트를 획득하고,
    상기 타겟 세그먼트를 디코딩함으로써, 상기 타겟 세그먼트에 대응하는 타겟 문자 시퀀스를 획득하고,
    상기 타겟 문자 시퀀스와 이전 문자 시퀀스 간 오버랩되는 부분을 편집 거리에 기반하여 식별하며,
    상기 오버랩되는 부분에 기반하여 상기 타겟 문자 시퀀스와 상기 이전 문자 시퀀스를 병합하고,
    상기 편집 거리에 적용되는 비용은 상기 편집 거리에서 수행되는 작업의 종류, 작업 대상인 문자가 상기 오버랩되는 부분에 위치하는지 여부, 매칭 여부 중 적어도 하나에 기반하여 결정되는,
    음성 처리 장치.
  15. 제14항에 있어서,
    상기 편집 거리의 비용은 상기 타겟 문자 시퀀스와 상기 이전 문자 시퀀스 중 오버랩되지 않은 부분과 상기 오버랩되는 부분에 상이하게 적용되는,
    음성 처리 장치.
  16. 제14항에 있어서,
    상기 편집 거리의 매칭 비용은 상기 타겟 문자 시퀀스와 상기 이전 문자 시퀀스 중 오버랩되지 않은 부분에서 발생하는 상기 편집 거리의 삽입 비용보다 작은,
    음성 처리 장치.
  17. 제14항에 있어서,
    상기 타겟 문자 시퀀스와 상기 이전 문자 시퀀스 중 오버랩되는 부분에서 발생하는 상기 편집 거리의 삽입 비용, 삭제 비용 및 상기 편집 거리의 교체 비용은 양수인,
    음성 처리 장치.
  18. 제14항에 있어서,
    상기 하나 이상의 프로세서는
    세그먼트 길이 및 세그먼트들 간 오버랩 길이에 기초하여 상기 음성 신호로부터 상기 타겟 세그먼트를 획득하는,
    음성 처리 장치.
  19. 제18항에 있어서,
    상기 세그먼트들 간 오버랩 길이는 상기 음성 처리 방법을 수행하는 장치의 가용 리소스에 기반하여 결정되는,
    음성 처리 장치.
  20. 제14항에 있어서,
    상기 이전 문자 시퀀스는
    상기 음성 신호에서 상기 타겟 세그먼트와 일부가 오버랩되는 이전 세그먼트의 디코딩 결과에 기초하여 결정되는,
    음성 처리 장치.
KR1020200051269A 2020-04-28 2020-04-28 음성 처리 방법 및 장치 KR20210132855A (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR1020200051269A KR20210132855A (ko) 2020-04-28 2020-04-28 음성 처리 방법 및 장치
US17/083,854 US11721323B2 (en) 2020-04-28 2020-10-29 Method and apparatus with speech processing
EP20212778.3A EP3905240B1 (en) 2020-04-28 2020-12-09 Speech recognition of overlapping segments
CN202110096040.0A CN113643698A (zh) 2020-04-28 2021-01-25 用于语音处理的方法和设备
JP2021010387A JP2021173993A (ja) 2020-04-28 2021-01-26 音声処理方法及び装置
US17/368,983 US11776529B2 (en) 2020-04-28 2021-07-07 Method and apparatus with speech processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200051269A KR20210132855A (ko) 2020-04-28 2020-04-28 음성 처리 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20210132855A true KR20210132855A (ko) 2021-11-05

Family

ID=73789943

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200051269A KR20210132855A (ko) 2020-04-28 2020-04-28 음성 처리 방법 및 장치

Country Status (5)

Country Link
US (1) US11721323B2 (ko)
EP (1) EP3905240B1 (ko)
JP (1) JP2021173993A (ko)
KR (1) KR20210132855A (ko)
CN (1) CN113643698A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114610164A (zh) * 2022-03-17 2022-06-10 联想(北京)有限公司 信息处理方法和电子设备

Family Cites Families (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2852779B1 (fr) * 2003-03-20 2008-08-01 Procede pour traiter un signal electrique de son
US7756709B2 (en) * 2004-02-02 2010-07-13 Applied Voice & Speech Technologies, Inc. Detection of voice inactivity within a sound stream
US7930176B2 (en) * 2005-05-20 2011-04-19 Broadcom Corporation Packet loss concealment for block-independent speech codecs
US7689411B2 (en) * 2005-07-01 2010-03-30 Xerox Corporation Concept matching
KR100883652B1 (ko) * 2006-08-03 2009-02-18 삼성전자주식회사 음성 구간 검출 방법 및 장치, 및 이를 이용한 음성 인식시스템
JP4920395B2 (ja) 2006-12-12 2012-04-18 ヤフー株式会社 動画要約自動作成装置、方法、及びコンピュータ・プログラム
JP5052449B2 (ja) 2008-07-29 2012-10-17 日本電信電話株式会社 発話区間話者分類装置とその方法と、その装置を用いた音声認識装置とその方法と、プログラムと記録媒体
JP2010211122A (ja) 2009-03-12 2010-09-24 Nissan Motor Co Ltd 音声認識装置及び方法
US8380798B2 (en) * 2010-02-08 2013-02-19 Google Inc. Status message de-duplication
KR101368594B1 (ko) * 2010-11-10 2014-02-27 라쿠텐 인코포레이티드 관련어 등록 장치, 정보 처리 장치, 관련어 등록 방법 및 기록 매체
KR20120072145A (ko) 2010-12-23 2012-07-03 한국전자통신연구원 음성 인식 방법 및 장치
US10368318B2 (en) * 2010-12-30 2019-07-30 Telefonaktiebolaget Lm Ericsson (Publ) Wireless operation in very high density environments
US9286886B2 (en) * 2011-01-24 2016-03-15 Nuance Communications, Inc. Methods and apparatus for predicting prosody in speech synthesis
JP2012194417A (ja) * 2011-03-17 2012-10-11 Sony Corp 音声処理装置および方法、並びにプログラム
US9767807B2 (en) * 2011-03-30 2017-09-19 Ack3 Bionetics Pte Limited Digital voice signature of transactions
US9834766B2 (en) * 2011-09-02 2017-12-05 Atreca, Inc. DNA barcodes for multiplexed sequencing
JP5870790B2 (ja) * 2012-03-19 2016-03-01 富士通株式会社 文章校正装置、及び文章校正方法
WO2014075174A1 (en) * 2012-11-19 2014-05-22 Imds America Inc. Method and system for the spotting of arbitrary words in handwritten documents
KR101537370B1 (ko) 2013-11-06 2015-07-16 주식회사 시스트란인터내셔널 녹취된 음성 데이터에 대한 핵심어 추출 기반 발화 내용 파악 시스템과, 이 시스템을 이용한 인덱싱 방법 및 발화 내용 파악 방법
US20150310863A1 (en) 2014-04-24 2015-10-29 Nuance Communications, Inc. Method and apparatus for speaker diarization
US9430463B2 (en) * 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
US9747273B2 (en) * 2014-08-19 2017-08-29 International Business Machines Corporation String comparison results for character strings using frequency data
GB2535439A (en) * 2015-01-06 2016-08-24 What3Words Ltd A method for suggesting candidate words as replacements for an input string received at an electronic device
KR102413692B1 (ko) * 2015-07-24 2022-06-27 삼성전자주식회사 음성 인식을 위한 음향 점수 계산 장치 및 방법, 음성 인식 장치 및 방법, 전자 장치
WO2017027824A1 (en) * 2015-08-13 2017-02-16 Arris Enterprises Llc System and method for detecting advertisements in multimedia assets
CN105446957B (zh) * 2015-12-03 2018-07-20 小米科技有限责任公司 相似性确定方法、装置及终端
US9799327B1 (en) 2016-02-26 2017-10-24 Google Inc. Speech recognition with attention-based recurrent neural networks
CA3017999A1 (en) * 2016-03-18 2017-09-21 Universite De Mons Audio search user interface
US10269375B2 (en) 2016-04-22 2019-04-23 Conduent Business Services, Llc Methods and systems for classifying audio segments of an audio signal
US10102191B2 (en) * 2016-06-16 2018-10-16 Adobe Systems Incorporated Propagation of changes in master content to variant content
US10319019B2 (en) * 2016-09-14 2019-06-11 Ebay Inc. Method, medium, and system for detecting cross-lingual comparable listings for machine translation using image similarity
JP6689171B2 (ja) 2016-09-20 2020-04-28 株式会社東芝 音声処理システム、該音声処理システムに適用される音声認識サーバおよび中継処理装置群、該中継処理装置群に適用される音声処理方法、該音声認識サーバに適用される音声変換方法、ならびにプログラム
US10657955B2 (en) 2017-02-24 2020-05-19 Baidu Usa Llc Systems and methods for principled bias reduction in production speech models
KR101984042B1 (ko) 2017-05-30 2019-06-04 주식회사 엠글리쉬 영상데이터 음성신호 기반 청크 및 핵심어 분석 방법, 그리고 그 시스템
US11475209B2 (en) * 2017-10-17 2022-10-18 Handycontract Llc Device, system, and method for extracting named entities from sectioned documents
US20190221213A1 (en) 2018-01-18 2019-07-18 Ezdi Inc. Method for reducing turn around time in transcription
US11733780B2 (en) * 2018-03-16 2023-08-22 Veridium Ip Limited System and method for user recognition using motion sensor data
US11341987B2 (en) * 2018-04-19 2022-05-24 Semiconductor Components Industries, Llc Computationally efficient speech classifier and related methods
US11335333B2 (en) * 2018-07-20 2022-05-17 Google Llc Speech recognition with sequence-to-sequence models
US10732972B2 (en) * 2018-08-23 2020-08-04 International Business Machines Corporation Non-overlapping substring detection within a data element string
WO2020111880A1 (en) * 2018-11-30 2020-06-04 Samsung Electronics Co., Ltd. User authentication method and apparatus
US10573312B1 (en) * 2018-12-04 2020-02-25 Sorenson Ip Holdings, Llc Transcription generation from multiple speech recognition systems
EP3899938B1 (en) * 2018-12-18 2023-10-04 Szegedi Tudományegyetem Automatic detection of neurocognitive impairment based on a speech sample
JP6605774B1 (ja) 2019-03-01 2019-11-13 株式会社ネイン 情報処理システム、情報処理装置、情報処理方法およびコンピュータプログラム
US11138980B2 (en) * 2019-04-30 2021-10-05 Microsoft Technology Licensing, Llc Processing overlapping speech from distributed devices
US11074909B2 (en) * 2019-06-28 2021-07-27 Samsung Electronics Co., Ltd. Device for recognizing speech input from user and operating method thereof
US11720718B2 (en) * 2019-07-31 2023-08-08 Microsoft Technology Licensing, Llc Security certificate identity analysis
FI20195726A1 (en) * 2019-09-02 2021-03-03 Genelec Oy A system and method for producing complementary sound
EP3891728A1 (en) * 2019-09-03 2021-10-13 Google LLC Using corrections, of predicted textual segments of spoken utterances, for training of on-device speech recognition model
AU2021218731A1 (en) * 2020-02-14 2022-08-04 Guardant Health, Inc. Methods and systems for determining fusion events
US11955136B2 (en) * 2020-03-27 2024-04-09 Arizona Board Of Regents On Behalf Of Arizona State University Systems and methods for gunshot detection

Also Published As

Publication number Publication date
EP3905240A1 (en) 2021-11-03
US11721323B2 (en) 2023-08-08
EP3905240B1 (en) 2023-07-19
CN113643698A (zh) 2021-11-12
JP2021173993A (ja) 2021-11-01
US20210335339A1 (en) 2021-10-28

Similar Documents

Publication Publication Date Title
US10923119B2 (en) Speech data processing method and apparatus, device and storage medium
KR102516364B1 (ko) 기계 번역 방법 및 장치
US11276394B2 (en) Method for re-aligning corpus and improving the consistency
US8849668B2 (en) Speech recognition apparatus and method
KR102396983B1 (ko) 문법 교정 방법 및 장치
KR20210043995A (ko) 모델 학습 방법 및 장치, 및 시퀀스 인식 방법
KR20210061141A (ko) 자연어 처리 방법 및 장치
CN112331206A (zh) 语音识别方法及设备
JP2020004382A (ja) 音声対話方法及び装置
KR20210060897A (ko) 음성 처리 방법 및 장치
CN110136715B (zh) 语音识别方法和装置
CN111797632A (zh) 信息处理方法、装置及电子设备
KR20210132855A (ko) 음성 처리 방법 및 장치
KR102618483B1 (ko) 텍스트 필터링 장치 및 방법
CN115346517A (zh) 一种流式语音识别方法、装置、设备及存储介质
KR20210042707A (ko) 음성 처리 방법 및 장치
TWI818427B (zh) 使用基於文本的說話者變更檢測的說話者劃分糾正方法及系統
US11776529B2 (en) Method and apparatus with speech processing
JP7291099B2 (ja) 音声認識方法及び装置
KR102153220B1 (ko) 동일성 판단에 기초한 음성 인식 결과 출력 방법 및 이를 이용한 장치
CN110728973A (zh) 视频资源的输出方法和服务器
CN114220421A (zh) 字级别的时间戳的生成方法、装置、电子设备和存储介质
KR20220130450A (ko) 음성 인식을 위한 인공 신경망에서의 디코딩 방법 및 디코딩 장치
CN111816164A (zh) 用于语音识别的方法及设备
CN111539520A (zh) 增强深度学习模型鲁棒性的方法及装置