KR20210141115A - 발화 시간 추정 방법 및 장치 - Google Patents

발화 시간 추정 방법 및 장치 Download PDF

Info

Publication number
KR20210141115A
KR20210141115A KR1020200058322A KR20200058322A KR20210141115A KR 20210141115 A KR20210141115 A KR 20210141115A KR 1020200058322 A KR1020200058322 A KR 1020200058322A KR 20200058322 A KR20200058322 A KR 20200058322A KR 20210141115 A KR20210141115 A KR 20210141115A
Authority
KR
South Korea
Prior art keywords
attention
attention weight
sequence
estimating
output
Prior art date
Application number
KR1020200058322A
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 KR1020200058322A priority Critical patent/KR20210141115A/ko
Priority to US17/064,879 priority patent/US20210358493A1/en
Priority to CN202011216205.5A priority patent/CN113674733A/zh
Priority to EP20209906.5A priority patent/EP3910625A3/en
Priority to JP2020201058A priority patent/JP2021179593A/ja
Publication of KR20210141115A publication Critical patent/KR20210141115A/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/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/08Speech classification or search
    • G10L15/16Speech classification or search using artificial 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
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • 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
    • 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
    • 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/48Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Acoustics & Sound (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Machine Translation (AREA)
  • User Interface Of Digital Computer (AREA)
  • Image Analysis (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

발화 시간 추정 방법 및 장치가 개시된다. 일 실시예에 따른 어텐션 기반 시퀀스 투 시퀀스 모델에서의 발화 시간 추정 방법은 복수의 어텐션 가중치 행렬(attention weight matrix)들을 획득하는 단계, 복수의 어텐션 가중치 행렬들 중 제1 어텐션 가중치 행렬을 선택하는 단계 및 제1 어텐션 가중치 행렬에 기초하여, 출력 시퀀스에 대응하는 발화 시간을 추정하는 단계를 포함한다.

Description

발화 시간 추정 방법 및 장치{METHOD AND APPARATUS FOR ESTIMATING UTTERANCE TIME}
아래 실시예들은 발화 시간 추정 방법 및 장치에 관한 것으로, 구체적으로는 어텐션 기반 시퀀스 투 시퀀스 모델에서의 발화 시간을 추정하는 방법 및 장치에 관한 것이다.
음성 인식(speech recognition) 기술이란 인간이 발화한 음성과 같은 음향학적 신호(acoustic speech signal)를 컴퓨팅 장치의 분석을 통해 인식 또는 이해하는 기술을 의미한다. 종래에는, 음성 데이터에서 추출된 주파수 특징 등을 이용하여 음성을 인식하는 방식이 주로 이용되었고, 여기에 은닉 마르코프 모델(Hidden Markov Model; HMM)이 주로 이용되었다. 이러한 HMM 기반의 음성 인식 방식은 음성 데이터로부터 발음을 분석하고, 분석된 발음에 기초하여 단어나 문장을 조합하는 과정을 통해 음성을 인식하게 된다.
최근에는, 딥 러닝(deep learning) 기반의 기계 학습(machine learning) 기술이 성숙됨에 따라, 인공 신경망(artificial neural network)으로 구성된 음향 모델을 이용하여, 음성 데이터로부터 발음을 분석하는 과정을 거치지 않고 음성 데이터에서 단어나 문장 등의 텍스트를 직접 인식하는 단대단(End-to-End) 음성 인식 기술에 대한 연구가 활발하게 진행되고 있다.
일 실시예에 따른 어텐션 기반 시퀀스 투 시퀀스 모델에서의 발화 시간 추정 방법은 복수의 어텐션 가중치 행렬(attention weight matrix)들을 획득하는 단계; 상기 복수의 어텐션 가중치 행렬들 중 제1 어텐션 가중치 행렬을 선택하는 단계; 및 상기 제1 어텐션 가중치 행렬에 기초하여, 출력 시퀀스에 대응하는 발화 시간을 추정하는 단계를 포함한다.
상기 선택하는 단계는 상기 복수의 어텐션 가중치 행렬들에 대하여 단조 회귀 분석(monotonic regression analysis)을 수행하여, 상기 제1 어텐션 가중치 행렬을 선택하는 단계를 포함할 수 있다.
상기 추정하는 단계는 상기 제1 어텐션 가중치 행렬에 단조 회귀 분석을 수행하여, 상기 출력 시퀀스에 대응하는 발화 시간을 추정하는 단계를 포함할 수 있다.
상기 제1 어텐션 가중치 행렬은 상기 출력 시퀀스를 구성하는 각각의 출력 토큰에 대해서, 입력 시퀀스를 구성하는 각각의 입력 프레임의 어텐션 가중치를 원소로 갖고, 상기 추정하는 단계는 상기 각각의 출력 토큰에 대응하는 상기 각각의 입력 프레임의 어텐션 가중치 중에서, 상기 어텐션 가중치가 높은 미리 정해진 개수 입력 프레임의 어텐션 가중치를 선택하는 단계; 및 상기 선택된 어텐션 가중치에 기초하여, 상기 출력 시퀀스에 대응하는 발화 시간을 추정하는 단계를 포함할 수 있다.
상기 발화 시간을 추정하는 단계는 상기 선택된 어텐션 가중치에 기초하여, 상기 제1 어텐션 가중치 행렬을 보정하는 단계; 및 상기 보정된 제1 어텐션 가중치 행렬에 기초하여, 상기 출력 시퀀스에 대응하는 발화 시간을 추정하는 단계를 포함할 수 있다.
상기 추정하는 단계는 상기 제1 어텐션 가중치 행렬에 디퓨젼(diffusion) 보정을 수행하는 단계; 및 상기 보정된 제1 어텐션 가중치 행렬에 기초하여, 상기 출력 시퀀스에 대응하는 발화 시간을 추정하는 단계를 포함할 수 있다.
상기 제1 어텐션 가중치 행렬은 상기 출력 시퀀스를 구성하는 각각의 출력 토큰에 대해서, 입력 시퀀스를 구성하는 각각의 입력 프레임의 어텐션 가중치를 원소로 갖고, 상기 추정하는 단계는 상기 각각의 출력 토큰에 대응하는 상기 각각의 입력 프레임의 어텐션 가중치 중에서, 상기 어텐션 가중치가 높은 미리 정해진 개수의 입력 프레임의 어텐션 가중치를 선택하는 단계; 상기 선택된 어텐션 가중치에 기초하여, 상기 제1 어텐션 가중치 행렬에 디퓨젼 보정을 수행하는 단계; 및 상기 디퓨젼 보정된 제1 어텐션 가중치 행렬에 기초하여, 상기 출력 시퀀스에 대응하는 발화 시간을 추정하는 단계를 포함할 수 있다.
상기 복수의 어텐션 가중치 행렬들의 수는 상기 어텐션 기반 시퀀스 투 시퀀스 모델의 어텐션 레이어 수와 디코더 레이어 수의 곱에 해당할 수 있다.
일 실시예에 따른 발화 시간 추정 방법은 상기 복수의 어텐션 가중치 행렬들 중에서 특정 행렬이 상기 제1 어텐션 가중치 행렬이 되도록 상기 어텐션 기반 시퀀스 투 시퀀스 모델을 학습하는 단계를 더 포함할 수 있다.
상기 학습하는 단계는 상기 특정 행렬에 대응하는 어텐션 레이어를 마스킹하고 상기 어텐션 기반 시퀀스 투 시퀀스 모델을 학습하는 단계를 포함할 수 있다.
일 실시예에 따른 발화 시간 추정 방법은 화자의 입력 음성에 대응하는 입력 시퀀스를 수신하는 단계; 상기 입력 시퀀스를 인코딩하여 인코딩된 특징을 생성하는 단계; 적어도 하나의 어텐션 레이어 별로 상기 입력 시퀀스를 구성하는 각각의 입력 프레임의 어텐션 가중치를 계산하는 단계; 상기 인코딩된 특징 및 상기 어텐션 가중치에 기초하여 매 스텝 별로 출력 시퀀스를 구성하는 출력 토큰을 추정하는 단계; 상기 어텐션 가중치에 기초하여, 상기 어텐션 레이어 별로 상기 출력 토큰에 대응하는 입력 프레임을 결정하는 단계; 및 상기 출력 토큰에 대응하는 입력 프레임에 기초하여, 상기 출력 시퀀스에 대응하는 상기 입력 음성의 발화 시간을 추정하는 단계를 포함한다.
상기 발화 시간을 추정하는 단계는 상기 출력 토큰에 대응하는 입력 프레임에 기초하여 상기 어텐션 레이어 별 어텐션 가중치 행렬들을 획득하는 단계; 상기 어텐션 레이어 별 어텐션 가중치 행렬들 중 단조 성질에 대응하는 제1 어텐션 가중치 행렬을 선택하는 단계; 및 제1 어텐션 가중치 행렬에 기초하여, 출력 시퀀스에 대응하는 상기 발화 시간을 추정하는 단계를 포함한다.
일 실시예에 따른 어텐션 기반 시퀀스 투 시퀀스 모델에서의 발화 시간 추정 장치는 복수의 어텐션 가중치 행렬(attention weight matrix)들을 획득하고, 상기 복수의 어텐션 가중치 행렬들 중 제1 어텐션 가중치 행렬을 선택하고, 상기 제1 어텐션 가중치 행렬에 기초하여, 출력 시퀀스에 대응하는 발화 시간을 추정하는 프로세서를 포함한다.
상기 프로세서는 상기 복수의 어텐션 가중치 행렬들에 대하여 단조 회귀 분석을 수행하여, 상기 제1 어텐션 가중치 행렬을 선택할 수 있다.
상기 프로세서는 상기 제1 어텐션 가중치 행렬에 단조 회귀 분석을 수행하여, 상기 출력 시퀀스에 대응하는 발화 시간을 추정할 수 있다.
상기 제1 어텐션 가중치 행렬은 상기 출력 시퀀스를 구성하는 각각의 출력 토큰에 대해서, 입력 시퀀스를 구성하는 각각의 입력 프레임의 어텐션 가중치를 원소로 갖고, 상기 프로세서는 상기 각각의 출력 토큰에 대응하는 상기 각각의 입력 프레임의 어텐션 가중치 중에서, 상기 어텐션 가중치가 높은 미리 정해진 개수의 입력 프레임의 어텐션 가중치를 선택하고, 상기 선택된 어텐션 가중치에 기초하여, 상기 출력 시퀀스에 대응하는 발화 시간을 추정할 수 있다.
상기 프로세서는 상기 선택된 어텐션 가중치에 기초하여, 상기 제1 어텐션 가중치 행렬을 보정하고, 상기 보정된 제1 어텐션 가중치 행렬에 기초하여, 상기 출력 시퀀스에 대응하는 발화 시간을 추정할 수 있다.
상기 프로세서는 상기 제1 어텐션 가중치 행렬에 디퓨젼(diffusion) 보정을 수행하고, 상기 보정된 제1 어텐션 가중치 행렬에 기초하여, 상기 출력 시퀀스에 대응하는 발화 시간을 추정할 수 있다.
상기 제1 어텐션 가중치 행렬은 상기 출력 시퀀스를 구성하는 각각의 출력 토큰에 대해서, 입력 시퀀스를 구성하는 각각의 입력 프레임의 어텐션 가중치를 원소로 갖고, 상기 프로세서는 상기 각각의 출력 토큰에 대응하는 상기 각각의 입력 프레임의 어텐션 가중치 중에서, 상기 어텐션 가중치가 높은 미리 정해진 개수의 입력 프레임의 어텐션 가중치를 선택하고, 상기 선택된 어텐션 가중치에 기초하여, 상기 제1 어텐션 가중치 행렬에 디퓨젼 보정을 수행하고, 상기 디퓨젼 보정된 제1 어텐션 가중치 행렬에 기초하여, 상기 출력 시퀀스에 대응하는 발화 시간을 추정할 수 있다.
상기 복수의 어텐션 가중치 행렬들의 수는 상기 어텐션 기반 시퀀스 투 시퀀스 모델의 어텐션 레이어 수와 디코더 레이어 수의 곱에 해당할 수 있다.
상기 프로세서는 상기 복수의 어텐션 가중치 행렬들 중에서 특정 행렬이 상기 제1 어텐션 가중치 행렬이 되도록 상기 어텐션 기반 시퀀스 투 시퀀스 모델을 학습할 수 있다.
상기 프로세서는 상기 특정 행렬에 대응하는 어텐션 레이어를 마스킹하고 상기 어텐션 기반 시퀀스 투 시퀀스 모델을 학습할 수 있다.
일 실시예에 따른 모바일 디바이스는 화자의 입력 음성을 수신하는 적어도 하나의 센서; 및 상기 입력 음성에 대응하는 입력 시퀀스를 인코딩하여 인코딩된 특징을 생성하고, 적어도 하나의 어텐션 레이어 별로 상기 입력 시퀀스를 구성하는 각각의 입력 프레임의 어텐션 가중치를 계산하고, 상기 인코딩된 특징 및 상기 어텐션 가중치에 기초하여 매 스텝 별로 출력 시퀀스를 구성하는 출력 토큰을 추정하고, 상기 어텐션 가중치에 기초하여, 상기 어텐션 레이어 별로 상기 출력 토큰에 대응하는 입력 프레임을 결정하고, 상기 출력 토큰에 대응하는 입력 프레임에 기초하여, 상기 출력 시퀀스에 대응하는 발화 시간을 추정하는 프로세서를 포함한다.
상기 프로세서는 상기 출력 토큰에 대응하는 입력 프레임에 기초하여 상기 어텐션 레이어 별 어텐션 가중치 행렬들을 획득하고, 상기 어텐션 레이어 별 어텐션 가중치 행렬들 중 단조 성질에 대응하는 제1 어텐션 가중치 행렬을 선택하고, 상기 제1 어텐션 가중치 행렬에 기초하여, 출력 시퀀스에 대응하는 상기 발화 시간을 추정할 수 있다.
도 1은 일 실시예에 따른 음성 인식 시스템의 구성도이다.
도 2는 일 실시예에 따른 인코더-디코더 구조의 단대단 인공신경망을 갖는 음성 인식 장치의 동작을 설명하기 위한 도면이다.
도 3은 일 실시예에 따른 음성 인식 장치의 블록도이다.
도 4a 내지 도 4b는 일 실시예에 따른 어텐션 가중치를 결정하는 방법을 설명하기 위한 도면이다.
도 5는 일 실시예에 따른 발화 시간 추정 방법을 설명하기 위한 순서도이다.
도 6은 복수의 어텐션 가중치 행렬들에서 특정 어텐션 가중치 행렬을 선택하는 방법을 설명하기 위한 도면이다.
도 7은 일 실시예에 따른 제1 어텐션 가중치 행렬에 기초하여 출력 시퀀스에 대응하는 발화 시간을 추정하는 방법을 설명하기 위한 도면이다.
도 8a는 일 실시예에 따른 발화 시간 추정 결과를 도시한 도면이다.
도 8b는 발화 시간 추정 결과를 활용하는 예시를 도시한 도면이다.
도 9a 내지 도 9b는 일 실시예에 따른 어텐션 기반 시퀀스 투 시퀀스 모델을 학습하는 방법을 설명하기 위한 도면이다.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
또한, 실시 예의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
어느 하나의 실시 예에 포함된 구성요소와, 공통적인 기능을 포함하는 구성요소는, 다른 실시 예에서 동일한 명칭을 사용하여 설명하기로 한다. 반대되는 기재가 없는 이상, 어느 하나의 실시 예에 기재한 설명은 다른 실시 예에도 적용될 수 있으며, 중복되는 범위에서 구체적인 설명은 생략하기로 한다.
도 1은 일 실시예에 따른 음성 인식 시스템의 구성도이다.
도 1을 참조하면, 음성 인식 시스템은 사용자 단말(110) 및 음성 인식 장치(120)를 포함할 수 있다. 도 1에 도시된 음성 인식 시스템의 각각의 구성 요소들은 기능적으로 구분되는 기능 요소들을 나타낸 것으로서, 적어도 하나의 구성 요소가 실제 물리적 환경에서는 서로 통합되는 형태로 구현될 수도 있다. 예를 들어, 도 1에는 음성 인식 장치(120)가 일종의 서버 장치인 것으로 도시되어 있으나, 실시예에 따라 음성 인식 장치(120)의 각 기능은 사용자 단말(110)에 내장되는 형태로 구현될 수 있다.
음성 인식 시스템에서, 사용자 단말(110)은 입력 시퀀스(130)를 수신하여 음성 인식 장치(120)에 전달하고, 음성 인식 장치(120)에 의해 인식된 인식 결과인 출력 시퀀스(140)를 사용자에게 제공하는 단말일 수 있다. 도 1에서, 사용자 단말(110)은 스마트 폰인 것으로 도시되어 있으나, 사용자 단말(110)은 컴퓨터, UMPC(Ultra Mobile PC), 워크스테이션, 넷북(net-book), PDA(Personal Digital Assistants), 포터블(portable) 컴퓨터, 웹 타블렛(web tablet), 무선 전화기(wireless phone), 모바일 폰(mobile phone), e-북(e-book), PMP(portable multimedia player), 휴대용 게임기, 네비게이션(navigation) 장치, 블랙 박스(black box) 또는 디지털 카메라(digital camera) 같은 전자 장치 중 하나일 수 있다.
음성 인식 시스템에서, 음성 인식 장치(120)는 화자의 입력 시퀀스(130)를 입력 받고 인식 결과인 출력 시퀀스(140)를 제공하는 컴퓨팅 장치이다. 입력 시퀀스(130)는 입력 음성과 입력 음성으로부터 추출된 입력 음성 특징 벡터를 포함할 수 있다. 입력 음성은 화자의 입력 음성 신호를 웨이브(wave) 형태로 나타낸 웨이브 파일 웨이브 파일을 주파수 형태로 나타낸 스펙트로그램(spectrogram), MFCC(Mel-Frequency Cepstral Coefficient) 등을 모두 포함하는 포괄적인 의미일 수 있다. 또한, 컴퓨팅 장치는, 노트북, 데스크톱(desktop), 랩탑(laptop), 스마트폰(smart phone) 등의 모바일 장치일 수 있으나, 이에 국한되는 것은 아니며 연산 수단이 구비된 모든 종류의 장치를 포함할 수 있다.
음성 인식 장치(120)는 단대단 음성 인식을 제공할 수 있다. 종래에는 음성 인식을 위해 은닉 마르코프 모델(HMM : Hidden Markov Model)을 주로 사용하였다. 이러한 HMM 기반의 음성 인식 방식은 음성 데이터로부터 발음을 분석하고, 분석된 발음에 기초하여 단어나 문장을 조합하는 과정을 거치게 된다. 발음은 발화자, 언어의 종류 등에 따라 달라질 수 있으므로, 발음을 분석하여 음성을 인식하는 데에는 많은 시행 착오를 통한 교정 작업이 수반될 수 밖에 없다. 또한, HMM 기반의 음성 인식 방식은 발음에 기초하여 음성을 인식한다는 점에서 주변 잡음에 취약한 문제점이 있다.
단대단 인공신경망 음성 인식 시스템에서는 기존 음성 인식 구현을 위해 필요한 신호처리, 발음변환, 언어모델, 디코딩 단계에 전문적인 지식이 개입하는 것을 최소화하면서 이 부분의 모델링을 신경망이 학습하게 함으로써 뛰어난 성능을 보이고 있다.
단대단 음성 인식을 제공하기 위해, 음성 인식 장치(120)는 인공 신경망으로 구성된 시퀀스 투 시퀀스(Sequence-to-sequence) 모델을 구축하고, 구축된 시퀀스 투 시퀀스 모델을 이용하여 입력 시퀀스(130)에 대한 인식 결과인 출력 시퀀스(140)를 제공할 수 있다. 인공 신경망은 예를 들어 순환 신경망(RNN; Recurrent Neural Network), 합성곱 신경망(CNN; Convolutional Neural Network), 셀프 어텐션 신경망(SANN; Self-Attention Neural Network), BRNN(Bi-directional RNN), LSTM(Long Short Term Memory), BLSTM(Bi-directional LSTM), GRU(Gated Recurrent Unit), BGRU(Bi-directional GRU) 등이 될 수 있으나, 이에 한정되는 것은 아니다.
또한, 음성 인식 장치(120)는 출력 시퀀스에 대응하는 발화 시간을 추정하는 발화 시간 추정 장치를 포함할 수 있다. 발화 시간 추정 장치는 음성 인식 장치(120)와 기능적으로 구분되는 기능 요소들을 나타낸 것으로, 실제 물리적 환경에서는 발화 시간 추정 장치의 적어도 하나의 구성 요소가 음성 인식 장치(120)와 통합되는 형태로 구현될 수 있다.
음성 인식 장치(120)는 발화 시간 추정 장치를 이용하여 입력 시퀀스(130)의 인식 결과인 출력 시퀀스(140)를 제공할 뿐만 아니라, 이와 함께 출력 시퀀스(140)에 포함된 인식된 단어 각각이 정확히 어느 시점에 발화된 것인지에 대한 정보도 제공할 수 있다.
다만, 시퀀스 투 시퀀스 모델 기반의 음성 인식 방식의 경우, 인식된 단어 각각을 예측 시에 음성의 특정 부분만을 사용하는 HMM 기반의 음성 인식 방식과는 달리, 입력 시퀀스(130)를 종합적으로 고려하여 인식된 단어 각각을 예측하기에 정확히 어느 시점에 발화된 것인지 명시적으로 알기 어려운 문제가 있다. 특히, 다중 헤드 어텐션(multi head attention) 시퀀스 투 시퀀스 모델은 묵시적으로 다양한 역할을 하도록 학습되어진 복수의 어텐션 레이어를 사용하기 때문에 더욱 인식된 단어 각각이 정확히 어느 시점에 발화된 것인지 추정하기 어려울 수 있다.
이에, 일 실시예에 따른 음성 인식 시스템에서는 발화 시간 추정 장치를 통해 시퀀스 투 시퀀스 모델 기반의 음성 인식 방식에서도 출력 시퀀스(140)에 포함된 인식된 단어 각각이 정확히 어느 시점에 발화된 것인지에 대한 정보를 제공할 수 있다. 이에 대한 자세한 설명은 아래 도 2 내지 도 9b을 참조하여 상세히 설명된다.
도 2는 일 실시예에 따른 인코더-디코더 구조의 단대단 인공신경망을 갖는 음성 인식 장치의 동작을 설명하기 위한 도면이다.
도 2를 참조하면, 일 실시예에 따른 인공신경망은 인코더(220) 및 디코더(230)를 포함할 수 있다.
인공신경망은 인코더(220)-디코더(230) 구조의 단대단 인공신경망으로, 모델의 모든 매개변수가 하나의 손실함수에 대해 동시에 훈련되는 경로가 가능하기 때문에, 인코더(220)와 디코더(230)가 동시에 학습될 수 있다. 인공신경망은 한쪽 끝에서 입력을 받고 다른 쪽 끝에서 출력을 생성하는데, 입력 및 출력을 직접 고려하여 네트워크 가중치를 최적화할 수 있다. 인공신경망 내 레이어들의 노드들은 비선형적으로 서로 영향을 주는 관계일 수 있으며, 각 노드들로부터 출력되는 값들, 노드들 사이의 관계들 등 인공신경망의 파라미터들은 학습에 의해 최적화될 수 있다.
인코더(220)-디코더(230) 구조의 단대단 인공신경망은 인코더(220)와 디코더(230)가 통합된 네트워크 구조로서, 인코더(220)와 디코더(230)는 입력 음성으로부터 입력 음성에 대응하는 인식 결과를 직접 생성할 수 있다.
음성 인식 장치는 입력 음성(210)으로부터 입력 음성 특징 벡터(215)를 추출할 수 있고, 인코더(220)는 입력 음성 특징 벡터(215)를 인코딩하여 인코딩된 특징(225)을 생성할 수 있다. 예를 들어, 인코더(220)는 입력 음성 특징 벡터(215)의 차원(dimension)을 변환시켜, 인코딩된 특징(225)을 생성할 수 있다. 즉, 인코더(220)는 입력 시퀀스의 의미를 잘 요약하는 역할을 할 수 있다.
인코딩된 특징(225)은 인공신경망의 디코더(230)로 인가될 수 있다. 디코더(230)는 토큰 단위로, 인코딩된 특징(225)과 이전에 결정된 인식 결과 기초하여 출력 토큰을 결정할 수 있다.
구체적으로, 인코딩된 특징(225)을 수신한 디코더(230)는 토큰 단위로 인식 결과를 출력하며, 토큰은 단어, 부분단어(subword), 단일 글자(character), 혹은 단일 글자를 이루는 단위(한글에서 초 중 종성 등)가 될 수 있다. 이하에서, 디코더(230)가 출력하는 전체 인식 결과를 출력 시퀀스라 지칭하고, 출력 시퀀스는 출력 토큰들을 포함할 수 있다.
디코더(230)는 정해지지 않은 길이의 출력을 인공신경망으로 계산하기 위해서, 마지막을 뜻하는 특수 토큰인 <EOS>가 나오기 전까지 지금까지의 추정한 토큰들을 입력으로 다음 토큰을 하나씩 계속 예측할 수 있다. 디코더(230)는 매 스텝 마다 인코더(220)로부터 계산된 정보를 바탕으로 출력 토큰을 구하는데, 이때 이전 스텝들의 출력 토큰들에 종속되어 구할 수 있고, 이러한 방법은 오토 리그레시브(auto-regressive) 디코딩이라 한다.
즉, 오토 리그레시브 디코딩을 수행하는 단대단 인공신경망 모델에서 출력 토큰으로 선택된 토큰이 다음 입력 토큰으로 결정될 수 있다. 예를 들어, “tell me a joke”라는 문장에서 "me"를 인식할 때, 이전 스텝의 출력 토큰인 "tell"을 고려할 수 있다.
다만, 인코더(220)-디코더(230) 구조의 단대단 인공신경망은 전체 입력 음성을 단일 벡터로 처리하기 때문에 입력 음성이 길어지면 음성의 앞 부분의 정보가 희석되어 음성 인식의 품질이 떨어지는 문제가 생길 수 있다. 이를 해결하기 위해, 디코더(230)에서 출력 토큰을 추정하는 매 스텝마다, 인코더(220)에서의 전체 입력 음성을 다시 한 번 참고할 수 있다. 단, 전체 입력 음성을 전부 다 동일한 비율로 참고하는 것이 아니라, 해당 스텝에서 예측해야 할 출력 토큰과 연관이 있는 입력 음성 부분을 좀 더 집중(attention)해서 볼 수 있다.
보다 구체적으로, 입력 시퀀스를 구성하는 각각의 입력 프레임들은 해당 스텝에서 예측해야 할 출력 토큰과 연관된 정도에 따라 어텐션 가중치(attention weight)가 설정될 수 있고, 디코더(230)는 설정된 어텐션 가중치에 기초하여 매 스텝 별로 출력 토큰을 추정할 수 있다.
인코더(220)와 디코더(230)는 입력 받은 입력 음성 특징 벡터로부터 인식 결과의 시퀀스를 생성하도록 미리 학습될 수 있다. 예를 들어, 인코더(220)와 디코더(230)의 모델 파라미터(예를 들어, 시냅스 연결의 가중치와 뉴런의 편향)는 입력 음성에 대응하는 정답 텍스트 쌍의 시퀀스로부터 인식 결과의 시퀀스를 생성하도록 미리 학습될 수 있다. 나아가, 인코더(220)와 디코더(230)의 어텐션 가중치 또한 입력 음성에 대응하는 정답 텍스트 쌍의 시퀀스로부터 인식 결과의 시퀀스를 생성하도록 미리 학습될 수 있다.
일 실시예에 따른 발화 시간 추정 장치는 어텐션 가중치에 기초하여 출력 시퀀스에 대응하는 발화 시간을 추정할 수 있다. 특히, 발화 시간 추정 장치는 다중 헤드 어텐션 기반의 시퀀스 투 시퀀스 모델에서도 인식된 단어 각각이 정확히 어느 시점에 발화된 것인지 추정할 수 있다.
도 3은 일 실시예에 따른 음성 인식 장치의 블록도이다.
도 3을 참조하면, 일 실시예에 따른 음성 인식 추정 장치는 특징 벡터 추출 모듈(310), 인코더(320), 디코더(330) 및 발화 시간 추정 장치(340)를 포함할 수 있다. 다만, 도 3에는 실시예와 관련 있는 구성요소들만이 도시되어 있으며, 다른 범용적인 구성 요소들이 더 포함될 수 있다. 또한, 도 3에 도시된 음성 인식 장치의 각각의 구성 요소들은 기능 및 논리적으로 분리될 수 있음을 나타나기 위해 별도로 도면에 표시한 것이며, 물리적으로 반드시 별도의 구성요소이거나 별도의 코드로 구현되는 것을 의미하는 것은 아니고, 실제 물리적 환경에서는 서로 통합되는 형태로 구현될 수도 있음에 유의한다. 이하, 음성 인식 장치의 각 구성 요소에 대하여 설명한다.
음성 인식 장치는 발화 시간 추정 장치(340)를 이용하여 입력 시퀀스(130)의 인식 결과인 출력 시퀀스(140)를 제공할 뿐만 아니라, 이와 함께 출력 시퀀스(140)에 포함된 인식된 단어 각각이 정확히 어느 시점에 발화된 것인지에 대한 정보도 제공할 수 있다.
특징 벡터 추출 모듈(310)은 화자로부터 수신한 입력 음성으로부터 입력 음성 특징 벡터를 추출할 수 있다. 입력 음성은 복수의 프레임들 별로 정보를 포함하는 음성 신호이고, 입력 음성 특징 벡터는 적어도 하나의 프레임 단위로 추출된 정보의 시퀀스일 수 있으며, 다차원의 벡터로 표현될 수 있다. 이하에서, 입력 시퀀스는 입력 음성과 입력 음성으로부터 추출된 입력 음성 특징 벡터를 포함할 수 있고, 입력 프레임 단위로 정보를 포함할 수 있다.
도 3의 인코더(320) 및 디코더(330)는 도 2를 참조하여 설명한 인코더(220) 및 디코더(330)에 대응될 수 있다. 따라서, 도 2에서와 중복되는 설명은 생략한다. 디코더(330)는 매 스텝별로 출력 토큰을 추정할 때 마다 어떤 입력 프레임에 더 집중하는 것이 좋을지 결정하는 어텐션 모듈(331)을 포함할 수 있다. 구체적으로, 어텐션 모듈(331)은 디코더(330)가 매 스텝별로 출력 토큰을 추정할 때 사용되는, 해당 스텝에서 입력 시퀀스를 구성하는 각각의 입력 프레임들의 어텐션 가중치를 결정할 수 있다. 디코더(330)는 설정된 어텐션 가중치에 기초하여 매 스텝 별로 출력 토큰을 추정할 수 있다. 어텐션 모듈(331)은 다중 헤드 어텐션 모듈일 수 있다. 다중 헤드 어텐션 모듈은 다양한 역할을 하도록 학습되어진 복수의 어텐션 레이어를 사용하여 전체 디멘젼에 대해서 한번만 어텐션을 적용하는 것이 아니라, 전체 디멘젼을 복수 개로 나눠서 어텐션을 복수 번 적용시킬 수 있다.
일 실시예에 따른 발화 시간 추정 장치(340)는 단조 회귀 분석 모듈(341)과 확산(diffusion) 모듈(343)을 포함할 수 있다. 단조 회귀 분석 모듈(341)은 제1 어텐션 가중치 행렬 선택 모듈(미도시)을 더 포함할 수 있다. 발화 시간 추정 장치(340)는 어텐션 모듈(331)로부터 수신한 어텐션 가중치에 기초하여 출력 시퀀스에 대응하는 발화 시간을 추정할 수 있다. 단조 회귀 분석 모듈(341)과 확산 모듈(343)을 통한 발화 시간 추정 장치(340)의 구체적인 동작을 설명하기에 앞서, 도 4a 내지 도 4b를 참조하여 어텐션 가중치를 결정하는 방법에 대하여 설명한다.
도 4a 내지 도 4b는 일 실시예에 따른 어텐션 가중치를 결정하는 방법을 설명하기 위한 도면이다.
도 4a를 참조하면, 인코더는 입력 프레임들(예를 들어, i1 내지 iN, N은 입력 프레임의 수)을 포함하는 입력 시퀀스를 수신하여 인코더의 히든 스테이트 벡터(예를 들어, h1 내지 hN)를 생성할 수 있다.
어텐션 모듈(331)은 디코더(330)가 매 스텝별로 출력 토큰을 추정할 때 사용되는, 해당 스텝에서 입력 시퀀스를 구성하는 각각의 입력 프레임들(예를 들어, i1 내지 iN)의 어텐션 가중치를 결정할 수 있고, 결정된 어텐션 가중치에 기초하여 컨텍스트 벡터(context vector)(예를 들어, c1 내지 cM, M은 출력 토큰의 수)를 생성할 수 있다. 어텐션 모듈(331)이 다중 헤드 어텐션 모듈인 경우, 어텐션 레이어는 복수의 어텐션 레이어(예를 들어, 제1 어텐션 레이어 내지 제k 어텐션 레이어)를 포함할 수 있고, 각 어텐션 레이어는 병렬적으로 어텐션 가중치를 결정할 수 있고, 결정된 어텐션 가중치에 기초하여 컨텍스트 벡터를 생성할 수 있다.
디코더(330)는 이전 스텝의 디코더의 히든 스테이트 벡터(st-1), 이전 스텝의 출력 토큰(yt-1) 및 현재 스텝의 컨텍스트 벡터(ct)를 입력 받아 현재 스텝의 디코더의 히든 스테이트 벡터(st) 및 현재 스텝의 출력 토큰(yt)을 추출할 수 있다. 디코더가 현재 스텝에서 출력 토큰을 추출할 때 쓰이는 현재 스텝의 컨텍스트 벡터(ct)는 아래 수학식 1과 같이 구할 수 있다.
Figure pat00001
수학식 1의
Figure pat00002
는 스텝 t에 대해서 i번째 입력 프레임에 대한 어텐션 가중치를 의미할 수 있다.
도 4b를 참조하면,
Figure pat00003
는 스텝 t에 대해서 i번째 입력 프레임에 대한 어텐션 가중치로 모든 입력 프레임(예를 들어, 1번째부터 N번째까지)에 대한 어텐션 가중치를 더하면 1일 수 있다. 만약
Figure pat00004
내지
Figure pat00005
중에서
Figure pat00006
의 값이 가장 큰 경우, 디코더(330)는 현재 스텝t에서 2번째 입력 프레임에 가장 집중하여 출력 토큰을 추출할 수 있다.
따라서, 스텝 t에 대해서 입력 프레임에 대한 어텐션 가중치들의 분포를 참조하면, 해당 스텝에서 출력 토큰을 추출할 때 어떤 입력 프레임에 집중하였는지를 판단할 수 있고, 이에 기초하여 해당 스텝에서 출력 토큰에 대응하는 입력 프레임을 결정할 수 있다. 예를 들어, 해당 스텝에서 가장 큰 어텐션 가중치를 갖는 입력 프레임을 출력 토큰에 매핑할 수 있다.
그러나, 이러한 경우 크게 두 가지 문제가 발생할 수 있다. 첫째로는 전술한 방법에 따라 해당 스텝에서 가장 큰 어텐션 가중치를 갖는 입력 프레임을 출력 토큰에 매핑하여 전체 스텝에 대해 입력 시퀀스와 출력 시퀀스를 시간에 따라 매핑한 결과가 항상 단조(monotonic) 성질을 갖지는 않다는 것이다. 음성 인식의 경우, 입력 시퀀스와 출력 시퀀스를 시간에 따라 매핑하게 되면 항상 단조 성질을 갖을 수 밖에 없다. 그러나, 전술한 방법에 따르면, 이전 스텝에서 매핑된 입력 프레임이 현재 스텝에서 매핑된 입력 프레임보다 시간상으로 이후인 경우가 발생할 수 있다. 예를 들어, 전술한 방법에 따르면 스텝 t에서 가장 큰 어텐션 가중치가
Figure pat00007
이고, 스텝 t+1에서 가장 큰 어텐션 가중치가
Figure pat00008
(단, k는 자연수)인 케이스가 발생할 수 있다.
둘째로는 출력 토큰의 시간 단위는 입력 프레임의 시간 단위에 비해 적게는 5배(예를 들어, 출력 토큰 단위가 단일 글자(character)인 경우)에서 많게는 30배(예를 들어, 출력 토큰 단위가 단어(word)인 경우)까지 크기 때문에, 출력 토큰을 추출하는 한 스텝에서 하나의 입력 프레임을 결정하여 입력 시퀀스와 출력 시퀀스를 매핑하는 것은 부정확할 수 있다.
일 실시예에 따른 발화 시간 추정 장치(340)는 위 문제점을 해결하기 위하여 먼저 출력 시퀀스를 구성하는 각각의 출력 토큰에 대해서, 입력 시퀀스를 구성하는 각각의 입력 프레임의 어텐션 가중치를 원소로 갖는 어텐션 가중치 행렬을 획득할 수 있다. 어텐션 가중치 행렬은 출력 시퀀스를 구성하는 각각의 출력 토큰에 대해서, 입력 시퀀스를 구성하는 각각의 입력 프레임의 어텐션 가중치를 원소로 갖을 수 있다. 예를 들어, 음성 인식 장치가 "tell me a joke"와 같은 출력 시퀀스를 출력하는 케이스에서, 어텐션 가중치 행렬은 아래 표 1과 같을 수 있다.
i1 i2 i3 i4 i5 i6 i7 i8 i9
tell 0.9 0.07 0.02 0.004 0.001 0.001 0.001 0.001 0.001
me 0.004 0.02 0.9 0.07 0.001 0.001 0.001 0.001 0.001
a 0.001 0.001 0.001 0.004 0.33 0.3 0.36 0.001 0.001
joke 0.001 0.001 0.001 0.001 0.001 0.62 0.37 0.004 0.001
표 1의 예시에서, 출력 토큰은 단어 단위일 수 있고, 각 입력 프레임은 10ms의 시간 단위를 갖을 수 있다. 표 1을 참조하면, 출력 토큰 'tell'의 경우, 입력 프레임 i1의 어텐션 가중치가 0.9로 가장 크고, i2의 어텐션 가중치가 0.07로 두 번째로 크고, i3의 어텐션 가중치가 0.02로 세번째로 크고, i1 내지 i3의 어텐션 가중치를 모두 합하면 0.99인 바, 출력 토큰 'tell'은 입력 프레임 i1 내지 i3에 집중하여 추출됨을 알 수 있다. 이에 기초하여, 출력 토큰 'tell'의 발화 시간은 0초 내지 30ms라고 추정할 수 있다.발화 시간 추정 장치(340)는 위 예시와 같이 어텐션 가중치 행렬에 기초하여 출력 시퀀스에 대응하는 발화 시간을 추정하기 위해, 어텐션 가중치 행렬에 대하여 미리 정해진 조건에 따라 보정을 수행하고, 보정된 가중치 행렬에 단조 회귀 분석을 수행하여, 출력 시퀀스에 대응하는 발화 시간을 추정할 수 있다.
나아가, 다중 헤드 어텐션을 수행함에 따라 복수의 가중치 행렬이 생기는 경우, 발화 시간 추정 장치(340)는 미리 정해진 조건을 만족하는 제1 가중치 행렬을 선택하고, 선택된 제1 가중치 행렬에 기초하여 출력 시퀀스에 대응하는 발화 시간을 추정할 수 있다. 구체적인 발화 시간 추정 방법은 아래에서 도 5 내지 도 9b를 참조하여 설명된다.
도 5는 일 실시예에 따른 발화 시간 추정 방법을 설명하기 위한 순서도이다.
도 5를 참조하면, 단계들(510 내지 560)은 일 실시예에 따른 음성 인식 장치에 의해 수행될 수 있다. 음성 인식 장치는 하나 또는 그 이상의 하드웨어 모듈, 하나 또는 그 이상의 소프트웨어 모듈, 또는 이들의 다양한 조합에 의하여 구현될 수 있고, 전술한 바와 같이 음성 인식 장치는 발화 추정 장치를 포함할 수 있다. 도 1 내지 도 4b의 설명은 도 5에도 적용 가능하므로, 중복되는 내용의 설명은 생략할 수 있다.
단계(510)에서, 음성 인식 장치는 입력 음성을 수신할 수 있다.
단계(515)에서, 음성 인식 장치는 입력 음성에 대응하는 입력 음성 특징 벡터를 추출할 수 있다.
단계(520)에서, 음성 인식 장치는 입력 음성 특징 벡터를 인코딩하고, 현재 스텝 t를 '0'으로 설정할 수 있다.
단계(525)에서, 음성 인식 장치는 해당 스텝에서의 어텐션 가중치를 계산할 수 있다.
단계(530)에서, 음성 인식 장치는 이전 스텝의 디코더의 히든 스테이트 벡터, 이전 스텝의 출력 토큰 및 현재 스텝의 컨텍스트 벡터를 입력 받아 현재 스텝의 디코더의 히든 스테이트 벡터 및 현재 스텝의 출력 토큰을 추출할 수 있다.
단계(535)에서, 음성 인식 장치는 각 어텐션 레이어 별로, 해당 스텝에서 가중치가 높은 n개의 어텐션 가중치에 기초하여 해당 스텝의 출력 토큰에 대응하는 입력 프레임들을 추정하고, 해당 입력 프레임들의 위치 및 어텐션 가중치를 저장할 수 있다.
단계(540 및 545)를 통해, 음성 인식 장치는 현재 스텝의 출력 토큰이 <EOS>토큰이 될 때까지 단계(525 내지 535)를 반복할 수 있다. 이를 통해, 발화 시간 추정 장치는 모든 스텝에 대한 어텐션 가중치를 포함하는 어텐션 가중치 행렬을 획득할 수 있다. 나아가, 다중 헤드 어텐션을 수행하거나, 디코더가 복수의 레이블로 구성된 경우 발화 시간 추정 장치는 복수의 어텐션 가중치 행렬들을 획득할 수 있다. 이 때 복수의 어텐션 가중치 행렬들의 수는 어텐션 레이어 수와 디코더 레이어 수의 곱에 해당할 수 있다.
단계(550)에서, 발화 시간 추정 장치는 복수의 어텐션 가중치 행렬들에 대하여 단조 회귀 분석(monotonic regression analysis)을 수행하여 특정 어텐션 가중치 행렬을 선택할 수 있다. 구체적으로, 발화 시간 추정 장치는 단조 회귀 분석 모듈(341)을 통해 복수의 어텐션 가중치 행렬에 대하여 단조 회귀 분석을 수행할 수 있다. 복수의 어텐션 가중치 행렬들에서 특정 어텐션 가중치 행렬을 선택하는 구체적인 방법은 아래에서 도 6을 참조하여 설명된다.
단계(555)에서, 발화 시간 추정 장치는 선택된 가중치 행렬에 대하여 미리 정해진 조건에 따라 보정을 수행하고, 보정된 가중치 행렬에 단조 회귀 분석을 수행할 수 있다.
단계(560)에서, 발화 시간 추정 장치는 출력 시퀀스에 대응하는 시간 정보를 획득하여, 발화 시간을 추정할 수 있다.
도 6은 복수의 어텐션 가중치 행렬들에서 특정 어텐션 가중치 행렬을 선택하는 방법을 설명하기 위한 도면이다.
도 6을 참조하면, 다중 헤드 어텐션을 수행하거나, 디코더가 복수의 레이블로 구성된 경우 발화 시간 추정 장치는 어텐션 레이어 수와 디코더 레이어 수의 곱만큼의 어텐션 가중치 행렬들을 획득할 수 있다.
어텐션 가중치 행렬의 어텐션 가중치는 색으로 표현될 수도 있다. 예를 들어, 어텐션 가중치가 클수록 하얀색에 가깝게 표현되고, 반대로 어텐션 가중치가 작을수록 검정색에 가깝게 표현될 수 있다.
복수의 어텐션 가중치 행렬을 사용하여 출력 시퀀스를 추정하는 경우에는, 각각의 어텐션 가중치 행렬의 역할이 다를 수 있다. 예를 들어, 어떤 어텐션 가중치 행렬은 노이즈에 대응할 수도 있고, 다른 어텐션 가중치 행렬은 실제 사용자의 발화에 대응할 수도 있다.
발화 시간 추정 장치는 복수의 어텐션 가중치 행렬들 중에서 가장 단조 성질을 갖는 어텐션 가중치 행렬을 선택하여 실제 사용자의 발화 시간을 추정할 수 있다. 발화 시간 추정 장치는 복수의 어텐션 가중치 행렬들에 대하여 단조 회귀 분석을 수행할 수 있고, 복수의 어텐션 가중치 행렬들 중에서 분석 결과 단조 성질을 갖으면서 가장 오차를 작게 하는 어텐션 가중치 행렬을 선택할 수 있다.
발화 시간 추정 장치는 선택된 어텐션 가중치 행렬(이하, 제1 어텐션 가중치 행렬로 지칭될 수 있다)에 기초하여 출력 시퀀스에 대응하는 발화 시간을 추정할 수 있다. 발화 시간 추정 장치는 제1 어텐션 가중치 행렬을 한번 선택하면, 다른 입력 시퀀스에 대해서도 이전에 선택된 제1 어텐션 가중치 행렬을 이용하여 출력 시퀀스에 대응하는 발화 시간을 추정할 수 있다. 즉, 발화 시간 추정 장치는 제1 어텐션 가중치 행렬을 한번 선택하면, 추후에 다시 제1 어텐션 가중치 행렬을 선택하는 과정없이 이전에 선택된 제1 어텐션 가중치 행렬을 이용하여 출력 시퀀스에 대응하는 발화 시간을 추정할 수 있다. 제1 어텐션 가중치 행렬에 기초하여 출력 시퀀스에 대응하는 발화 시간을 추정하는 구체적인 방법은 아래에서 도 7을 참조하여 설명된다.
도 7은 일 실시예에 따른 제1 어텐션 가중치 행렬에 기초하여 출력 시퀀스에 대응하는 발화 시간을 추정하는 방법을 설명하기 위한 도면이다.
도 7을 참조하면, 일 실시예에 따른 발화 시간 추정 장치는 매 스텝별로 출력 토큰에 대응하는 각각의 입력 프레임의 어텐션 가중치 중에서, 어텐션 가중치가 높은 미리 정해진 개수의 입력 프레임의 어텐션 가중치를 선택할 수 있다. 발화 시간 추정 장치는 선택된 어텐션 가중치에 기초하여, 출력 시퀀스에 대응하는 발화 시간을 추정할 수 있다. 발화 시간 추정 장치는 선택된 어텐션 가중치에 대하여 단조 회귀 분석을 수행하여, 출력 시퀀스에 대응하는 발화 시간을 추정할 수 있다.
또한, 발화 시간 추정 장치는 선택된 어텐션 가중치에 기초하여, 제1 어텐션 가중치 행렬을 보정할 수도 있고, 보정된 제1 어텐션 가중치 행렬에 기초하여 출력 시퀀스에 대응하는 발화 시간을 추정할 수도 있다.
발화 시간 추정 장치는 해당 스텝에서 가장 큰 어텐션 가중치만을 선택하지 않고 복수 개의 어텐션 가중치를 선택하기 때문에, 가장 큰 어텐션 가중치가 모든 구간에서 단조 성질을 갖지 않더라도 추후에 전체 구간에서 단조 성질을 갖을 수 있도록 제1 어텐션 가중치 행렬을 보정할 수 있다.
예를 들어, 도면(720)은 도면(710)에서 매 스텝별로 출력 토큰에 대응하는 각각의 입력 프레임의 어텐션 가중치 중에서, 어텐션 가중치가 높은 미리 세 개의 입력 프레임의 어텐션 가중치를 선택한 것을 도시한 도면으로, 빨간색, 초록색, 파란색 순서로 어텐션 가중치가 크다는 것을 의미할 수 있다. 어텐션 가중치가 가장 큰 입력 프레임이 전 구간에서 단조 성질을 만족하지 못한 경우, 발화 시간 추정 장치는 단조 성질을 만족하지 못한 구간에 대해서는 다음 순서의 어텐션 가중치를 사용하여 전 구간에서 단조 성질을 만족하도록 보정할 수 있다.
발화 시간 추정 장치의 확산 모듈(343)을 통해 제1 어텐션 가중치 행렬에 디퓨젼(diffusion) 보정을 수행할 수 있다. 발화 시간 추정 장치는 출력 토큰에 대응하는 단위 입력 프레임이 아닌, 연속하는 입력 프레임 구간을 구하기 위하여 제1 어텐션 가중치 행렬에 디퓨젼 보정을 수행할 수 있다. 예를 들어, 발화 시간 추정 장치는 제1 어텐션 가중치 행렬에 디퓨젼 보정을 수행 후, 미리 정의된 임계값을 넘는 연속된 구간을 출력 토큰에 대응하는 입력 프레임 구간으로 결정할 수 있다. 디퓨젼 보정은, 예를 들어 제1 어텐션 가중치 행렬에 자신의 전치 행렬(transposed matrix)을 곱하는 행위일 수 있다. 디퓨젼 보정을 통해 하얀색에 가까운 어텐션 가중치와 검정색에 가까운 어텐션 가중치의 경계를 보다 명확하게 할 수 있다.
나아가, 발화 시간 추정 장치는 해당 스텝에서 가장 큰 어텐션 가중치만을 선택하지 않고 복수 개의 어텐션 가중치를 선택하기 때문에, 하나의 출력 토큰에 복수개의 입력 프레임을 매핑함으로써 추정의 정확도를 향상시킬 수 있다.
도 8a는 일 실시예에 따른 발화 시간 추정 결과를 도시한 도면이다.
도 8a를 참조하면, 일 실시예에 따른 발화 시간 추정 장치는 도면(810)과 같이 출력 시퀀스(830)에 대응하는 입력 시퀀스(820)를 매핑할 수 있다.
발화 시간 추정 장치는 도면(810)과 같이 출력 시퀀스(830)를 구성하는 출력 토큰들의 발화 시점을 추정할 수 있다. 또한, 발화 시간 추정 장치는 출력 시퀀스(830)를 구성하는 출력 토큰들의 발화 시점 및 종점을 포함하는 발화 시간을 추정할 수도 있다.
도 8b는 발화 시간 추정 결과를 활용하는 예시를 도시한 도면이다.
도 8b를 참조하면, 발화 시간 추정 장치는 음성 녹음기에 활용될 수 있다. 보다 구체적으로, 발화 시간 추정 장치를 포함하는 음성 인식 장치는 녹음된 음성에 대하여 텍스트 인식하고, 인식 결과를 녹음 음성의 파형에 매칭하여 해당 시간과 함께 사용자에게 제공할 수 있다. 나아가, 음성 인식 장치는 음성에 맞추어 발화되고 있는 단어를 하이라이트하여 보여줄 수 있으며, 사용자가 특정 문자를 선택하는 입력에 반응하여, 선택된 문자에 대응하는 음성이 녹음된 구간으로 점프하여 해당 음성을 재생할 수도 있다. 또한, 발화 시간 추정 장치는 음성 녹음기 뿐만 아니라 스마트 스피커, 동영상, 영화 등 음성 인식을 수행하는 모든 분야에서 적용될 수 있다.
도 9a 내지 도 9b는 일 실시예에 따른 어텐션 기반 시퀀스 투 시퀀스 모델을 학습하는 방법을 설명하기 위한 도면이다.
도 9a를 참조하면, 일 실시예에 따른 음성 인식 장치는 복수의 어텐션 가중치 행렬들 중에서 특정 행렬(910)이 제1 어텐션 가중치 행렬이 되도록 어텐션 기반 시퀀스 투 시퀀스 모델을 학습할 수 있다. 음성 인식 장치는 학습 시부터 특정 어텐션 레이어의 어텐션 가중치 행렬(910)이 단조 성질을 갖도록 가이드하여 학습할 수 있고, 추후에 단조 회귀 분석 등을 통하여 제1 어텐션 가중치 행렬을 선택하는 동작 없이 학습된 어텐션 가중치 행렬을 이용하여 출력 시퀀스에 대응하는 발화 시간을 추정할 수 있다. 구체적으로, 음성 인식 장치는 특정 행렬(910)에 대응하는 어텐션 레이어를 마스킹하고 어텐션 기반 시퀀스 투 시퀀스 모델을 학습할 수 있다.
도 9b를 참조하면, 일 실시예에 따른 음성 인식 장치는 제1 어텐션 가중치 행렬 선택 모듈 대신에 단조 어텐션 가이드 모듈(950)을 포함할 수 있다. 단조 어텐션 가이드 모듈(950)은 학습 시부터 특정 어텐션 레이어의 어텐션 가중치 행렬(910)이 단조 성질을 갖도록 가이드하여 학습할 수 있고, 추후에는 단조 회귀 분석 모듈(941)에게 학습된 특정 어텐션 레이어의 어텐션 가중치 행렬(910)을 알려주어, 해당 행렬을 이용하여 출력 시퀀스에 대응하는 발화 시간을 추정할 수 있도록 할 수 있다.
단조 어텐션 가이드 모듈(950)은 특정 행렬(910)이 강한 단조(hard monotonic) 성질을 가지게 하게 강제할 수도 있고, 또는 일정하게 대각선 가중치들에 가중치를 두어 부드러운 단조(soft monotonic) 성질을 갖도록 학습할 수도 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.

Claims (25)

  1. 어텐션 기반 시퀀스 투 시퀀스 모델에서의 발화 시간 추정 방법에 있어서,
    복수의 어텐션 가중치 행렬(attention weight matrix)들을 획득하는 단계;
    상기 복수의 어텐션 가중치 행렬들 중 제1 어텐션 가중치 행렬을 선택하는 단계; 및
    상기 제1 어텐션 가중치 행렬에 기초하여, 출력 시퀀스에 대응하는 발화 시간을 추정하는 단계
    를 포함하는 발화 시간 추정 방법.
  2. 제1항에 있어서,
    상기 선택하는 단계는
    상기 복수의 어텐션 가중치 행렬들에 대하여 단조 회귀 분석(monotonic regression analysis)을 수행하여, 상기 제1 어텐션 가중치 행렬을 선택하는 단계
    를 포함하는, 발화 시간 추정 방법.
  3. 제1항에 있어서,
    상기 추정하는 단계는
    상기 제1 어텐션 가중치 행렬에 단조 회귀 분석을 수행하여, 상기 출력 시퀀스에 대응하는 발화 시간을 추정하는 단계
    를 포함하는, 발화 시간 추정 방법.
  4. 제1항에 있어서,
    상기 제1 어텐션 가중치 행렬은
    상기 출력 시퀀스를 구성하는 각각의 출력 토큰에 대해서, 입력 시퀀스를 구성하는 각각의 입력 프레임의 어텐션 가중치를 원소로 갖고,
    상기 추정하는 단계는
    상기 각각의 출력 토큰에 대응하는 상기 각각의 입력 프레임의 어텐션 가중치 중에서, 상기 어텐션 가중치가 높은 미리 정해진 개수의 입력 프레임의 어텐션 가중치를 선택하는 단계; 및
    상기 선택된 어텐션 가중치에 기초하여, 상기 출력 시퀀스에 대응하는 발화 시간을 추정하는 단계
    를 포함하는, 발화 시간 추정 방법.
  5. 제4항에 있어서,
    상기 발화 시간을 추정하는 단계는
    상기 선택된 어텐션 가중치에 기초하여, 상기 제1 어텐션 가중치 행렬을 보정하는 단계; 및
    상기 보정된 제1 어텐션 가중치 행렬에 기초하여, 상기 출력 시퀀스에 대응하는 발화 시간을 추정하는 단계
    를 포함하는, 발화 시간 추정 방법.
  6. 제1항에 있어서,
    상기 추정하는 단계는
    상기 제1 어텐션 가중치 행렬에 디퓨젼(diffusion) 보정을 수행하는 단계; 및
    상기 보정된 제1 어텐션 가중치 행렬에 기초하여, 상기 출력 시퀀스에 대응하는 발화 시간을 추정하는 단계
    를 포함하는, 발화 시간 추정 방법.
  7. 제1항에 있어서,
    상기 제1 어텐션 가중치 행렬은
    상기 출력 시퀀스를 구성하는 각각의 출력 토큰에 대해서, 입력 시퀀스를 구성하는 각각의 입력 프레임의 어텐션 가중치를 원소로 갖고,
    상기 추정하는 단계는
    상기 각각의 출력 토큰에 대응하는 상기 각각의 입력 프레임의 어텐션 가중치 중에서, 상기 어텐션 가중치가 높은 미리 정해진 개수의 입력 프레임의 어텐션 가중치를 선택하는 단계;
    상기 선택된 어텐션 가중치에 기초하여, 상기 제1 어텐션 가중치 행렬에 디퓨젼 보정을 수행하는 단계; 및
    상기 디퓨젼 보정된 제1 어텐션 가중치 행렬에 기초하여, 상기 출력 시퀀스에 대응하는 발화 시간을 추정하는 단계
    를 포함하는, 발화 시간 추정 방법.
  8. 제1항에 있어서,
    상기 복수의 어텐션 가중치 행렬들의 수는
    상기 어텐션 기반 시퀀스 투 시퀀스 모델의 어텐션 레이어 수와 디코더 레이어 수의 곱에 해당하는, 발화 시간 추정 방법.
  9. 제1항에 있어서,
    상기 복수의 어텐션 가중치 행렬들 중에서 특정 행렬이 상기 제1 어텐션 가중치 행렬이 되도록 상기 어텐션 기반 시퀀스 투 시퀀스 모델을 학습하는 단계
    를 더 포함하는, 발화 시간 추정 방법.
  10. 제9항에 있어서,
    상기 학습하는 단계는
    상기 특정 행렬에 대응하는 어텐션 레이어를 마스킹하고 상기 어텐션 기반 시퀀스 투 시퀀스 모델을 학습하는 단계
    를 포함하는, 발화 시간 추정 방법.
  11. 입력 시퀀스를 수신하는 단계;
    상기 입력 시퀀스를 인코딩하여 인코딩된 특징을 생성하는 단계;
    적어도 하나의 어텐션 레이어 별로 상기 입력 시퀀스를 구성하는 각각의 입력 프레임의 어텐션 가중치를 계산하는 단계;
    상기 인코딩된 특징 및 상기 어텐션 가중치에 기초하여 매 스텝 별로 출력 시퀀스를 구성하는 출력 토큰을 추정하는 단계;
    상기 어텐션 가중치에 기초하여, 상기 어텐션 레이어 별로 상기 출력 토큰에 대응하는 입력 프레임을 결정하는 단계; 및
    상기 출력 토큰에 대응하는 입력 프레임에 기초하여, 상기 출력 시퀀스에 대응하는 발화 시간을 추정하는 단계
    를 포함하는 발화 시간 추정 방법.
  12. 제11항에 있어서,
    상기 발화 시간을 추정하는 단계는
    상기 출력 토큰에 대응하는 입력 프레임에 기초하여 상기 어텐션 레이어 별 어텐션 가중치 행렬들을 획득하는 단계;
    상기 어텐션 레이어 별 어텐션 가중치 행렬들 중 단조 성질에 대응하는 제1 어텐션 가중치 행렬을 선택하는 단계; 및
    상기 제1 어텐션 가중치 행렬에 기초하여, 출력 시퀀스에 대응하는 상기 발화 시간을 추정하는 단계
    를 포함하는 발화 시간 추정 방법.
  13. 하드웨어와 결합되어 제1항 내지 제12항 중 어느 하나의 항의 방법을 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램.
  14. 어텐션 기반 시퀀스 투 시퀀스 모델에서의 발화 시간 추정 장치에 있어서,
    복수의 어텐션 가중치 행렬(attention weight matrix)들을 획득하고, 상기 복수의 어텐션 가중치 행렬들 중 제1 어텐션 가중치 행렬을 선택하고, 상기 제1 어텐션 가중치 행렬에 기초하여, 출력 시퀀스에 대응하는 발화 시간을 추정하는 프로세서
    를 포함하는 발화 시간 추정 장치.
  15. 제14항에 있어서,
    상기 프로세서는
    상기 복수의 어텐션 가중치 행렬들에 대하여 단조 회귀 분석을 수행하여, 상기 제1 어텐션 가중치 행렬을 선택하는, 발화 시간 추정 장치.
  16. 제14항에 있어서,
    상기 프로세서는
    상기 제1 어텐션 가중치 행렬에 단조 회귀 분석을 수행하여, 상기 출력 시퀀스에 대응하는 발화 시간을 추정하는, 발화 시간 추정 장치.
  17. 제14항에 있어서,
    상기 제1 어텐션 가중치 행렬은
    상기 출력 시퀀스를 구성하는 각각의 출력 토큰에 대해서, 입력 시퀀스를 구성하는 각각의 입력 프레임의 어텐션 가중치를 원소로 갖고,
    상기 프로세서는
    상기 각각의 출력 토큰에 대응하는 상기 각각의 입력 프레임의 어텐션 가중치 중에서, 상기 어텐션 가중치가 높은 미리 정해진 개수의 입력 프레임의 어텐션 가중치를 선택하고, 상기 선택된 어텐션 가중치에 기초하여, 상기 출력 시퀀스에 대응하는 발화 시간을 추정하는, 발화 시간 추정 장치.
  18. 제17항에 있어서,
    상기 프로세서는
    상기 선택된 어텐션 가중치에 기초하여, 상기 제1 어텐션 가중치 행렬을 보정하고, 상기 보정된 제1 어텐션 가중치 행렬에 기초하여, 상기 출력 시퀀스에 대응하는 발화 시간을 추정하는, 발화 시간 추정 장치.
  19. 제14항에 있어서,
    상기 프로세서는
    상기 제1 어텐션 가중치 행렬에 디퓨젼(diffusion) 보정을 수행하고, 상기 보정된 제1 어텐션 가중치 행렬에 기초하여, 상기 출력 시퀀스에 대응하는 발화 시간을 추정하는, 발화 시간 추정 장치.
  20. 제14항에 있어서,
    상기 제1 어텐션 가중치 행렬은
    상기 출력 시퀀스를 구성하는 각각의 출력 토큰에 대해서, 입력 시퀀스를 구성하는 각각의 입력 프레임의 어텐션 가중치를 원소로 갖고,
    상기 프로세서는
    상기 각각의 출력 토큰에 대응하는 상기 각각의 입력 프레임의 어텐션 가중치 중에서, 상기 어텐션 가중치가 높은 미리 정해진 개수의 입력 프레임의 어텐션 가중치를 선택하고, 상기 선택된 어텐션 가중치에 기초하여, 상기 제1 어텐션 가중치 행렬에 디퓨젼 보정을 수행하고, 상기 디퓨젼 보정된 제1 어텐션 가중치 행렬에 기초하여, 상기 출력 시퀀스에 대응하는 발화 시간을 추정하는, 발화 시간 추정 장치.
  21. 제14항에 있어서,
    상기 복수의 어텐션 가중치 행렬들의 수는
    상기 어텐션 기반 시퀀스 투 시퀀스 모델의 어텐션 레이어 수와 디코더 레이어 수의 곱에 해당하는, 발화 시간 추정 장치.
  22. 제14항에 있어서,
    상기 프로세서는
    상기 복수의 어텐션 가중치 행렬들 중에서 특정 행렬이 상기 제1 어텐션 가중치 행렬이 되도록 상기 어텐션 기반 시퀀스 투 시퀀스 모델을 학습하는, 발화 시간 추정 장치.
  23. 제22항에 있어서,
    상기 프로세서는
    상기 특정 행렬에 대응하는 어텐션 레이어를 마스킹하고 상기 어텐션 기반 시퀀스 투 시퀀스 모델을 학습하는, 발화 시간 추정 장치.
  24. 입력 시퀀스를 수신하는 적어도 하나의 센서; 및
    상기 입력 시퀀스를 인코딩하여 인코딩된 특징을 생성하고, 적어도 하나의 어텐션 레이어 별로 상기 입력 시퀀스를 구성하는 각각의 입력 프레임의 어텐션 가중치를 계산하고, 상기 인코딩된 특징 및 상기 어텐션 가중치에 기초하여 매 스텝 별로 출력 시퀀스를 구성하는 출력 토큰을 추정하고, 상기 어텐션 가중치에 기초하여, 상기 어텐션 레이어 별로 상기 출력 토큰에 대응하는 입력 프레임을 결정하고, 상기 출력 토큰에 대응하는 입력 프레임에 기초하여, 상기 출력 시퀀스에 대응하는 발화 시간을 추정하는 프로세서
    를 포함하는 모바일 장치.
  25. 제24항에 있어서,
    상기 프로세서는
    상기 출력 토큰에 대응하는 입력 프레임에 기초하여 상기 어텐션 레이어 별 어텐션 가중치 행렬들을 획득하고, 상기 어텐션 레이어 별 어텐션 가중치 행렬들 중 단조 성질에 대응하는 제1 어텐션 가중치 행렬을 선택하고, 상기 제1 어텐션 가중치 행렬에 기초하여, 출력 시퀀스에 대응하는 상기 발화 시간을 추정하는, 모바일 장치.
KR1020200058322A 2020-05-15 2020-05-15 발화 시간 추정 방법 및 장치 KR20210141115A (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020200058322A KR20210141115A (ko) 2020-05-15 2020-05-15 발화 시간 추정 방법 및 장치
US17/064,879 US20210358493A1 (en) 2020-05-15 2020-10-07 Method and apparatus with utterance time estimation
CN202011216205.5A CN113674733A (zh) 2020-05-15 2020-11-04 用于说话时间估计的方法和设备
EP20209906.5A EP3910625A3 (en) 2020-05-15 2020-11-25 Method and apparatus for utterance time estimation
JP2020201058A JP2021179593A (ja) 2020-05-15 2020-12-03 発話時間推定方法及び装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200058322A KR20210141115A (ko) 2020-05-15 2020-05-15 발화 시간 추정 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20210141115A true KR20210141115A (ko) 2021-11-23

Family

ID=73598008

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200058322A KR20210141115A (ko) 2020-05-15 2020-05-15 발화 시간 추정 방법 및 장치

Country Status (5)

Country Link
US (1) US20210358493A1 (ko)
EP (1) EP3910625A3 (ko)
JP (1) JP2021179593A (ko)
KR (1) KR20210141115A (ko)
CN (1) CN113674733A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023229094A1 (ko) * 2022-05-27 2023-11-30 주식회사 엔씨소프트 행동 예측 방법 및 장치

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022088890A (ja) * 2020-12-03 2022-06-15 富士フイルムビジネスイノベーション株式会社 情報処理装置およびプログラム
GB2613581A (en) 2021-12-06 2023-06-14 Toshiba Kk Systems and methods for speech recognition

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11335333B2 (en) * 2018-07-20 2022-05-17 Google Llc Speech recognition with sequence-to-sequence models

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023229094A1 (ko) * 2022-05-27 2023-11-30 주식회사 엔씨소프트 행동 예측 방법 및 장치

Also Published As

Publication number Publication date
CN113674733A (zh) 2021-11-19
EP3910625A3 (en) 2021-12-01
EP3910625A2 (en) 2021-11-17
US20210358493A1 (en) 2021-11-18
JP2021179593A (ja) 2021-11-18

Similar Documents

Publication Publication Date Title
US20230410796A1 (en) Encoder-decoder models for sequence to sequence mapping
CN110603583B (zh) 语音识别系统和用于语音识别的方法
CN112735373B (zh) 语音合成方法、装置、设备及存储介质
KR102167719B1 (ko) 언어 모델 학습 방법 및 장치, 음성 인식 방법 및 장치
US10714076B2 (en) Initialization of CTC speech recognition with standard HMM
CN111429889A (zh) 基于截断注意力的实时语音识别的方法、装置、设备以及计算机可读存储介质
KR20210141115A (ko) 발화 시간 추정 방법 및 장치
CN110556100A (zh) 端到端语音识别模型的训练方法及系统
CN111640456B (zh) 叠音检测方法、装置和设备
CN111145733B (zh) 语音识别方法、装置、计算机设备和计算机可读存储介质
KR20040088368A (ko) 스위칭 상태 공간 모델들을 갖는 변분 추론을 사용하는음성 인식 방법
KR20210145490A (ko) 어텐션 기반 시퀀스 투 시퀀스 모델의 성능 향상 방법 및 장치
KR20220040050A (ko) 자연어 처리 모델 트레이닝 방법 및 장치와 컴퓨팅 장치
KR20200030789A (ko) 음성 인식 방법 및 장치
CN116341651A (zh) 实体识别模型训练方法、装置、电子设备及存储介质
KR102344218B1 (ko) 음성 인식 시스템 및 음성 인식 시스템의 학습 방법
CN112863486B (zh) 一种基于音素的口语评测方法、装置及电子设备
KR102292921B1 (ko) 언어 모델 학습 방법 및 장치, 음성 인식 방법 및 장치
CN114067793A (zh) 音频处理方法和装置、电子设备及可读存储介质
CN113160801A (zh) 语音识别方法、装置以及计算机可读存储介质
CN112786017B (zh) 语速检测模型的训练方法及装置、语速检测方法及装置
KR102663654B1 (ko) 적응형 시각적 스피치 인식
CN113793591B (zh) 语音合成方法及相关装置和电子设备、存储介质
CN113470617B (zh) 语音识别方法以及电子设备、存储装置
US20240153508A1 (en) End-to-End Speech Recognition Adapted for Multi-Speaker Applications