KR102339716B1 - 음성 인식 방법 및 그 장치 - Google Patents

음성 인식 방법 및 그 장치 Download PDF

Info

Publication number
KR102339716B1
KR102339716B1 KR1020170082985A KR20170082985A KR102339716B1 KR 102339716 B1 KR102339716 B1 KR 102339716B1 KR 1020170082985 A KR1020170082985 A KR 1020170082985A KR 20170082985 A KR20170082985 A KR 20170082985A KR 102339716 B1 KR102339716 B1 KR 102339716B1
Authority
KR
South Korea
Prior art keywords
acoustic model
training
target label
data
voice data
Prior art date
Application number
KR1020170082985A
Other languages
English (en)
Other versions
KR20190002812A (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 KR1020170082985A priority Critical patent/KR102339716B1/ko
Priority to US16/007,508 priority patent/US10930267B2/en
Priority to CN201810685178.2A priority patent/CN109215637B/zh
Publication of KR20190002812A publication Critical patent/KR20190002812A/ko
Application granted granted Critical
Publication of KR102339716B1 publication Critical patent/KR102339716B1/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/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
    • G10L13/00Speech synthesis; Text to speech 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/06Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
    • 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/06Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
    • G10L15/063Training
    • 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/18Speech classification or search using natural language modelling
    • 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
    • G10L17/00Speaker identification or verification techniques
    • G10L17/04Training, enrolment or model building
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/03Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters
    • G10L25/24Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters the extracted parameters being the cepstrum

Landscapes

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

Abstract

인식 대상 언어에 대한 음성 인식 방법이 제공된다. 본 발명의 일 실시예에 따라, 음성 인식 장치에 의해 수행되는 인식 대상 언어에 대한 음성 인식 방법은, 상기 인식 대상 언어에 대한 원본 학습 데이터셋을 획득하되, 상기 원본 학습 데이터셋에 포함된 각각의 원본 학습 데이터는 학습용 음성 데이터 및 상기 학습용 음성 데이터에 대응되는 텍스트 정보를 포함하는 것인, 단계, 상기 각각의 원본 학습 데이터에 포함된 텍스트 정보를 자모(letter) 단위로 분리하여 목표 레이블(target label)를 구성하는 단계 및 상기 각각의 원본 학습 데이터에 포함된 학습용 음성 데이터 및 상기 학습용 음성 데이터에 대응되는 목표 레이블을 학습하여, 심층 신경망(deep neural network) 기반의 음향 모델을 구축하는 단계를 포함하되, 상기 목표 레이블에 포함된 자모 중에서, 상이한 자모는 상기 음향 모델에서 서로 다른 클래스로 정의되고, 동일한 자모라도 배열 위치가 다른 경우 서로 다른 클래스로 정의될 수 있다.

Description

음성 인식 방법 및 그 장치{Method for recognizing speech and Apparatus thereof}
본 발명은 음성 인식 방법 및 그 장치에 관한 것이다. 보다 자세하게는, 단대단(End-to-End) 음성 인식의 정확도 향상을 위해 심층 신경망에 기초한 음향 모델을 구축하고, 구축된 음향 모델을 이용하여 입력된 음성을 인식하는 방법 및 그 방법을 수행하는 장치에 관한 것이다.
음성 인식(speech recognition) 기술이란 인간이 발화한 음성과 같은 음향학적 신호(acoustic speech signal)를 컴퓨팅 장치의 분석을 통해 인식 또는 이해하는 기술을 의미한다. 종래에는, 음성 데이터에서 추출된 주파수 특징 등을 이용하여 음성을 인식하는 방식이 주로 이용되었고, 여기에 은닉 마르코프 모델(Hidden Markov Model; HMM)이 주로 이용되었다. 이러한 HMM 기반의 음성 인식 방식은 음성 데이터로부터 발음을 분석하고, 분석된 발음에 기초하여 단어나 문장을 조합하는 과정을 통해 음성을 인식하게 된다.
최근에는, 딥 러닝(deep learning) 기반의 기계 학습(machine learning) 기술이 성숙됨에 따라, 심층 신경망(deep neural network)으로 구성된 음향 모델을 이용하여, 음성 데이터로부터 발음을 분석하는 과정을 거치지 않고 음성 데이터에서 단어나 문장 등의 텍스트를 직접 인식하는 단대단(End-to-End) 음성 인식 기술에 대한 연구가 활발하게 진행되고 있다.
그러나, 지금까지 제안된 단대단 음성 인식 기술들은, 인식 대상 언어가 자모의 조합으로 하나의 음절을 표현하는 조합형 언어인 경우에도, 조합되는 자음과 모음에 대한 구별 없이 자모(letter) 단위로 구성된 목표 레이블(target label)을 학습에 이용한다. 예를 들어, 한국어 음성을 인식하기 위해, 초성, 중성 및 종성의 배열 위치에 관계 없이 동일한 자모가 클래스로 정의된 목표 레이블을 학습하여 음향 모델을 구축하게 된다. 그러나, 이와 같이 구축된 음향 모델에는 초성, 중성 및 종성의 조합으로 음절이 구성되는 인식 대상 언어의 구조적 특성이 반영될 수 없기 때문에, 음성 인식의 정확도가 떨어진다는 문제점이 있다.
따라서, 단대단 음성 인식의 정확도를 향상시키기 위해, 인식 대상 언어의 구조적 특성을 반영하여, 음향 모델을 학습하는 음성 인식 방법이 요구되고 있다.
한국공개특허 제2016-0122564호 (2016.10.24 공개)
본 발명이 해결하고자 하는 기술적 과제는, 심층 신경망 기반의 음향 모델을 이용하여 음성 인식을 수행하는 방법 및 그 방법을 수행하는 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 다른 기술적 과제는, 인식 대상 언어의 구조적 특성을 반영하여 심층 신경망 기반의 음향 모델을 학습하는 방법 및 그 방법을 수행하는 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 또 다른 기술적 과제는, 인식 대상 언어의 구조적 특성을 반영한 학습 데이터셋을 생성하는 방법 및 그 방법을 수행하는 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 또 다른 기술적 과제는, 인식 대상 언어의 구조적 특성이 반영된 학습 데이터셋을 이용하여, 효과적으로 심층 신경망 기반의 음향 모델을 학습할 수 있는 방법 및 그 방법을 수행하는 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 또 다른 기술적 과제는, 인식 대상 언어의 구조적 특성이 반영된 복수의 학습 데이터셋을 이용하여, 각 인식 대상 언어에 적합한 최적의 음향 모델을 구축하는 방법 및 그 방법을 수행하는 장치를 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명의 기술분야에서의 통상의 기술자에게 명확하게 이해 될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한, 본 발명의 일 실시예에 따른 음성 인식 방법은, 음성 인식 장치에 의해 수행되는 인식 대상 언어에 대한 음성 인식 방법에 있어서, 상기 인식 대상 언어에 대한 원본 학습 데이터셋을 획득하되, 상기 원본 학습 데이터셋에 포함된 각각의 원본 학습 데이터는 학습용 음성 데이터 및 상기 학습용 음성 데이터에 대응되는 텍스트 정보를 포함하는 것인, 단계, 상기 각각의 원본 학습 데이터에 포함된 텍스트 정보를 자모(letter) 단위로 분리하여 목표 레이블(target label)를 구성하는 단계 및 상기 각각의 원본 학습 데이터에 포함된 학습용 음성 데이터 및 상기 학습용 음성 데이터에 대응되는 목표 레이블을 학습하여, 심층 신경망(deep neural network) 기반의 음향 모델을 구축하는 단계를 포함하되, 상기 목표 레이블에 포함된 자모 중에서, 상이한 자모는 상기 음향 모델에서 서로 다른 클래스로 정의되고, 동일한 자모라도 배열 위치가 다른 경우 서로 다른 클래스로 정의될 수 있다.
일 실시예에서, 상기 목표 레이블을 구성하는 단계는, 상기 분리된 자모 중에서, 발음되지 않는 자모를 제거하는 단계를 포함할 수 있다.
일 실시예에서, 상기 목표 레이블에 포함되는 동일 자모 중에서, 발음되는 자모와 발음되지 않는 자모는 상기 음향 모델에서 서로 다른 클래스로 정의될 수 있다.
일 실시예에서, 상기 심층 신경망은, RNN(Recurrent Neural Network), BRNN(Bi-directional RNN), LSTM(Long Short Term Memory), BLSTM(Bi-directional LSTM), GRU(Gated Recurrent Unit), BGRU(Bi-directional GRU) 중 적어도 하나를 포함할 수 있다.
일 실시예에서, 상기 인식 대상 언어는 한국어이고, 상기 목표 레이블에 포함된 동일한 자음 중에서, 배열 위치가 초성인 자음과 배열 위치가 종성인 자음은 상기 음향 모델에서 서로 다른 클래스로 정의될 수 있다.
상술한 기술적 과제를 해결하기 위한 본 발명의 다른 실시예에 따른 음성 인식 방법은, 음성 인식 장치에 의해 수행되는 인식 대상 언어에 대한 음성 인식 방법에 있어서, 상기 인식 대상 언어에 대한 원본 학습 데이터셋을 획득하되, 상기 원본 학습 데이터셋에 포함된 각각의 원본 학습 데이터는 학습용 음성 데이터 및 상기 학습용 음성 데이터에 대응되는 텍스트 정보를 포함하는 것인, 단계, 상기 각각의 원본 학습 데이터에 포함된 텍스트 정보를 자모(letter) 단위로 분리하여 목표 레이블(target label)를 구성하는 단계 및 상기 각각의 원본 학습 데이터에 포함된 학습용 음성 데이터 및 상기 학습용 음성 데이터에 대응되는 목표 레이블을 학습하여, 심층 신경망(deep neural network) 기반의 음향 모델을 구축하는 단계를 포함하되, 상기 목표 레이블에 포함된 자모 중에서, 상이한 자모는 상기 음향 모델에서 서로 다른 클래스로 정의되고, 동일한 자모라도 발음되는 자모와 발음되지 않는 자모가 서로 다른 클래스로 정의될 수 있다.
상술한 기술적 과제를 해결하기 위한 본 발명의 또 다른 실시예에 따른 음성 인식 장치는, 하나 이상의 프로세서, 네트워크 인터페이스, 상기 프로세서에 의하여 수행되는 컴퓨터 프로그램을 로드(Load)하는 메모리 및 상기 컴퓨터 프로그램을 저장하는 스토리지를 포함하되, 상기 컴퓨터 프로그램은, 인식 대상 언어에 대한 원본 학습 데이터셋을 획득하되, 상기 원본 학습 데이터셋에 포함된 각각의 원본 학습 데이터는 학습용 음성 데이터 및 상기 학습용 음성 데이터에 대응되는 텍스트 정보를 포함하는 것인, 오퍼레이션, 상기 각각의 원본 학습 데이터에 포함된 텍스트 정보를 자모(letter) 단위로 분리하여 목표 레이블(target label)를 구성하는 오퍼레이션 및 상기 각각의 원본 학습 데이터에 포함된 학습용 음성 데이터 및 상기 학습용 음성 데이터에 대응되는 목표 레이블을 학습하여, 심층 신경망(deep neural network) 기반의 음향 모델을 구축하는 오퍼레이션을 포함하되, 상기 목표 레이블에 포함된 자모 중에서, 상이한 자모는 상기 음향 모델에서 서로 다른 클래스로 정의되고, 동일한 자모라도 배열 위치가 다른 경우 서로 다른 클래스로 정의될 수 있다.
상술한 기술적 과제를 해결하기 위한 본 발명의 또 다른 실시예에 따른 음성 인식 컴퓨터 프로그램은, 컴퓨팅 장치와 결합되어, 인식 대상 언어에 대한 원본 학습 데이터셋을 획득하되, 상기 원본 학습 데이터셋에 포함된 각각의 원본 학습 데이터는 학습용 음성 데이터 및 상기 학습용 음성 데이터에 대응되는 텍스트 정보를 포함하는 것인, 단계, 상기 각각의 원본 학습 데이터에 포함된 텍스트 정보를 자모(letter) 단위로 분리하여 목표 레이블(target label)를 구성하는 단계 및 상기 각각의 원본 학습 데이터에 포함된 학습용 음성 데이터 및 상기 학습용 음성 데이터에 대응되는 목표 레이블을 학습하여, 심층 신경망(deep neural network) 기반의 음향 모델을 구축하는 단계를 실행시키되, 상기 목표 레이블에 포함된 자모 중에서, 상이한 자모는 상기 음향 모델에서 서로 다른 클래스로 정의되고, 동일한 자모라도 배열 위치가 다른 경우 서로 다른 클래스로 정의되는 것인, 기록 매체에 저장될 수 있다.
상술한 본 발명에 따르면, 심층 신경망 기반의 학습 모델의 학습 결과에 기초하여, 음성 데이터에 대한 발음 분석 과정 없이 음성 데이터로부터 대응되는 텍스트가 바로 인식되어 출력될 수 있다. 이에 따라, 음성 인식을 위한 전체적인 프로세스가 단순화될 수 있다.
또한, 인식 대상 언어의 구조적 특성이 반영된 학습 데이터셋이 생성될 수 있다. 예를 들어, 인식 대상 언어가 한국어와 같은 조합형 언어인 경우 초성, 중성 및 종성의 배열 위치에 따라 서로 다른 클래스로 정의되도록 목표 레이블이 구성될 수 있다. 이에 따라, 심층 신경망 기반의 음향 모델에 인식 대상 언어의 구조적 특성이 학습될 수 있고, 상기 인식 대상 언어에 대한 음성 인식의 정확도가 향상될 수 있다.
또한, 상기 음향 모델의 예측 결과로 배열 위치가 구분되는 목표 레이블이 출력되기 때문에, 디코딩 단계에서 초성, 중성 및 종성의 배열 위치를 고려하여 후보 단어가 추출될 수 있다. 이에 따라, 후보 단어의 수가 감소되는 바, 디코딩 단계의 복잡도가 감소되는 효과가 있다.
또한, 상기 음향 모델을 학습하기 위해 CTC 기법이 이용됨에 따라, 발음 시간의 차이가 있는 음성 데이터에 대한 음성 인식 또한 효과적으로 수행될 수 있다.
또한, 음향 모델을 구성하는 심층 신경망의 클래스 레이블의 개수가 증가될수록 GPU(Graphic Processing Unit)의 연산량이 증가되도록 제어될 수 있다. 이에 따라, 음향 모델의 학습 성능이 향상되는 효과가 있다.
또한, 서로 다른 목표 레이블로 구성된 복수의 학습 데이터셋을 생성하여, 각각의 학습 데이터셋에 대하여 후보 음향 모델이 구축되고, 평가 과정을 통해 적어도 하나의 음향 모델이 구축될 수 있다. 이에 따라, 인식 대상 언어 별로 구조적 특성이 반영된 최적의 음향 모델이 구축될 수 있는 바, 음성 인식의 정확도가 더욱 향상될 수 있다.
또한, 음향 모델의 평가 과정에서 음성 인식의 정확도가 낮은 테스트 데이터를 선정하고, 선정된 테스트 데이터를 학습 데이터로 이용하여 재학습이 수행될 수 있다. 또한, 상기 선정된 테스트 데이터에 대한 데이터 확장(data augmentation)을 통해 추가적인 학습 데이터가 확보될 수 있다. 이에 따라, 음향 모델의 학습이 효과적으로 수행될 수 있고, 음성 인식의 정확도가 더욱 향상될 수 있다.
본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 음성 인식 시스템의 구성도이다.
도 2는 본 발명의 실시예에 따른 음성 인식 장치의 입력 및 출력 데이터를 설명하기 위한 도면이다.
도 3은 본 발명의 다른 실시예에 따른 음성 인식 장치를 나타내는 블록도이다.
도 4 및 도 5는 음성 인식 장치의 일 구성 요소인 목표 레이블 구성부를 설명하기 위한 도면이다.
도 6a 및 도 6b는 본 발명의 몇몇 실시예에서, 음향 모델 구성에 이용될 수 있는 심층 신경망의 예시도이다.
도 7은 음성 인식 장치의 일 구성 요소인 디코딩부를 설명하기 위한 도면이다.
도 8은 본 발명의 또 다른 실시예에 따른 음성 인식 장치의 하드웨어 구성도이다.
도 9 및 도 10은 본 발명의 또 다른 실시예에 따른 음성 인식 방법을 설명하기 위한 흐름도이다.
도 11은 본 발명의 몇몇 실시예에서 참조될 수 있는 최적의 음향 모델 구축 방법을 설명하기 위한 도면이다.
도 12는 본 발명의 몇몇 실시예에서 참조될 수 있는 음향 모델 학습 방법을 설명하기 위한 도면이다.
도 13은 목표 레이블 구성에 따른 성능 실험 결과를 나타내는 도면이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
명세서에서 사용되는 "포함한다 (comprises)" 및/또는 "포함하는 (comprising)"은 언급된 구성 요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
본 명세서에 대한 설명에 앞서, 본 명세서에서 사용되는 몇몇 용어들에 대하여 명확하게 하기로 한다.
본 명세서에서, 음향 모델이란 소리를 발음 또는 단어로 조합하기 위한 통계적인 패턴 정보들을 나타내는 모델을 의미한다. 다만, 단대단 음성 인식을 위해 본 발명의 실시예에 따라 구축된 심층 신경망 기반의 음향 모델은 소리를 발음으로 변환하는 과정을 거치지 않고, 직접 텍스트로 출력하는 모델로 이행될 수 있다.
본 명세서에서, 손실 함수(loss function)란 학습 모델의 예측 값과 목표 값의 손실(loss)을 구하는 함수를 의미한다. 단대단 음성 인식의 경우, 음성 데이터를 입력으로 하는 심층 신경망 기반의 음향 모델의 예측 값과 목표 레이블 사이의 손실이 산출되고, 이를 최소화하는 방향으로 학습이 수행된다.
본 명세서에서, 디코딩(decoding)이란 음향 모델의 확률 통계적 결과를 고려하여 최종 텍스트 출력하기 위해 자모, 음절, 어절 등을 조합하는 과정을 의미한다.
본 명세서에서, 목표 레이블(target label)이란 음성 데이터를 인식한 결과 데이터를 의미한다. 본 발명의 실시예에 따라 구축된 심층 신경망 기반의 학습 모델은, 음성 데이터 및 이에 대응되는 목표 레이블로 구성된 학습 데이터를 학습하고, 인식 대상 음성 데이터가 입력되면 예측된 목표 레이블을 출력하게 된다.
이하, 본 발명의 몇몇 실시예들에 대하여 첨부된 도면에 따라 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 음성 인식 시스템의 구성도이다.
도 1을 참조하면, 음성 인식 시스템은 사용자 단말(200) 및 음성 인식 장치(100)를 포함할 수 있다. 단, 이는 본 발명의 목적을 달성하기 위한 바람직한 실시예일 뿐이며, 필요에 따라 일부 구성 요소가 추가되거나 삭제될 수 있음은 물론이다. 또한, 도 1에 도시된 음성 인식 시스템의 각각의 구성 요소들은 기능적으로 구분되는 기능 요소들을 나타낸 것으로서, 적어도 하나의 구성 요소가 실제 물리적 환경에서는 서로 통합되는 형태로 구현될 수도 있음에 유의한다. 예를 들어, 도 1에는 음성 인식 장치(100)가 일종의 서버 장치인 것으로 도시되어 있으나, 실시예에 따라 음성 인식 장치(100)의 각 기능은 사용자 단말(200)에 내장되는 형태로 구현될 수 있다.
상기 음성 인식 시스템에서, 사용자 단말(200)은 사용자로부터 음성 신호를 입력 받고, 음성 인식 장치(100)에 의해 인식된 인식 결과를 제공하는 단말이다. 도 1에서, 사용자 단말(200)은 스마트 폰인 것으로 도시되어 있으나, 어떠한 장치로 구현되더라도 무방하다.
상기 음성 인식 시스템에서, 음성 인식 장치(100)는 음성 데이터(10)를 입력 받고 인식 결과(30)를 제공하는 컴퓨팅 장치이다. 여기서, 음성 데이터란 음성 신호를 웨이브(wave) 형태로 나타낸 웨이브 파일, 상기 웨이브 파일을 주파수 형태로 나타낸 스펙트로그램(spectrogram), MFCC(Mel-Frequency Cepstral Coefficient) 등을 모두 포함하는 포괄적인 의미이다. 또한, 상기 컴퓨팅 장치는, 노트북, 데스크톱(desktop), 랩탑(laptop), 스마트폰(smart phone) 등이 될 수 있으나, 이에 국한되는 것은 아니며 연산 수단이 구비된 모든 종류의 장치를 포함할 수 있다.
본 발명의 실시예에 따르면, 단대단 음성 인식을 제공하기 위해, 음성 인식 장치(100)는 심층 신경망으로 구성된 음향 모델을 구축하고, 상기 구축된 음향 모델을 이용하여 음성 데이터(10)에 대한 인식 결과(30)를 제공할 수 있다. 여기서, 상기 심층 신경망은 예를 들어 RNN(Recurrent Neural Network), BRNN(Bi-directional RNN), LSTM(Long Short Term Memory), BLSTM(Bi-directional LSTM), GRU(Gated Recurrent Unit), BGRU(Bi-directional GRU) 등이 될 수 있으나, 이에 한정되는 것은 아니다.
또한, 본 발명의 실시예에 따르면, 음성 인식 장치(100)는 원본 학습 데이터셋에 포함된 텍스트로부터 인식 대상 언어의 구조적 특성이 반영되도록 목표 레이블을 구성하고, 원본 학습 데이터셋에 포함된 학습용 음성 데이터 및 대응되는 목표 레이블을 이용하여, 음향 모델에 대한 학습을 수행할 수 있다. 이에 따라, 인식 대상 언어의 구조적 특성을 학습한 심층 신경망 기반의 음향 모델이 구축될 수 있고, 단대단 음성 인식의 정확도가 향상될 수 있다. 이에 대한 자세한 설명은 도 4 내지 도 7을 참조하여 후술하도록 한다.
지금까지, 도 1을 참조하여 본 발명의 일 실시예에 따른 음성 인식 시스템에 대하여 설명하였다. 다음으로, 본 발명의 실시예에 따른 음성 인식 장치(100)의 구성 및 동작에 대하여 도 2 내지 도 8을 참조하여 설명한다.
먼저, 이해의 편의를 제공하기 위해, 음성 인식 장치(100)의 입력 및 출력 데이터의 예에 대하여 도 2를 참조하여 간단하게 살펴보도록 한다.
도 2를 참조하면, "안녕하세요"를 가리키는 음성 데이터(10)가 입력되면, 음성 인식 장치(100)는 음성 데이터(10)에 대한 인식 결과(30a, 30b)를 출력할 수 있다. 여기서, 인식 결과(30a)는 상술한 음향 모델에 의해 예측된 목표 레이블의 예를 도시하고, 인식 결과(30b)는 상기 예측된 목표 레이블을 기초로 디코딩된 최종 텍스트를 도시한다. 여기서, 음성 인식 장치(100)는 상기 목표 레이블에서 최종 텍스트를 도출하기 위해, 기 정의된 단어 사전을 활용할 수 있다. 이에 대한 설명은 도 7을 참조하여 후술하도록 한다.
이하, 도 3을 참조하여, 본 발명의 실시예에 따른 음성 인식 장치(100)의 블록도에 대하여 설명하도록 한다.
도 3을 참조하면, 음성 인식 장치(100)는 학습 데이터 획득부(110), 목표 레이블 구성부(120), 음향 모델 구축부(130), 음성 입력부(150), 목표 레이블 예측부(160) 및 디코딩부(170)를 포함할 수 있다. 다만, 도 3에는 본 발명의 실시예와 관련 있는 구성요소들만이 도시되어 있다. 따라서, 본 발명이 속한 기술분야의 통상의 기술자라면 도 3에 도시된 구성요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다. 또한, 도 3에 도시된 음성 인식 장치의 각각의 구성 요소들은 기능적으로 구분되는 기능 요소들을 나타낸 것으로서, 적어도 하나의 구성 요소가 실제 물리적 환경에서는 서로 통합되는 형태로 구현될 수도 있음에 유의한다. 이하, 음성 인식 장치(100)의 각 구성 요소에 대하여 설명한다.
학습 데이터 획득부(110)는 목표 레이블 구성에 이용되는 원본 학습 데이터셋을 획득한다. 상기 원본 학습 데이터셋에 포함된 각각의 원본 학습 데이터는 학습용 음성 데이터 및 상기 학습용 음성 데이터에 대응되는 텍스트로 구성될 수 있다. 예를 들어, 원복 학습 데이터는 "안녕하세요"를 가리키는 학습용 음성 데이터 및 텍스트의 쌍으로 구성된 데이터일 수 있다.
학습 데이터 획득부(110)가 원본 학습 데이터셋을 획득하는 방식은 어떠한 방식이더라도 무방하다. 예를 들어, 학습 데이터 획득부(110)는 로컬 저장소로부터 기 저장된 원본 학습 데이터셋을 획득할 수 있고, 외부의 저장소에서 상기 원본 학습 데이터셋을 획득할 수도 있을 것이다.
목표 레이블 구성부(120)는 원본 학습 데이터셋에 포함된 텍스트로부터 인식 대상 언어의 구조적 특성이 반영되도록 목표 레이블을 구성하고, 상기 원본 학습 데이터셋에 포함된 학습용 음성 데이터 및 상기 목표 레이블로 구성된 학습 데이터셋을 생성한다. 예를 들어, 상기 인식 대상 언어가 한국어와 같은 조합형 언어인 경우, 동일한 자모라도 배열 위치에 따라 구별될 수 있도록 목표 레이블이 구성될 수 있다. 이하, 목표 레이블 구성부(120)의 기능에 대해서는 도 4를 참조하여 보다 상세하게 설명하도록 한다.
도 4를 참조하면, 목표 레이블 구성부(120)는 원본 학습 데이터셋(310)에 포함된 텍스트로부터 다양한 종류의 목표 레이블을 구성하고, 원본 학습 데이터셋(310)에 포함된 학습용 음성 데이터 및 상기 구성된 목표 레이블을 포함하는 학습 데이터셋(330, 350, 370, 390)을 생성할 수 있다. 학습 데이터셋(330, 350, 370, 390)은 실제 음향 모델의 학습에 이용되는 학습 데이터셋으로, 각각의 학습 데이터셋은 서로 다른 종류의 목표 레이블로 구성된다.
구체적으로, 목표 레이블 구성부(120)는 원본 학습 데이터셋(310)에 포함된 텍스트를 자모 단위로 분리하고 후술할 방식으로 인식 대상 언어의 구조적 특성이 반영된 4 레벨(이하, 각각의 레벨을 구분하기 위해 "제1 레벨", "제2 레벨", "제3 레벨" 및 "제4 레벨"로 명명함)의 목표 레이블을 구성할 수 있다.
도 4에서, 제1 학습 데이터셋(330)은 원본 학습 데이터셋에 포함된 학습용 음성 데이터 및 제1 레벨 목표 레이블로 구성된 복수의 학습 데이터를 가리키고, 제2, 제3 및 제4 학습 데이터셋(350, 370, 390)은 각각 원본 학습 데이터셋에 포함된 학습용 음성 데이터와 제2, 제3 및 제4 레벨 목표 레이블로 구성된 복수의 학습 데이터를 가리킨다. 이하, 목표 레이블 구성부(120)가 인식 대상 언어의 구조적 특성이 반영되도록 제1 내지 제4 레벨 목표 레이블을 구성하는 방법에 대하여 설명하도록 한다. 또한, 이하에서는 상기 인식 대상 언어는 한국어인 것으로 가정하여 설명하도록 한다. 단, 이는 이해의 편의를 제공하기 위한 것일 뿐이며, 본 발명의 범위가 이에 한정되는 것은 아니다.
학습 데이터(330a)에 포함된 제1 레벨 목표 레이블은 상기 인식 대상 언어를 표현할 수 있는 자모 및 띄어쓰기로 구성될 수 있다. 즉, 목표 레이블 구성부(120)는 학습 데이터(310a)에 포함된 텍스트를 자모 단위 및 띄어쓰기에 따라 분리하여 상기 제1 레벨 목표 레이블을 구성할 수 있다. 여기서, 학습 데이터(330a)의 제1 레벨 목표 레이블에 포함된 자모 중에서, 상이한 자모에 서로 다른 클래스 식별자가 부여됨으로써 심층 신경망 기반의 음향 모델에서 서로 다른 자모가 서로 다른 클래스로 정의될 수 있다. 또한, 띄어쓰기도 자모와 구별되도록 별도의 클래스로 정의될 수 있다.
예를 들어, 도 5에 도시된 바와 같이, 학습 데이터(310a)의 텍스트가 "안녕 반가워요"인 경우, 제1 학습 데이터(330a)의 제1 레벨 목표 레이블은 "ㅇㅏㄴㄴㅕㅇ$ㅂㅏㄴㄱㅏㅇㅝㅇㅛ"로 구성될 수 있다. 여기서, 기호 "$"은 띄어쓰기를 나타낸다.
다른 예를 들어, 인식 대상 언어가 자모 자체가 하나의 글자로 사용되는 영어인 경우, 학습 데이터(310a)의 텍스트가 "nice to meet you"인 경우, 학습 데이터(330a)의 제1 레벨 목표 레이블은 "nice$to$meet$you"로 구성될 수 있다.
다음으로, 학습 데이터(350a)에 포함된 제2 레벨 목표 레이블은 상기 인식 대상 언어를 표현할 수 있는 자모 및 띄어쓰기로 구성될 수 있다. 이때, 동일한 자모로 표현되더라도 발음되는 자모와 발음되지 않는 자모(e.g. 묵음)를 구별하여 학습하기 위해, 발음되는 자모와 발음되지 않는 자모가 서로 다른 클래스로 정의될 수 있다. 즉, 목표 레이블 구성부(120)는 학습 데이터(310a)에 포함된 텍스트 를 자모 단위 및 띄어쓰기에 따라 분리하고 발음되지 않는 자모를 별도로 식별 처리하여 상기 제2 레벨 목표 레이블을 구성할 수 있다. 인식 대상 언어가 한국어인 경우, 발음되지 않는 자모는 배열 위치가 초성인 자음 "ㅇ"을 예로 들 수 있다.
예를 들어, 도 5에 도시된 바와 같이, 학습 데이터(310a)의 텍스트가 "안녕 반가워요"인 경우, 학습 데이터(350a)의 제2 레벨 목표 레이블은 "[ㅇ]ㅏㄴㄴㅕㅇ$ㅂㅏㄴㄱㅏ[ㅇ]ㅝ[ㅇ]ㅛ"로 구성될 수 있다. 여기서, 기호 "[]"은 해당 자모가 묵음이라는 것을 나타낸다.
인식 대상 언어가 영어인 경우, 텍스트에서 "n" 자모 전에 위치하는 "k" 자모, "r" 자모 전에 위치하는 "w", 또는 "n" 자모 전에 위치하는 "g" 등이 묵음으로 처리될 수 있다. 예를 들어, 학습 데이터(310a)의 텍스트가 "i know you are wrong"인 경우, 제2 레벨 목표 레이블은 "i$[k]now$you$are$[w]rong"로 구성될 수 있다. 이외에도 여러가지 묵음 규칙에 의해서 발음되지 않는 자모가 음향 모델에서 다른 클래스로 식별되도록 정의될 수 있다.
다음으로, 학습 데이터(370a)에 포함된 제3 레벨 목표 레이블은 상기 인식 대상 언어를 표현할 수 있는 자모 및 띄어쓰기로 구성될 수 있다. 단, 학습 데이터(330a)에 포함된 제1 레벨 목표 레이블과는 다르게, 상이한 자모에 서로 다른 클래스 식별자가 부여되고, 동일한 자모라도 배열 위치에 따라 서로 다른 클래스 식별자가 부여될 수 있다. 예를 들어, 인식 대상 언어가 한국어인 경우, 초성 및 종성의 위치에서 사용되는 자모가 서로 다른 클래스로 정의될 수 있다. 이는, 초성, 중성 및 종성의 조합으로 하나의 음절을 형성하는 한국어의 구조적 특성을 반영하기 위한 것으로 이해될 수 있다. 예를 들어, 동일한 자모 "ㅇ"이라도, 초성에 위치한 자모 "ㅇ"과 종성에 위치한 자모 "ㅇ"에 별도의 클래스 식별자가 부여될 수 있다.
구체적인 예를 들어, 도 5에 도시된 바와 같이, 학습 데이터(310a)의 텍스트가 "안녕 반가워요"인 경우, 학습 데이터(370a)의 제3 레벨 목표 레이블은 "ㅇㅏ<ㄴ>ㄴㅕ<ㅇ>$ㅂㅏ<ㄴ>ㄱㅏㅇㅝㅇㅛ"로 구성될 수 있다. 여기서, 자모 "ㅇ"과 자모 "<ㅇ>" 또는 자모 "ㄴ"과 자모 "<ㄴ>"은 동일한 자모이나 배열 위치가 다르기 때문에 서로 다른 클래스 식별자가 부여된다. 여기서, 기호 "<>"는 배열 위치가 다른 동일 자모를 구별하여 표현하기 위해 이용된 기호이다.
인식 대상 언어가 영어인 경우에도 자모의 배열 위치에 따라 동일한 자모도 별도의 클래스로 정의될 수 있다. 예를 들어, "a", "o" 또는 "u" 자모의 앞에 "c" 자모가 위치하는 하는 경우는 "cake", "cube", "con"과 같이 /k/ 소리로 발음하고, "i", "e", 또는 "y" 자모의 앞에 "c" 자모가 위치하는 경우는 "city", "center", "cycle"과 같이 /s/ 소리로 발음된다. 이와 같이, 자모의 배열 위치에 따라 발음이 달라진다고 규정된 규칙에 따라 자모를 구별하기 위해 서로 다른 클래스 식별자가 부여될 수 있다. 보다 구체적인 예를 들어, "you can buy a cell phone"라는 텍스트는 자모 단위로 분리 후 배열의 위치를 고려하여 "you$can$buy$a$<c>ell$phone"로 제3 레벨 목표 레이블이 구성될 수 있다. 이외에도 자모의 배열 위치에 따라 자모의 소리가 구별되는 규칙에 의해서 자모를 구별하여 다양한 방식으로 목표 레이블이 구성될 수 있을 것이다.
다음으로, 학습 데이터(390a)의 제4 레벨 목표 레이블은 인식하고자 하는 언어를 표현할 수 있는 자모 및 띄어쓰기로 구성될 수 있고, 자모의 발음 여부와 자모의 배열 위치가 모두 구별될 수 있도록 목표 레이블이 구성될 수 있다. 즉, 학습 데이터(350a)에 포함된 제2 레벨 목표 레이블과는 다르게, 상이한 자모에 서로 다른 클래스 식별자가 부여되고, 동일한 자모라도 배열 위치가 다른 경우 서로 다른 클래스 식별자가 부여될 수 있다.
예를 들어, 도 5에 도시된 바와 같이, 학습 데이터(310a)의 텍스트가 "안녕 반가워요"인 경우, 학습 데이터(390a)의 제4 레벨 목표 레이블은 "[ㅇ]ㅏ<ㄴ>ㄴㅕ<ㅇ>$ㅂㅏ<ㄴ>ㄱㅏ[ㅇ]ㅝ[ㅇ]ㅛ"로 구성될 수 있다. 여기서, 자모 "ㅇ"과 자모 "<ㅇ>" 또는 자모 "ㄴ"과 자모 "<ㄴ>"은 동일한 자모이나 배열 위치가 다르기 때문에 서로 다른 클래스 식별자가 부여될 수 있고, 발음되는 자모 "ㅇ"과 발음되지 않는 자모 "[ㅇ]"에도 서로 다른 클래스 식별자가 부여될 수 있다.
인식 대상 언어가 영어인 경우 "i know you can buy a cell phone"라는 텍스트는 자모 단위로 분리 후 묵음과 배열의 위치를 고려하여 "i$[k]now$you$can$buy$a$<c>ell$phone"으로 제4 목표 레이블이 구성될 수 있다.
하기의 표 1은 인식 대상 언어가 한국어 또는 영어인 경우, 각각의 학습 데이터셋의 목표 레이블을 구성할 수 있는 클래스 레이블을 정리한 것이다.
구분 설명 언어 레이블에 대한 클래스
제1 레벨 목표
레이블
자모와 띄어쓰기로 구성 한국어 자모 41개 (ㄱ, ㄲ, ㄳ, ㄴ, ㄵ, ㄶ, ㄷ, ㄸ, ㄹ, ㄺ, ㄻ, ㄼ, ㄽ, ㄾ, ㄿ, ㅀ, ㅁ, ㅂ, ㅃ, ㅄ, ㅅ, ㅆ, ㅇ, ㅈ, ㅉ, ㅊ, ㅋ, ㅌ, ㅍ, ㅎ, ㅏ, ㅐ, ㅑ, ㅒ, ㅓ, ㅔ, ㅕ, ㅖ, ㅗ, ㅘ, ㅙ, ㅚ, ㅛ, ㅜ, ㅝ, ㅞ, ㅟ, ㅠ, ㅡ, ㅢ, ㅣ)
띄어쓰기 1개 ($)
영어 자모 26개 (a, b, c, d, e, f, g, h, I, j, k, i, m, n, o, p, q, r, s, t, u, v, w, x, y, z)
띄어쓰기 1개($)
기호 1개 (')
제2 레벨 목표
레이블
자모와 띄어쓰기로 구성하되, 묵음 규칙에 따라 자모를 구별 한국어 자모 41개 (ㄱ, ㄲ, ㄳ, ㄴ, ㄵ, ㄶ, ㄷ, ㄸ, ㄹ, ㄺ, ㄻ, ㄼ, ㄽ, ㄾ, ㄿ, ㅀ, ㅁ, ㅂ, ㅃ, ㅄ, ㅅ, ㅆ, ㅇ, ㅈ, ㅉ, ㅊ, ㅋ, ㅌ, ㅍ, ㅎ, ㅏ, ㅐ, ㅑ, ㅒ, ㅓ, ㅔ, ㅕ, ㅖ, ㅗ, ㅘ, ㅙ, ㅚ, ㅛ, ㅜ, ㅝ, ㅞ, ㅟ, ㅠ, ㅡ, ㅢ, ㅣ)
자모 묵음 1개 ([ㅇ])
띄어쓰기 1개 ($)
영어 자모 26개 (a, b, c, d, e, f, g, h, I, j, k, i, m, n, o, p, q, r, s, t, u, v, w, x, y, z)
자모 묵음 n개 ([k], [w], [g], [p] 그 외 묵음 규칙에 따라 추가 가능함)
띄어쓰기 1개($)
기호 1개 (')
제3 레벨 목표
레이블
자모와 띄어쓰기로 구성하되, 배열 위치에 따라 자모를 구별 한국어 초성 자모 19개 (ㄱ, ㄲ, ㄴ, ㄷ, ㄸ, ㄹ, ㅁ, ㅂ, ㅃ, ㅅ, ㅆ, ㅇ, ㅈ, ㅉ, ㅊ, ㅋ, ㅌ, ㅍ, ㅎ)
중성 자모 21개(ㅏ, ㅐ, ㅑ, ㅒ, ㅓ, ㅔ, ㅕ, ㅖ, ㅗ, ㅘ, ㅙ, ㅚ, ㅛ, ㅜ, ㅝ, ㅞ, ㅟ, ㅠ, ㅡ, ㅢ, ㅣ)
종성 자모 27개([ㄱ], [ㄲ], ㄳ, [ㄴ], ㄵ, ㄶ, [ㄷ], [ㄹ], ㄺ, ㄻ, ㄼ, ㄽ, ㄾ, ㄿ, ㅀ, [ㅁ], [ㅂ], ㅄ, [ㅅ], [ㅆ], [ㅇ], [ㅈ], [ㅊ], [ㅋ], [ㅌ], [ㅍ], [ㅎ])
띄어쓰기 1개 ($)
영어 자모 26개 (a, b, c, d, e, f, g, h, I, j, k, i, m, n, o, p, q, r, s, t, u, v, w, x, y, z)
추가 구별되는 자모 n개([c], [g] 그 외 발음 규칙에 따라 추가 가능)
띄어쓰기 1개($)
기호 1개 (')
제4 레벨 목표
레이블
자모와 띄어쓰기로 구성하되, 묵음 규칙 및 배열 위치에 따라 자모를 구별 한국어 초성 자모 18개 (ㄱ, ㄲ, ㄴ, ㄷ, ㄸ, ㄹ, ㅁ, ㅂ, ㅃ, ㅅ, ㅆ, ㅈ, ㅉ, ㅊ, ㅋ, ㅌ, ㅍ, ㅎ)
중성 자모 21개(ㅏ, ㅐ, ㅑ, ㅒ, ㅓ, ㅔ, ㅕ, ㅖ, ㅗ, ㅘ, ㅙ, ㅚ, ㅛ, ㅜ, ㅝ, ㅞ, ㅟ, ㅠ, ㅡ, ㅢ, ㅣ)
종성 자모 27개(<ㄱ>, <ㄲ>, ㄳ, <ㄴ>, ㄵ, ㄶ, <ㄷ>, <ㄹ>, ㄺ, ㄻ, ㄼ, ㄽ, ㄾ, ㄿ, ㅀ, <ㅁ>, <ㅂ>, ㅄ, <ㅅ>, <ㅆ>, <ㅇ>, <ㅈ>, <ㅊ>, <ㅋ>, <ㅌ>, <ㅍ>, <ㅎ>)
자모 묵음 1개 ([ㅇ])
띄어쓰기 1개 ($)
영어 자모 26개 (a, b, c, d, e, f, g, h, I, j, k, i, m, n, o, p, q, r, s, t, u, v, w, x, y, z)
추가 구별되는 자모 n개(<c>, <g> 그 외 발음 규칙에 따라 추가 가능)
자모 묵음 n개 ([k], [w], [g], [p] 그 외 묵음 규칙에 따라 추가 가능)
띄어쓰기 1개($)
기호 1개 (')
다시 도 3을 참조하여, 음성 인식 장치(100)의 다른 구성 요소에 대한 설명을 이어가도록 한다.
음향 모델 구축부(130)는 목표 레이블 구성부(120)에 의해 생성된 적어도 하나의 학습 데이터셋을 학습하여, 심층 신경망으로 기반의 음향 모델(140)을 구축한다. 여기서, 심층 신경망은 RNN, BRNN, LSTM, BLSTM, GRU, BGRU 등이 될 수 있으나, 이에 한정되는 것은 아니다.
상기 RNN은 입력 데이터들의 시계열적 순서를 효과적으로 학습하기 위해 순환적으로 연결된 신경망 모델로, 음성 데이터 또한 시계열적 순서를 갖는 데이터이기 때문에 음성 인식에 대한 학습을 효과적으로 수행할 수 있다. 또한, 상기 BRNN은 양방향으로 입력 데이터들의 시계열적 순서를 학습하기 위해 변형된 RNN 모델로 학습하는 방향에 따라 포워드 레이어(forward layer)와 백워드 레이어(backward layer)를 포함하는 신경망 모델이다. 상기 RNN과 상기 BRNN의 신경망 구성은 도 6a 및 도 6b를 참조하도록 한다.
또한, LSTM, BLSTM, GRU, BGRU도 RNN의 변형에 해당하는 신경망 모델이다. 상술한 신경망 모델은 당해 기술 분야에 널리 알려진 것들인 바 더 이상의 설명은 생략하도록 한다.
본 발명의 실시예에 따르면, 음향 모델 구축부(130)는 CTC(Connectionist Temporal Classification) 기법을 이용하여 심층 신경망의 가중치를 갱신하는 방식으로 음향 모델(140)에 대한 학습을 수행할 수 있다. CTC 기법은 음성 데이터의 발음 시간이 고려된 손실 함수를 이용하기 때문에, 발음 시간이 다르지만 동일한 텍스트를 가리키는 음성 데이터에 대하여도 효과적으로 학습이 수행될 수 있다. 이에 따라, 음성 인식의 정확도 또한 향상될 수 있다.
본 발명의 실시예에 따르면, GPU 및 GPU가 아닌 다른 처리 유닛에 의해 컴퓨팅 연산이 수행되는 경우, 음향 모델 구축부(130)는 상기 음향 모델에서 출력될 수 있는 클래스의 개수에 기초하여 GPU에 의해 처리되는 연산량이 조절되도록 제어할 수 있다. 부연 설명하면, 표 3에 표시된 바와 같이, 제3 레벨 목표 레이블 또는 제4 레벨 목표 레이블의 클래스 개수는 제1 또는 제2 레벨 목표 레이블의 클래스 개수보다 훨씬 많다는 것을 알 수 있다. 상기 클래스 개수가 증가되면 심층 신경망의 출력 레이어를 구성하는 출력 노드의 개수 또한 증가되어야 하기 때문에, 제3 또는 제4 레벨 목표 레이블에 대한 신경망 학습을 수행하는 경우, 학습 속도가 느려지는 문제가 발생할 수 있다. 구체적으로, 신경망의 가중치를 조정하는 과정에서 매트릭스 연산이 빈번하게 수행되는데, 클래스의 개수가 증가되면 매트릭스의 크기 또한 증가되고, 연산량 또한 크게 증가될 수 있다. 따라서, 음향 모델 구축부(130)는 클래스의 개수가 증가될수록 GPU에 의해 처리되는 연산량이 증가되도록 제어하여 음향 모델의 학습 속도를 개선할 수 있다.
하기의 표 2는 CTC를 이용하여 음향 모델을 학습할 때 GPU의 연산량 제어에 따른 학습 속도 개선 결과를 보여준다.
구분 CTC - GPU 연산량 증가 전 CTC - GPU 연산량 증가 후
음성데이터 정보 3000 문장 (평균13~14초) 3000 문장 (평균13~14초)
Epoch 당 학습시간 평균 1시간 57초 평균 57분 33초
표 2를 참조하면, GPU 연산량이 증가되도록 제어하는 경우, 에폭(epoch) 당 학습 시간이 3분 정도 감소되는 것을 볼 수 있다. 이는, 3000 문장에 대하여 음향 모델을 1000 에폭 이상 학습해야 일정 수준 이상의 음성 인식률이 나타난다고 가정할 때, 학습 시간이 50시간 이상 감소될 수 있다는 것을 나타낸다. 효과적인 음향 모델을 구축하기 위해서, 대량의 음성 데이터를 학습시켜야 한다는 것을 가정하면, 상술한 실시예에 따라 음향 모델의 학습 속도가 향상되고, 학습 시간이 크게 단축될 수 있을 것이다.
한편, 본 발명의 실시예에 따르면, 음향 모델 구축부(130)는 k-접합 교차 검증(k-fold cross validation) 기법을 이용하여 각각의 인식 대상 언어에 대한 최적의 음향 모델을 구축할 수 있다. 이에 따라, 음성 인식의 정확도가 더욱 향상될 수 있다. 이에 대한 자세한 설명은 도 11을 참조하여 후술하도록 한다.
또한, 본 발명의 실시예에 따르면, 음향 모델 구축부(130)는 2단계 학습 과정을 통해 효과적으로 음향 모델을 구축할 수 있다. 이에 따라, 음성 인식의 정확도가 더욱 향상될 수 있다. 이에 대한 자세한 설명은 도 12를 참조하여 후술하도록 한다.
다시, 도 3을 참조하면, 음성 입력부(150)는 인식 대상 음성 데이터를 입력 받는다. 상기 인식 대상 음성 데이터는 음성 신호를 웨이브 형태로 나타낸 웨이브 파일, 상기 웨이브 파일을 주파수 형태로 나타낸 스펙트로그램, MFCC 등을 모두 포함할 수 있다. 음성 입력부(150)는 인식 대상 음성 데이터를 입력 받기 위한 입력 장치를 포함하도록 구성될 수 있고, 상기 입력 장치는 마이크 등을 포함할 수 있으나, 이에 한정되는 것은 아니다. 또한, 음성 입력부(150)는 예를 들어, 데스크탑, 노트북, 태블릿 PC 등과 같은 통신 기기로부터 인식 대상 음성 데이터를 입력 받을 수도 있다.
목표 레이블 예측부(160)는 기 구축된 음향 모델(140)을 이용하여 인식 대상 음성 데이터에 대한 목표 레이블을 예측한다. 여기서, 상기 예측된 목표 레이블의 구성은 학습된 목표 레이블의 구성에 대응된다. 예를 들어, 제3 레벨 목표 레이블로 학습된 음향 모델을 이용하는 경우, 목표 레이블 예측부(160)에 의해 예측된 목표 레이블 또한 초성, 중성 및 종성의 배열 위치가 구분되는 구성을 갖게 된다.
디코딩부(170)는 상기 예측된 목표 레이블을 기초로 자모, 음절, 어절 등을 조합하여 최종 텍스트를 출력한다. 상기 최종 텍스트를 출력하기 위해 디코딩부(170)는 당해 기술 분야에서 널리 알려진 적어도 하나의 알고리즘을 이용할 수 있으며, 어떠한 알고리즘이 이용되더라도 무방하다.
예를 들어, 디코딩부(170)는 기 정의된 단어 사전을 이용하여 상기 최종 텍스트를 출력할 수 있다. 구체적으로, 디코딩부(170)는 예측된 목표 레이블을 이용하여 단어 사전에서 복수의 후보 단어를 추출하고, 상기 복수의 후보 단어 중 예측된 목표 레이블에 포함된 자모들을 조합할 때 나올 확률이 가장 높은 단어를 최종 텍스트로 출력할 수 있다.
상기 단어 사전(미도시)은 당해 기술 분야에서 언어 모델, 어학 모델 등의 다양한 용어로 혼용되어 사용될 수 있으나 동일한 대상을 지칭함에 유의한다. 이하에서는, 도 7을 참조하여, 디코딩부(170)가 최종 텍스트를 출력하는 일 예시에 대하여 설명하도록 한다.
도 7을 참조하면, 제1 레벨 목표 레이블을 학습한 음향 모델의 예측된 목표 레이블(411)과 제3 레벨 목표 레이블을 학습한 음향 모델의 예측된 목표 레이블(413)이 도시되어 있다.
상기 제1 레벨 목표 레이블을 이용하여 음향 모델이 구축된 경우, 디코딩부(170)는 첫 자모부터 조합을 시작하여 "아" 다음에 "ㄴ"이 나오는 모든 후보 단어를 단어 사전에서 추출하고, 상기 모든 후보 단어의 확률을 검색하게 된다. 여기서, "아" 다음 음절의 초성이 "ㄴ"이 되는 후보 단어가 n개이고 "아"의 종성으로 "ㄴ"을 갖는 후보 단어 k개라고 가정하자. 그러면, 디코딩부(170)는 n+k개의 후보 단어에 대한 확률을 비교하여 최종 텍스트로 "안녕하세요"를 출력하게 된다.
다음으로, 상기 제3 레벨 목표 레이블을 이용하여 음향 모델을 구축한 경우, 디코딩부(170)는 "아" 다음에 오는 자모 "[ㄴ]"이 종성에 위치한 것을 알기 때문에 k개의 후보 단어에 대한 확률만을 비교하여 최종 텍스트로 "안녕하세요"를 출력할 수 있다.
두 가지 경우를 비교하면, 목표 레이블이 인식 대상 언어의 구조적 특성이 더 반영된 제3 레벨 목표 레이블을 이용하는 경우, 후보 단어의 개수가 줄어들게 되고, 이에 따라 디코딩부(170)의 연산량이 감소하게 된다는 것을 알 수 있다. 또한, 음성 인식 결과의 정확도는 향상되게 되는데, 이에 대한 실험 결과는 도 13에 도시된 그래프를 참조하도록 한다.
도 3의 각 구성 요소는 소프트웨어(Software) 또는, FPGA(Field Programmable Gate Array)나 ASIC(Application-Specific Integrated Circuit)과 같은 하드웨어(Hardware)를 의미할 수 있다. 그렇지만, 상기 구성 요소들은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, 어드레싱(Addressing)할 수 있는 저장 매체에 있도록 구성될 수도 있고, 하나 또는 그 이상의 프로세서들을 실행시키도록 구성될 수도 있다. 상기 구성 요소들 안에서 제공되는 기능은 더 세분화된 구성 요소에 의하여 구현될 수 있으며, 복수의 구성 요소들을 합하여 특정한 기능을 수행하는 하나의 구성 요소로 구현될 수도 있다.
이하에서는, 도 8을 참조하여, 본 발명의 또 다른 실시예에 따른 음성 인식 장치(100)의 하드웨어 구성에 대하여 설명하도록 한다.
도 8을 참조하면, 음성 인식 장치(100)는 하나 이상의 프로세서(101), 버스(105), 네트워크 인터페이스(107), 프로세서(101)에 의하여 수행되는 컴퓨터 프로그램을 로드(load)하는 메모리(103)와, 음성 인식 소프트웨어(109a)를 저장하는 스토리지(109)를 포함할 수 있다. 다만, 도 8에는 본 발명의 실시예와 관련 있는 구성요소들만이 도시되어 있다. 따라서, 본 발명이 속한 기술분야의 통상의 기술자라면 도 8에 도시된 구성요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다.
프로세서(101)는 음성 인식 장치(100)의 각 구성의 전반적인 동작을 제어한다. 프로세서(101)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 또는 본 발명의 기술 분야에 잘 알려진 임의의 형태의 프로세서를 포함하여 구성될 수 있다. 또한, 프로세서(101)는 본 발명의 실시예들에 따른 방법을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 음성 인식 장치(100)는 하나 이상의 프로세서를 구비할 수 있다.
메모리(103)는 각종 데이터, 명령 및/또는 정보를 저장한다. 메모리(103)는 본 발명의 실시예들에 따른 음성 인식 방법을 실행하기 위하여 스토리지(109)로부터 하나 이상의 프로그램(109a)을 로드할 수 있다. 도 8에서 메모리(103)의 예시로 RAM이 도시되었다.
버스(105)는 음성 인식 장치(100)의 구성 요소 간 통신 기능을 제공한다. 버스(105)는 주소 버스(Address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다.
네트워크 인터페이스(107)는 음성 인식 장치(100)의 유무선 인터넷 통신을 지원한다. 또한, 네트워크 인터페이스(107)는 인터넷 통신 외의 다양한 통신 방식을 지원할 수도 있다. 이를 위해, 네트워크 인터페이스(107)는 본 발명의 기술 분야에 잘 알려진 통신 모듈을 포함하여 구성될 수 있다.
스토리지(109)는 상기 하나 이상의 프로그램(109a)을 비임시적으로 저장할 수 있다. 도 8에서 상기 하나 이상의 프로그램(109a)의 예시로 음성 인식 소프트웨어(109a)가 도시되었다.
스토리지(109)는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.
음성 인식 소프트웨어(109a)는 본 발명의 실시예에 따른 음성 인식 방법을 수행하여 심층 신경망 기반의 음향 모델을 구축하고, 상기 음향 모델을 이용하여 인식 대상 음성 데이터에 대한 최종 텍스트를 출력할 수 있다.
구체적으로, 음성 인식 소프트웨어(109a)는 메모리(103)에 로드되어, 하나 이상의 프로세서(101)에 의해, 인식 대상 언어에 대한 원본 학습 데이터셋을 획득하되, 상기 원본 학습 데이터셋에 포함된 각각의 원본 학습 데이터는 학습용 음성 데이터 및 상기 학습용 음성 데이터에 대응되는 텍스트 정보를 포함하는 것인, 오퍼레이션, 상기 각각의 원본 학습 데이터에 포함된 텍스트 정보를 자모(letter) 단위로 분리하여 목표 레이블(target label)를 구성하는 오퍼레이션 및 상기 각각의 원본 학습 데이터에 포함된 학습용 음성 데이터 및 상기 학습용 음성 데이터에 대응되는 목표 레이블을 학습하여, 심층 신경망(deep neural network) 기반의 음향 모델을 구축하는 오퍼레이션을 실행할 수 있다. 여기서, 상기 목표 레이블은 예를 들어 상술한 제1 내지 제4 레벨 목표 레이블 중 적어도 하나의 목표 레이블을 의미하는 것일 수 있다.
지금까지, 도 3 내지 도 8을 참조하여 본 발명의 실시예에 따른 음성 인식 장치(100)의 구성 및 동작에 대하여 설명하였다. 다음으로, 도 9 내지 도 11을 참조하여 본 발명의 또 다른 실시예에 따른 음성 인식 방법에 대하여 상세하게 설명한다.
이하에서 후술할 본 발명의 실시예에 따른 음성 인식 방법의 각 단계는, 컴퓨팅 장치에 의해 수행될 수 있다. 예를 들어, 상기 컴퓨팅 장치는 음성 인식 장치(100)일 수 있다. 다만, 설명의 편의를 위해, 상기 음성 인식 방법에 포함되는 각 단계의 동작 주체는 그 기재가 생략될 수도 있다. 또한, 음성 인식 방법의 각 단계는 음성 인식 소프트웨어(109a)가 프로세서(101)에 의해 실행됨으로써, 음성 인식 장치(100)에서 수행되는 오퍼레이션일 수 있다.
본 발명의 실시예에 따른 음성 인식 방법은 음향 모델에 대한 학습을 수행하는 음향 모델 학습 단계와 학습된 음향 모델을 기초로 음성 인식을 수행하는 음성 인식 단계를 포함할 수 있다. 이하, 각 단계에 대하여 설명하도록 한다.
도 9는 음향 모델 학습 단계의 흐름도이다. 단, 이는 본 발명의 목적을 달성하기 위한 바람직한 실시예일 뿐이며, 필요에 따라 일부 단계가 추가되거나 삭제될 수 있음은 물론이다.
도 9을 참조하면, 음성 인식 장치(100)는 원본 학습 데이터셋을 획득한다(S100). 여기서, 상기 원본 학습 데이터셋에 포함된 각각의 원본 학습 데이터는 학습용 음성 데이터 및 상기 학습용 음성 데이터에 대응되는 텍스트로 구성될 수 있으며, 원본 학습 데이터셋을 획득하는 방법은 어떠한 방식이더라도 무방하다.
다음으로, 음성 인식 장치(100)는 각각의 원본 학습 데이터에 포함된 텍스트 정보를 자모 단위로 분리하여 목표 레이블을 구성한다(S120). 도 4를 참조하여 설명한 바와 같이, 상기 목표 레이블은 예를 들어 제1 레벨 목표 레이블 내지 제4 레벨 목표 레이블을 포함할 수 있으며, 음성 인식 장치(100)는 인식 대상 언어의 종류에 따라 적절한 목표 레이블을 구성할 수 있다. 상기 목표 레이블을 구성하는 방법에 대한 자세한 설명은 중복된 설명을 배제하기 위해 생략하도록 한다.
다음으로, 음성 인식 장치(100)는 각각의 원본 학습 데이터에 포함된 학습용 음성 데이터와 상기 구성된 목표 레이블을 학습하여, 심층 신경망 기반의 음향 모델을 구축한다(S140). 구체적으로, 음성 인식 장치(100)는 CTC 기법을 이용하여, 손실(loss)을 최소화하는 방식으로 상기 심층 신경망의 가중치를 조정함으로써, 상기 음향 모델에 대한 학습을 수행할 수 있다.
다음으로, 도 10을 참조하여, 구축된 음향 모델을 이용하여 음성 인식을 수행하는 단계에 대하여 설명하도록 한다.
도 10은 음성 인식 단계의 흐름도이다. 단, 이는 본 발명의 목적을 달성하기 위한 바람직한 실시예일 뿐이며, 필요에 따라 일부 단계가 추가되거나 삭제될 수 있음은 물론이다.
도 10을 참조하면, 음성 인식 장치(100)는 인식 대상 음성 데이터를 입력 받는다(S200). 예를 들어, 음성 인식 장치(100)에 내장된 마이크를 통해서 상기 인식 대상 음성 데이터가 입력될 수 있고, 외부의 장치로부터 인식 대상 음성 데이터가 수신될 수도 있다.
다음으로, 음성 인식 장치(100)는 기 구축된 음향 모델을 이용하여, 인식 대상 음성 신호에 대한 목표 레이블을 예측한다(S220). 즉, 음성 인식 장치(100)는 상기 음향 모델에 상기 인식 대상 음성 신호를 입력하고 예측된 목표 레이블을 출력 값으로 획득할 수 있다. 상기 예측된 목표 레이블의 예시는 도 7을 참조하도록 한다.
다음으로, 음성 인식 장치(100)는 기 정의된 단어 사전을 이용하여, 예측된 목표 레이블을 디코딩하고, 디코딩 결과로 인식 대상 음성 신호에 대응되는 텍스트 정보를 출력한다(S240). 예를 들어, 목표 레이블을 디코딩하여 텍스트 정보를 출력하는 방법은 도 7에 도시된 바와 같이, 통계적 확률 기반으로 수행될 수 있으나, 어떠한 방식으로 수행되더라도 무방하다.
지금까지 도 9 및 도 10을 참조하여 본 발명의 실시예에 따른 음성 인식 방법에 대하여 설명하였다. 상술한 방법에 따르면, 심층 신경망 기반의 학습 모델의 학습 결과에 기초하여, 음성 데이터에 대한 발음 분석 과정 없이 음성 데이터로부터 대응되는 텍스트가 바로 인식되어 출력될 수 있다. 이에 따라, 음성 인식을 위한 전체적인 프로세스가 단순화될 수 있다.
다음으로, 도 11을 참조하여, 본 발명의 몇몇 실시예에서 참조될 수 있는 최적의 음향 모델 구축 방법에 대하여 설명하도록 한다.
인식 대상 언어에 따라 언어의 구조적 특성은 달라질 수 있으므로, 상기 인식 대상 언어에 대하 가장 높은 인식률을 제공할 수 있는 학습 데이터셋 또한 달라질 수 있다. 따라서, 본 발명의 실시예에 따르면, 각각의 학습 데이터셋을 기초로 후보 음향 모델을 구축하고, 평가를 통해 해당 인식 대상 언어에 대한 최적의 음향 모델을 선정할 수 있다.
도 11에 도시된 바와 같이, 음성 인식 장치(100)는 원본 학습 데이터셋에서 서로 다른 목표 레이블로 구성된 복수의 학습 데이터셋(410, 430, 450, 470)을 생성하고, 각각의 학습 데이터셋을 학습하여 복수의 후보 음향 모델(420, 440, 460, 480)을 구축할 수 있다. 도 11에는 제1 내지 제4 학습 데이터셋(410, 430, 450, 470) 각각에 대하여 후보 음향 모델(420, 440, 460, 480)이 구축된 것을 예로 도시하였으나, 음성 인식 장치(100)의 성능, 인식 대상 언어의 구조적 특성 등을 고려하여 일부의 학습 데이터셋에 대해서만 후보 음향 모델이 구축될 수도 있을 것이다.
음성 인식 장치(100)는 평가 과정을 통해 음성 인식의 정확도가 소정의 조건을 만족하는 어느 하나의 음향 모델(490) 또는 복수의 음향 모델을 해당 인식 대상 언어에 대한 음향 모델(490)로 선정할 수 있다. 이때, 상기 평가 과정을 수행하기 위해, k-접합 교차 검증 기법이 이용될 수 있으나, 어떠한 방식으로 수행되어도 무방할 것이다. 상기 k-접합 교차 검증 기법은 당해 기술 분야에서 이미 널리 알려진 기법인 바, 이에 대한 설명은 생략하도록 한다.
상술한 실시예에 따라, 음성 인식 장치(100)는 복수의 인식 대상 언어에 대하여 최적의 음향 모델을 선정할 수 있다. 예를 들어, 제1 레벨 목표 레이블 내지 제4 레벨 목표 레이블 중 어느 하나의 목표 레이블을 학습하여 후보 음향 모델을 구축한 뒤, 평가 과정을 통해, 제1 인식 대상 언어에 대한 제1 음향 모델을 구축할 수 있고, 동일한 방식으로 제2 인식 대상 언어에 대한 제2 음향 모델을 구축할 수 있다. 이때, 상기 제1 음향 모델의 학습에 이용된 목표 레이블과 상기 제2 음향 모델의 학습에 이용된 목표 레이블의 구성은 서로 상이한 것일 수 있다. 예를 들어, 상기 제1 음향 모델은 제2 레벨 목표 레이블에 기초한 음향 모델이고, 상기 제2 음향 모델은 제3 레벨 목표 레이블에 기초한 음향 모델일 수 있다. 인식 대상 언어 별로 구조적 특성은 상이할 수 있기 때문에, 최적의 음향 모델 또한 달라질 수 있기 때문이다.
지금까지, 도 11을 참조하여, 본 발명의 몇몇 실시예에서 참조될 수 있는 최적의 음향 모델 구축 방법에 대하여 설명하였다. 상술한 방법에 따르면, 인식 대상 언어 별로 최적의 음향 모델이 구축될 수 있는 바, 음성 인식의 정확도가 더욱 향상될 수 있다.
다음으로, 도 12를 참조하여, 본 발명의 몇몇 실시예에서 참조될 수 있는 음향 모델 학습 방법에 대하여 설명하도록 한다.
본 발명의 실시예에 따르면, 음성 인식 장치(100)는 도 12에 도시된 바와 같이 2 단계로 구성된 학습 과정을 통해 효과적으로 음향 모델을 구축할 수 있다. 제1 단계 학습 과정에서, 학습 데이터셋(510)를 이용하여 음향 모델(520)에 대한 제1 학습이 수행될 수 있다. 여기서, 학습 데이터셋(510)은 제1 내지 제4 학습 데이터셋 중 어느 하나의 학습 데이터셋일 수 있을 것이다.
다음으로, 제2 단계 학습을 수행하기 전에, 제1 학습된 음향 모델(520)에 대한 평가가 수행될 수 있다. 평가 과정에서, 테스트 데이터셋(530)에 포함된 각각의 테스트 데이터에 대하여, 상기 제1 학습된 음향 모델의 오차를 산출하고, 테스트 데이터셋(530) 중에서, 상기 오차가 기 설정된 값 이상인 테스트 데이터를 선정될 수 있다. 도 12에 도시된 데이터셋(540)은 선정된 테스트 데이터의 집합을 의미한다.
다음으로, 제2 단계 학습 과정에서, 데이터셋(540)을 학습 데이터셋(540)으로 이용하여 음향 모델(520)에 대한 제2 학습이 수행될 수 있다. 이때, 학습 데이터셋(540)의 개수를 증가시키기 위해, 데이터 확장(data augmentation) 기법이 이용될 수 있다. 즉, 음성 인식 장치(100)는 학습 데이터셋(540)에 포함된 음성 데이터를 변형하여, 복수의 음성 데이터를 생성함으로써 데이터의 개수가 증가된 학습 데이터셋(550)을 생성할 수 있다.
예를 들어, 학습 데이터셋(540)에 포함된 학습 데이터가 제1 음성 데이터와 상기 제1 음성 데이터에 대한 목표 레이블로 구성된다고 할 때, 음성 인식 장치(100)는 상기 제1 음성 데이터에 노이즈(noise)를 합성하여 제2 음성 데이터를 생성하고, 상기 제2 음성 데이터 및 상기 목표 레이블로 구성된 학습 데이터를 학습 데이터셋(550)에 추가하여 학습 데이터의 개수를 증가시킬 수 있다. 이외에도, 음성 인식 장치(100)는 상기 제1 음성 데이터를 다양한 방식으로 변형하여 새로운 학습 데이터를 생성할 수 있다.
지금까지, 도 12를 참조하여, 본 발명의 몇몇 실시예에서 참조될 수 있는 음향 모델 학습 방법에 대하여 설명하였다. 상술한 방법에 따르면, 음향 모델의 평가 과정에서 음성 인식의 정확도가 낮은 테스트 데이터를 선정하고, 선정된 테스트 데이터를 학습 데이터로 이용하여 재학습이 수행될 수 있다. 또한, 상기 선정된 테스트 데이터에 대한 데이터 확장(data augmentation)을 통해 추가적인 학습 데이터가 확보될 수 있다. 이에 따라, 음향 모델의 학습이 보다 효과적으로 수행될 수 있고, 음성 인식의 정확도가 더욱 향상될 수 있다.
마지막으로, 도 13을 참조하여, 목표 레이블 구성에 따른 음성 인식 성능 변화에 대한 실험 결과를 간략하게 살펴보도록 한다. 도 13에는 인식 대상 언어가 한국어인 경우, 제1 레벨 목표 레이블로 학습된 음향 모델과 제3 레벨 목표 레이블로 제2 음향 모델의 음성 인식 결과가 도시되어 있다.
도 13을 참조하면, 제3 레벨 목표 레이블로 구성된 목표 레이블을 학습한 심층 신경망 기반의 음향 모델은 제1 레벨 목표 레이블로 구성된 목표 레이블을 학습한 음향 모델 보다 약 14% 정도 인식률이 향상된 것을 확인할 수 있다.
이와 같이, 초성, 중성 및 종성이 결합되어 음절을 형성하는 한국어의 구조적 특성이 반영될 수 있도록 목표 레이블을 구성하고, 이를 학습하는 경우, 단대단 음성 인식의 정확도가 향상되는 것을 확인할 수 있다.
지금까지 도 1 내지 도 13을 참조하여 설명된 본 발명의 개념은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체는, 예를 들어 이동형 기록 매체(CD, DVD, 블루레이 디스크, USB 저장 장치, 이동식 하드 디스크)이거나, 고정식 기록 매체(ROM, RAM, 컴퓨터 구비 형 하드 디스크)일 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체에 기록된 상기 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 상기 다른 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 다른 컴퓨팅 장치에서 사용될 수 있다.
도면에서 동작들이 특정한 순서로 도시되어 있지만, 반드시 동작들이 도시된 특정한 순서로 또는 순차적 순서로 실행되어야만 하거나 또는 모든 도시 된 동작들이 실행되어야만 원하는 결과를 얻을 수 있는 것으로 이해되어서는 안 된다. 특정 상황에서는, 멀티태스킹 및 병렬 처리가 유리할 수도 있다. 더욱이, 위에 설명한 실시예들에서 다양한 구성들의 분리는 그러한 분리가 반드시 필요한 것으로 이해되어서는 안 되고, 설명된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 다수의 소프트웨어 제품으로 패키지 될 수 있음을 이해하여야 한다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다.

Claims (17)

  1. 음성 인식 장치에 의해 수행되는 인식 대상 언어에 대한 음성 인식 방법에 있어서,
    상기 인식 대상 언어에 대한 원본 학습 데이터셋을 획득하되, 상기 원본 학습 데이터셋에 포함된 각각의 원본 학습 데이터는 학습용 음성 데이터 및 상기 학습용 음성 데이터에 대응되는 텍스트 정보를 포함하는 것인, 단계;
    상기 각각의 원본 학습 데이터에 포함된 텍스트 정보를 자모(letter) 단위로 분리하여 목표 레이블(target label)를 구성하는 단계; 및
    상기 각각의 원본 학습 데이터에 포함된 학습용 음성 데이터 및 상기 학습용 음성 데이터에 대응되는 목표 레이블을 학습하여, 심층 신경망(deep neural network) 기반의 음향 모델을 구축하는 단계를 포함하되,
    상기 목표 레이블을 구성하는 단계는,
    상기 분리된 자모 중에서, 상이한 자모가 서로 다른 클래스로 정의되도록 제1 레벨 목표 레이블을 구성하는 단계;
    상기 분리된 자모 중에서, 상이한 자모는 서로 다른 클래스로 정의되고, 동일한 자모라도 발음되지 않는 자모와 발음되는 자모가 서로 다른 클래스로 정의되도록 제2 레벨 목표 레이블을 구성하는 단계;
    상기 분리된 자모 중에서, 상이한 자모가 서로 다른 클래스로 정의되고, 동일한 자모라도 배열 위치가 다른 경우 서로 다른 클래스로 정의되도록 제3 레벨 목표 레이블을 구성하는 단계; 및
    상기 분리된 자모 중에서, 상이한 자모가 서로 다른 클래스로 정의되고, 동일한 자모라도 발음되는 자모와 발음되지 않는 자모가 서로 다른 클래스로 정의되며, 동일한 자모라도 배열 위치가 다른 경우 서로 다른 클래스로 정의되도록 제4 레벨 목표 레이블을 구성하는 단계를 포함하는 것을 특징으로 하는,
    음성 인식 방법.
  2. 제1 항에 있어서,
    상기 목표 레이블은,
    상기 텍스트 정보에 포함된 띄어쓰기(space)를 포함하되,
    상기 띄어쓰기는 상기 음향 모델에서 별도의 클래스로 정의되는 것을 특징으로 하는,
    음성 인식 방법.
  3. 제1 항에 있어서,
    상기 목표 레이블에 포함되는 동일 자모 중에서, 발음되는 자모와 발음되지 않는 자모는 상기 음향 모델에서 서로 다른 클래스로 정의되는 것을 특징으로 하는,
    음성 인식 방법.
  4. 제1 항에 있어서,
    상기 음향 모델을 구축하는 단계는,
    CTC(Connectionlist Temporal Classification) 기법을 이용하여, 상기 음향 모델을 구성하는 심층 신경망의 가중치를 갱신하는 단계를 포함하는 것을 특징으로 하는,
    음성 인식 방법.
  5. 제1 항에 있어서,
    상기 심층 신경망은,
    RNN(Recurrent Neural Network), BRNN(Bi-directional RNN), LSTM(Long Short Term Memory), BLSTM(Bi-directional LSTM), GRU(Gated Recurrent Unit), BGRU(Bi-directional GRU) 중 적어도 하나를 포함하는 것을 특징으로 하는,
    음성 인식 방법.
  6. 제1 항에 있어서,
    상기 인식 대상 언어는 한국어이고,
    상기 목표 레이블에 포함된 동일한 자음 중에서, 배열 위치가 초성인 자음과 배열 위치가 종성인 자음은 상기 음향 모델에서 서로 다른 클래스로 정의되는 것을 특징으로 하는,
    음성 인식 방법.
  7. 제6 항에 있어서,
    인식 대상 음성 데이터를 입력받는 단계;
    상기 구축된 음향 모델을 이용하여, 상기 인식 대상 음성 데이터에 대한 목표 레이블을 예측하되, 상기 예측된 목표 레이블은 배열 위치가 종성인 제1 자음을 포함하는 것인, 단계;
    기 정의된 단어 사전에서 상기 예측된 목표 레이블과 관련된 후보 단어를 추출하는 단계; 및
    상기 후보 단어를 기초로, 상기 인식 대상 음성 데이터에 대응되는 텍스트 정보를 출력하는 단계를 포함하되,
    상기 후보 단어는,
    상기 제1 자음이 종성에 위치한 단어들만을 포함하는 것을 특징으로 하는,
    음성 인식 방법.
  8. 제1 항에 있어서,
    상기 음향 모델을 구축하는 단계는,
    GPU(Graphic Processing Unit) 및 상기 GPU가 아닌 다른 처리 유닛을 이용하여, 상기 음향 모델을 학습하는 단계를 포함하되,
    상기 음향 모델에 정의된 클래스의 개수가 증가할수록, 상기 GPU에 의해 처리되는 연산량이 증가되는 것을 특징으로 하는,
    음성 인식 방법.
  9. 삭제
  10. 제1 항에 있어서,
    상기 음향 모델을 구축하는 단계는,
    상기 각각의 원본 학습 데이터에 포함된 학습용 음성 데이터 및 상기 학습용 음성 데이터에 대응되는 제1 레벨 목표 레이블 내지 제4 레벨 목표 레이블 중 적어도 둘 이상의 목표 레이블을 학습하여, 복수의 후보 음향 모델을 구축하는 단계;
    k-접합 교차 검증(k-fold cross validation) 기법을 이용하여, 상기 복수의 후보 음향 모델을 평가하는 단계; 및
    상기 평가된 결과에 기초하여, 상기 복수의 후보 음향 모델 중에서, 상기 인식 대상 언어에 대한 음향 모델을 결정하는 단계를 포함하는 것을 특징으로 하는,
    음성 인식 방법.
  11. 제1 항에 있어서,
    상기 인식 대상 언어는,
    제1 인식 대상 언어 및 제2 인식 대상 언어를 포함하되,
    상기 음향 모델을 구축하는 단계는,
    상기 각각의 원본 학습 데이터에 포함된 학습용 음성 데이터 및 상기 학습용 음성 데이터에 대응되는 제1 레벨 목표 레이블 내지 제4 레벨 목표 레이블 중 어느 하나의 목표 레이블을 학습하여, 상기 제1 인식 대상 언어에 대한 제1 음향 모델을 구축하는 단계; 및
    상기 각각의 원본 학습 데이터에 포함된 학습용 음성 데이터 및 상기 학습용 음성 데이터에 대응되는 제1 레벨 목표 레이블 내지 제4 레벨 목표 레이블 중 어느 하나의 목표 레이블을 학습하여, 상기 제2 인식 대상 언어에 대한 제2 음향 모델을 구축하는 단계를 포함하되,
    상기 제1 음향 모델의 학습에 이용된 목표 레이블과 상기 제2 음향 모델의 학습에 이용된 목표 레이블의 구성은 서로 상이한 것을 특징으로 하는,
    음성 인식 방법.
  12. 제1 항에 있어서,
    상기 음향 모델을 구축하는 단계는,
    상기 각각의 원본 학습 데이터에 포함된 학습용 음성 데이터 및 상기 학습용 음성 데이터에 대응되는 목표 레이블을 이용하여, 상기 음향 모델에 대한 제1 학습을 수행하는 단계;
    테스트 데이터셋에 포함된 각각의 테스트 데이터에 대하여, 상기 제1 학습된 음향 모델의 오차를 산출하는 단계;
    상기 테스트 데이터셋 중에서, 상기 오차가 기 설정된 값 이상인 테스트 데이터를 선정하고, 상기 선정된 테스트 데이터를 이용하여 새로운 학습 데이터셋을 생성하는 단계; 및
    상기 새로운 학습 데이터셋을 이용하여, 상기 음향 모델에 대한 제2 학습을 수행하는 단계를 포함하는 것을 특징으로 하는,
    음성 인식 방법.
  13. 제12 항에 있어서,
    상기 선정된 테스트 데이터는,
    제1 테스트용 음성 데이터 및 상기 제1 테스트용 음성 데이터에 대응되는 제1 목표 레이블로 구성되되,
    상기 새로운 학습 데이터셋을 생성하는 단계는,
    상기 제1 테스트용 음성 데이터를 변형하여, 제2 테스트용 음성 데이터를 생성하는 단계; 및
    상기 선정된 테스트 데이터와 상기 제2 테스트용 음성 데이터 및 상기 제1 목표 레이블로 구성된 데이터를 상기 새로운 학습 데이터셋에 추가하는 단계를 포함하는 것을 특징으로 하는,
    음성 인식 방법.
  14. 제13 항에 있어서,
    상기 제2 테스트용 음성 데이터를 생성하는 단계는,
    상기 제1 테스트용 음성 데이터에 노이즈(noise)를 합성하여, 상기 제2 테스트용 음성 데이터를 생성하는 단계를 포함하는 것을 특징으로 하는,
    음성 인식 방법.
  15. 삭제
  16. 삭제
  17. 삭제
KR1020170082985A 2017-06-30 2017-06-30 음성 인식 방법 및 그 장치 KR102339716B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020170082985A KR102339716B1 (ko) 2017-06-30 2017-06-30 음성 인식 방법 및 그 장치
US16/007,508 US10930267B2 (en) 2017-06-30 2018-06-13 Speech recognition method and apparatus therefor
CN201810685178.2A CN109215637B (zh) 2017-06-30 2018-06-28 语音识别方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170082985A KR102339716B1 (ko) 2017-06-30 2017-06-30 음성 인식 방법 및 그 장치

Publications (2)

Publication Number Publication Date
KR20190002812A KR20190002812A (ko) 2019-01-09
KR102339716B1 true KR102339716B1 (ko) 2021-12-14

Family

ID=64738789

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170082985A KR102339716B1 (ko) 2017-06-30 2017-06-30 음성 인식 방법 및 그 장치

Country Status (3)

Country Link
US (1) US10930267B2 (ko)
KR (1) KR102339716B1 (ko)
CN (1) CN109215637B (ko)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190130896A1 (en) * 2017-10-26 2019-05-02 Salesforce.Com, Inc. Regularization Techniques for End-To-End Speech Recognition
CN109859743B (zh) * 2019-01-29 2023-12-08 腾讯科技(深圳)有限公司 音频识别方法、系统和机器设备
WO2020166748A1 (ko) * 2019-02-15 2020-08-20 엘지전자 주식회사 인공 지능을 이용한 음성 합성 장치, 음성 합성 장치의 동작 방법 및 컴퓨터로 판독 가능한 기록 매체
KR102198273B1 (ko) * 2019-02-26 2021-01-04 한미란 머신러닝 기반의 음성데이터 분석 방법, 장치 및 프로그램
WO2020218635A1 (ko) * 2019-04-23 2020-10-29 엘지전자 주식회사 인공 지능을 이용한 음성 합성 장치, 음성 합성 장치의 동작 방법 및 컴퓨터로 판독 가능한 기록 매체
JP7343615B2 (ja) * 2019-05-28 2023-09-12 グーグル エルエルシー ストリーミングエンドツーエンドモデルを用いる大規模多言語音声認識
US11393447B2 (en) 2019-06-18 2022-07-19 Lg Electronics Inc. Speech synthesizer using artificial intelligence, method of operating speech synthesizer and computer-readable recording medium
CN110310658B (zh) * 2019-06-21 2021-11-30 桂林电子科技大学 一种基于语音信号处理的语音分离办法
CN113412514A (zh) * 2019-07-09 2021-09-17 谷歌有限责任公司 用于设备上语音识别模型的训练的文本片段的设备上语音合成
KR102321798B1 (ko) * 2019-08-15 2021-11-05 엘지전자 주식회사 인공 신경망 기반의 음성 인식 모델을 학습시키는 방법 및 음성 인식 디바이스
CN110648655B (zh) * 2019-09-11 2022-03-01 北京探境科技有限公司 一种语音识别方法、装置、系统及存储介质
CN110942767B (zh) * 2019-11-05 2023-03-17 深圳市一号互联科技有限公司 一种asr语言模型识别标注与优化方法及其装置
CN110956954B (zh) * 2019-11-29 2020-12-11 百度在线网络技术(北京)有限公司 一种语音识别模型训练方法、装置以及电子设备
KR20210073168A (ko) 2019-12-10 2021-06-18 한국전자통신연구원 노치 필터를 이용한 학습 데이터 증강 장치 및 방법
CN111145729B (zh) * 2019-12-23 2022-10-28 厦门快商通科技股份有限公司 语音识别模型训练方法、系统、移动终端及存储介质
CN113409793B (zh) * 2020-02-28 2024-05-17 阿里巴巴集团控股有限公司 语音识别方法及智能家居系统、会议设备、计算设备
CN111775151A (zh) * 2020-06-28 2020-10-16 河南工业职业技术学院 一种机器人智能控制系统
CN112216287A (zh) * 2020-09-25 2021-01-12 江苏聆世科技有限公司 基于集成学习和卷积神经网络的环境声音识别方法
US11545133B2 (en) 2020-10-12 2023-01-03 Google Llc On-device personalization of speech synthesis for training of speech model(s)
KR102395700B1 (ko) * 2020-12-23 2022-05-09 주식회사 한글과컴퓨터 사용자 입력 조건에 기초하여 음성 인식 모델 구축에 사용될 학습 데이터를 생성하는 전자 장치 및 그 동작 방법
KR102608344B1 (ko) * 2021-02-04 2023-11-29 주식회사 퀀텀에이아이 실시간 End-to-End 방식의 음성 인식 및 음성DNA 생성 시스템
KR20220118583A (ko) * 2021-02-18 2022-08-26 삼성전자주식회사 안면 인장 데이터를 사용한 음성 인식
CN117378004A (zh) * 2021-03-26 2024-01-09 谷歌有限责任公司 具有序列的对比损失的有监督和无监督的训练
KR102415999B1 (ko) * 2021-04-30 2022-07-01 (주)판도플랫폼 음성 인식을 통해 음식 메뉴를 식별하는 방법 및 그를 이용한 시스템
KR20220170183A (ko) * 2021-06-22 2022-12-29 공주대학교 산학협력단 신경망을 기반으로 암호화 데이터를 분류하는 방법, 컴퓨팅장치 및 컴퓨터-판독가능 매체
KR102581221B1 (ko) * 2023-05-10 2023-09-21 주식회사 솔트룩스 재생 중인 응답 발화를 제어 및 사용자 의도를 예측하는 방법, 장치 및 컴퓨터-판독 가능 기록 매체

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150243285A1 (en) * 2012-09-07 2015-08-27 Carnegie Mellon University, A Pennsylvania Non-Profit Corporation Methods for hybrid gpu/cpu data processing
US20170125020A1 (en) * 2015-10-29 2017-05-04 Samsung Sds Co., Ltd. System and method for voice recognition

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4008344B2 (ja) * 2002-12-06 2007-11-14 日本電信電話株式会社 クラス同定モデル生成方法、装置、およびプログラム、クラス同定方法、装置、およびプログラム
CN103117060B (zh) * 2013-01-18 2015-10-28 中国科学院声学研究所 用于语音识别的声学模型的建模方法、建模系统
JP2015118354A (ja) * 2013-12-20 2015-06-25 三菱電機株式会社 音声認識装置および音声認識方法
KR20160122564A (ko) 2015-04-14 2016-10-24 주식회사 시스트란인터내셔널 음성 인식 장치 및 그 방법
KR102371188B1 (ko) * 2015-06-30 2022-03-04 삼성전자주식회사 음성 인식 장치 및 방법과 전자 장치
KR102386854B1 (ko) * 2015-08-20 2022-04-13 삼성전자주식회사 통합 모델 기반의 음성 인식 장치 및 방법
EP3384488B1 (en) * 2015-12-01 2022-10-12 Fluent.ai Inc. System and method for implementing a vocal user interface by combining a speech to text system and a speech to intent system
CN106328122A (zh) * 2016-08-19 2017-01-11 深圳市唯特视科技有限公司 一种利用长短期记忆模型递归神经网络的语音识别方法
CN106531157B (zh) * 2016-10-28 2019-10-22 中国科学院自动化研究所 语音识别中的正则化口音自适应方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150243285A1 (en) * 2012-09-07 2015-08-27 Carnegie Mellon University, A Pennsylvania Non-Profit Corporation Methods for hybrid gpu/cpu data processing
US20170125020A1 (en) * 2015-10-29 2017-05-04 Samsung Sds Co., Ltd. System and method for voice recognition

Also Published As

Publication number Publication date
CN109215637A (zh) 2019-01-15
KR20190002812A (ko) 2019-01-09
US20190005947A1 (en) 2019-01-03
US10930267B2 (en) 2021-02-23
CN109215637B (zh) 2023-09-01

Similar Documents

Publication Publication Date Title
KR102339716B1 (ko) 음성 인식 방법 및 그 장치
CN111292728B (zh) 语音识别方法和设备
JP6980119B2 (ja) 音声認識方法、並びにその装置、デバイス、記憶媒体及びプログラム
US11158305B2 (en) Online verification of custom wake word
KR102313028B1 (ko) 음성 인식 시스템 및 방법
CN108711421B (zh) 一种语音识别声学模型建立方法及装置和电子设备
US11798535B2 (en) On-device custom wake word detection
KR102167719B1 (ko) 언어 모델 학습 방법 및 장치, 음성 인식 방법 및 장치
US20180137109A1 (en) Methodology for automatic multilingual speech recognition
US10319373B2 (en) Information processing device, information processing method, computer program product, and recognition system
US11205420B1 (en) Speech processing using a recurrent neural network
JP2019159654A (ja) 時系列情報の学習システム、方法およびニューラルネットワークモデル
CN112397058A (zh) 解码方法、训练方法以及语音识别设备
CN112668317A (zh) 用于确定输出词法单元的方法和设备
EP4002354B1 (en) Method and system for automatic speech recognition in resource constrained devices
JP2014206642A (ja) 音声認識装置および音声認識プログラム
CN114360514A (zh) 语音识别方法、装置、设备、介质及产品
US20230076073A1 (en) Method and apparatus for speech recognition
Becerra et al. A comparative case study of neural network training by using frame-level cost functions for automatic speech recognition purposes in Spanish
EP4060657A1 (en) Method and apparatus with decoding in neural network for speech recognition
KR102292921B1 (ko) 언어 모델 학습 방법 및 장치, 음성 인식 방법 및 장치
JP4610451B2 (ja) 音声認識装置及びプログラム
CN111816164A (zh) 用于语音识别的方法及设备
Naaman et al. Learning Similarity Functions for Pronunciation Variations
US20220382973A1 (en) Word Prediction Using Alternative N-gram Contexts

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant