KR102617914B1 - 음성 인식 방법 및 그 시스템 - Google Patents

음성 인식 방법 및 그 시스템 Download PDF

Info

Publication number
KR102617914B1
KR102617914B1 KR1020230060296A KR20230060296A KR102617914B1 KR 102617914 B1 KR102617914 B1 KR 102617914B1 KR 1020230060296 A KR1020230060296 A KR 1020230060296A KR 20230060296 A KR20230060296 A KR 20230060296A KR 102617914 B1 KR102617914 B1 KR 102617914B1
Authority
KR
South Korea
Prior art keywords
noise
speech
sound data
recognition result
stt
Prior art date
Application number
KR1020230060296A
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 KR1020230060296A priority Critical patent/KR102617914B1/ko
Application granted granted Critical
Publication of KR102617914B1 publication Critical patent/KR102617914B1/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/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/20Speech recognition techniques specially adapted for robustness in adverse environments, e.g. in noise, of stress induced speech
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/02Speech enhancement, e.g. noise reduction or echo cancellation
    • G10L21/0208Noise filtering
    • G10L21/0216Noise filtering characterised by the method used for estimating noise
    • 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/15Speech 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 formant information
    • 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
    • G10L25/69Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use for evaluating synthetic or decoded voice signals
    • 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/221Announcement of recognition results

Landscapes

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

Abstract

다양한 소음 카테고리와 발화 상황을 고려하여 음성을 인식하기 위한 방법이 제공된다. 본 개시의 일 실시예에 따른 음성 인식 방법은, 소리 데이터를 획득하는 단계와, 소음 카테고리 추정 모델을 이용하여 상기 소리 데이터로부터 상기 소리 데이터에 포함되는 소음에 관한 소음 카테고리를 추정함으로써, 상기 소음에 관한 소음 인식 결과를 생성하는 단계와, 복수의 STT 모델을 각각 이용하여, 상기 소리 데이터로부터 상기 소리 데이터에 포함되는 음성에 관한 음성 인식 결과를 각각 생성하는 단계와, 상기 각각의 음성 인식 결과 및 상기 각각의 STT 모델에 대한 가중치에 기초하여, 상기 각각의 음성 인식 결과를 결합한 적응적 음성 인식 결과를 생성하는 단계를 포함할 수 있다. 이때, 상기 각각의 STT 모델에 대한 가중치는 상기 소음 인식 결과에 기초하여 결정되는 것일 수 있다.

Description

음성 인식 방법 및 그 시스템{METHOD AND SYSTEM FOR RECOGNIZING VOICE}
본 개시는 음성 인식 방법 및 그 시스템에 관한 것이다. 보다 자세하게는, 다양한 소음 카테고리와 발화 상황을 고려하여 음성을 인식하기 위한 방법 및 그 시스템에 관한 것이다.
근래에 들어 인공 지능 기술이 발전함에 따라, 다양한 서비스에서 STT(Speech-To-Text) 기술을 활용하여 음성 인식 기능을 제공하고 있다.
음성 인식의 성능은 발화자 주변의 소음에 영향을 받기 때문에, 주변 소음을 고려하여 음성 인식을 하는 것이 중요한데, 종래 기술로서, 소리 데이터에서 소음을 제거한 다음에 음성을 인식하는 기술이 소개된 바 있다. 그러나, 이러한 종래 기술에 따르면, 소음을 제거하면서 원본 소리 데이터의 손실이 일어나는 경우가 있었고, 이로 인하여 오히려 음성 인식 성능이 떨어지는 문제가 있었다.
또한, 음성 인식 기능을 활용하여 대화형 서비스(예를 들면, AI 상담사)를 제공하는 기술이 소개된 바 있는데, 종래 기술에 따르면, 음성 인식이 잘 되지 않은 경우에 "다시 한 번 말씀해 주시겠어요?"와 같이 단순히 재발화를 요청하는 피드백만 출력할 수 있을 뿐이었고, 음성 인식이 잘 되지 않는 원인, 예를 들면, 발화자 주변의 소음이 심하기 때문인지, 발화자의 발음이 부정확하기 때문인지 등까지 고려하여 발화자의 상황에 따라 적응적으로 피드백을 출력하기는 어려운 실정이었다.
한국등록특허 제10-2238855호 (2021.04.06 등록)
본 개시의 몇몇 실시예들을 통해 해결하고자 하는 기술적 과제는, 딥러닝 기법을 이용하여 음성을 인식하는 방법 및 그 방법이 적용된 시스템을 제공하는 것이다.
본 개시의 몇몇 실시예들을 통해 해결하고자 하는 다른 기술적 과제는, 소음 카테고리 및/또는 발화 상황을 고려하여 적응적으로 음성을 인식하는 방법 및 그 방법이 적용된 시스템을 제공하는 것이다.
본 개시의 몇몇 실시예들을 통해 해결하고자 하는 또 다른 기술적 과제는, 복수의 STT 모델을 이용하여 음성을 인식하는 방법 및 그 방법이 적용된 시스템을 제공하는 것이다.
본 개시의 몇몇 실시예들을 통해 해결하고자 하는 또 다른 기술적 과제는, 인식한 음성에 관한 발화 정확도를 산출하는 방법 및 그 방법이 적용된 시스템을 제공하는 것이다.
본 개시의 몇몇 실시예들을 통해 해결하고자 하는 또 다른 기술적 과제는, 음성 인식이 잘 되지 않은 경우에 그 원인에 따라 적응적으로 피드백을 생성하는 방법 및 그 방법이 적용된 시스템을 제공하는 것이다.
본 개시의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 개시의 기술분야에서의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한 본 개시의 일 실시예에 따른 음성 인식 방법은, 소리 데이터를 획득하는 단계와, 소음 카테고리 추정 모델을 이용하여 상기 소리 데이터로부터 상기 소리 데이터에 포함되는 소음에 관한 소음 카테고리를 추정함으로써, 상기 소음에 관한 소음 인식 결과를 생성하는 단계와, 복수의 STT 모델을 각각 이용하여, 상기 소리 데이터로부터 상기 소리 데이터에 포함되는 음성에 관한 음성 인식 결과를 각각 생성하는 단계와, 상기 각각의 음성 인식 결과 및 상기 각각의 STT 모델에 대한 가중치에 기초하여, 상기 각각의 음성 인식 결과를 결합한 적응적 음성 인식 결과를 생성하는 단계를 포함할 수 있다. 이때, 상기 각각의 STT 모델에 대한 가중치는 상기 소음 인식 결과에 기초하여 결정되는 것일 수 있다.
일 실시예에서, 상기 소음 인식 결과를 생성하는 단계는, 발화 상황 추정 모델을 이용하여, 상기 추정되는 소음 카테고리에 기초하여 발화 상황을 추정하는 단계를 포함할 수 있다. 이때, 상기 각각의 STT 모델에 대한 가중치는 상기 추정되는 발화 상황에 기초하여 결정되는 것일 수 있다.
이때, 상기 소음 인식 결과를 생성하는 단계는, 상기 소리 데이터로부터 상기 소음의 크기를 산출하는 단계를 포함하고, 상기 발화 상황을 추정하는 단계는, 상기 소음의 크기에 더 기초하여 상기 발화 상황을 추정하는 단계를 포함할 수 있다.
또한, 상기 발화 상황을 추정하는 단계는, 발화자 단말로부터 획득되는 환경 정보에 더 기초하여 상기 발화 상황을 추정하는 단계를 포함하되, 상기 환경 정보는, 상기 발화자의 위치 정보, 상기 발화자 주변의 조도 정보 및 상기 발화자 단말의 가속도 정보 중 적어도 하나를 포함할 수 있다.
또한, 상기 추정되는 발화 상황은 n 개의 발화 상황에 관한 확률 벡터이고, 상기 복수의 STT 모델은 상기 n 개이며, 상기 추정되는 발화 상황에 관한 확률 벡터에 포함되는 상기 n 개의 확률 변수의 값 각각이 상기 각각의 확률 변수에 대응되는 STT 모델에 대한 가중치로서 결정되고, 상기 n은 2 이상의 자연수일 수 있다.
또한, 상기 추정되는 발화 상황은 n 개의 발화 상황에 관한 확률 벡터이고, 상기 복수의 STT 모델은 상기 n 개이며, 상기 각각의 STT 모델은 상기 n 개의 발화 상황별로 학습된 것이고, 상기 추정되는 발화 상황에 관한 확률 벡터에 포함되는 제1 확률 변수의 값이 더 클수록 상기 제1 확률 변수에 대응되는 발화 상황에 관하여 학습된 STT 모델에 대한 가중치가 더 커지도록, 상기 각각의 STT 모델에 대한 가중치가 결정되는, 상기 n은 2 이상의 자연수일 수 있다.
일 실시예에서, 상기 추정되는 소음 카테고리는 n 개의 소음 카테고리에 관한 확률 벡터이고, 상기 복수의 STT 모델은 상기 n 개이며, 상기 각각의 STT 모델은 상기 n 개의 소음 카테고리별로 학습된 것이고, 상기 n은 2 이상의 자연수일 수 있다.
이때, 상기 추정되는 소음 카테고리에 관한 확률 벡터에 포함되는 제1 확률 변수의 값이 더 클수록 상기 제1 확률 변수에 대응되는 소음 카테고리에 관하여 학습된 STT 모델에 대한 가중치가 더 커지도록, 상기 각각의 STT 모델에 대한 가중치가 결정될 수 있다.
일 실시예에서, 상기 각각의 음성 인식 결과는, 상기 각각의 STT 모델이 출력하는 음성 인식 단위 기호에 관한 확률 벡터이고, 상기 적응적 음성 인식 결과를 생성하는 단계는, 상기 각각의 음성 인식 결과와 상기 각각의 STT 모델에 대한 가중치를 곱한 값을 합산함으로써, 상기 각각의 음성 인식 결과를 결합한 상기 적응적 음성 인식 결과를 생성하는 단계를 포함할 수 있다.
일 실시예에서, 상기 각각의 음성 인식 결과 사이의 일치도에 기초하여 상기 음성에 관한 발화 정확도를 산출하는 단계를 더 포함할 수 있다.
상기 기술적 과제를 해결하기 위한 본 개시의 다른 실시예에 따른 음성 인식 방법은, 소리 데이터를 획득하는 단계와, 소음 카테고리 추정 모델을 이용하여 상기 소리 데이터로부터 상기 소리 데이터에 포함되는 소음에 관한 소음 카테고리를 추정함으로써, 상기 소음에 관한 소음 인식 결과를 생성하는 단계와, STT 모델을 이용하여, 상기 소음 인식 결과에 기초하여 상기 소리 데이터로부터 상기 소리 데이터에 포함되는 음성에 관한 적응적 음성 인식 결과를 생성하는 단계와, 상기 적응적 음성 인식 결과에 기초하여 상기 음성에 관한 발화 정확도를 산출하는 단계를 포함할 수 있다.
일 실시예에서, 상기 발화 정확도를 산출하는 단계는, 상기 적응적 음성 인식 결과로부터 제1 파형을 생성하고, 상기 소리 데이터로부터 제2 파형을 생성하는 단계와, 상기 제1 파형 및 상기 제2 파형 사이의 차이에 기초하여 상기 발화 정확도를 산출하는 단계를 포함할 수 있다.
일 실시예에서, 상기 발화 정확도를 산출하는 단계는, 언어 모델을 이용하여 상기 적응적 음성 인식 결과를 처리함으로써, 상기 적응적 음성 인식 결과를 수정하는 단계와, 상기 수정된 적응적 음성 인식 결과 및 상기 적응적 음성 인식 결과 사이의 차이에 기초하여 상기 발화 정확도를 산출하는 단계를 포함할 수 있다.
일 실시예에서, 상기 발화 정확도를 산출하는 단계는, 상기 소리 데이터로부터 상기 음성의 크기를 산출하는 단계와, 상기 음성의 크기에 기초하여 상기 발화 정확도를 산출하는 단계를 포함할 수 있다.
일 실시예에서, 상기 소음 인식 결과를 생성하는 단계는, 상기 소리 데이터로부터 상기 소음의 크기를 산출하는 단계를 포함하고, 상기 발화 정확도를 산출하는 단계는, 상기 소음의 크기에 더 기초하여 상기 발화 정확도를 산출하는 단계를 포함할 수 있다.
일 실시예에서, 상기 소음 인식 결과를 생성하는 단계는, 상기 소리 데이터로부터 상기 소음의 크기를 산출하는 단계를 포함하고, 상기 음성 인식 방법은, 상기 소음의 크기 및 상기 발화 정확도에 기초하여, 적응적 음성 인식 결과를 재생성하기 위한 발화자의 행동을 요청하는 피드백을 생성하는 단계를 더 포함할 수 있다.
이때, 상기 피드백을 생성하는 단계는, 상기 발화 정확도가 발화 정확도 기준치 미만인 것에 대응하여, 상기 발화 정확도가 상기 발화 정확도 기준치 미만이 된 원인을 상기 소음 및 상기 음성 중 어느 하나로 특정하는 단계와, 상기 특정된 원인에 따라 상기 피드백을 생성하는 단계를 포함하되, 상기 원인을 상기 소음 및 상기 음성 중 어느 하나로 특정하는 단계는, 상기 소음의 크기가 소음 크기 기준치 초과인 것에 대응하여, 상기 원인을 상기 소음으로 특정하는 단계와, 상기 소음의 크기가 소음 크기 기준치 이하인 것에 대응하여, 상기 원인을 상기 음성으로 특정하는 단계를 포함할 수 있다. 또한, 상기 소음 인식 결과를 생성하는 단계는, 발화 상황 추정 모델을 이용하여, 상기 소음 카테고리에 기초하여 발화 상황을 추정하는 단계를 포함하고, 상기 피드백을 생성하는 단계는, 상기 원인이 상기 소음으로 특정되는 것에 대응하여, 상기 발화 상황에 기초하여 상기 피드백을 생성하는 단계를 포함할 수 있다.
상기 기술적 과제를 해결하기 위한 본 개시의 또 다른 실시예에 따른 음성 인식 시스템은, 통신 인터페이스, 컴퓨터 프로그램이 로드(load)되는 메모리 및 상기 컴퓨터 프로그램을 실행하는 프로세서를 포함할 수 있다. 이때, 상기 컴퓨터 프로그램은, 소리 데이터를 획득하는 인스트럭션들(instructions)과, 소음 카테고리 추정 모델을 이용하여 상기 소리 데이터로부터 상기 소리 데이터에 포함되는 소음에 관한 소음 카테고리를 추정함으로써, 상기 소음에 관한 소음 인식 결과를 생성하는 인스트럭션들과, 복수의 STT(Speech-To-Text) 모델을 각각 이용하여, 상기 소리 데이터로부터 상기 소리 데이터에 포함되는 음성에 관한 음성 인식 결과를 각각 생성하는 인스트럭션들과, 상기 각각의 음성 인식 결과 및 상기 각각의 STT 모델에 대한 가중치에 기초하여, 상기 각각의 음성 인식 결과를 결합한 적응적 음성 인식 결과를 생성하되, 상기 각각의 STT 모델에 대한 가중치는 상기 소음 인식 결과에 기초하여 결정되는 것인, 인스트럭션들을 포함할 수 있다.
상기 기술적 과제를 해결하기 위한 본 개시의 또 다른 실시예에 따른 음성 인식 시스템은, 통신 인터페이스, 컴퓨터 프로그램이 로드(load)되는 메모리 및 상기 컴퓨터 프로그램을 실행하는 프로세서를 포함할 수 있다. 이때, 상기 컴퓨터 프로그램은, 소리 데이터를 획득하는 인스트럭션들과, 소음 카테고리 추정 모델을 이용하여 상기 소리 데이터로부터 상기 소리 데이터에 포함되는 소음에 관한 소음 카테고리를 추정함으로써, 상기 소음에 관한 소음 인식 결과를 생성하는 인스트럭션들과, STT 모델을 이용하여, 상기 소음 인식 결과에 기초하여 상기 소리 데이터로부터 상기 소리 데이터에 포함되는 음성에 관한 적응적 음성 인식 결과를 생성하는 인스트럭션들과, 상기 적응적 음성 인식 결과에 기초하여 상기 음성에 관한 발화 정확도를 산출하는 인스트럭션들을 포함할 수 있다.
도 1 및 도 2는 본 개시의 몇몇 실시예에 따른 음성 인식 시스템의 구성도이다.
도 3은 본 개시의 몇몇 실시예에 따른 음성 인식 방법의 순서도이다.
도 4는 도 3을 참조하여 설명한 음성 인식 방법이 변형된 방법을 설명하기 위한 순서도이다.
도 5는 적응적 음성 인식 결과를 생성하는 과정을 예시적으로 나타내는 도면이다.
도 6은 본 개시의 다른 몇몇 실시예에 따른 음성 인식 방법의 순서도이다.
도 7은 도 6을 참조하여 설명한 음성 인식 방법의 일부 동작을 설명하기 위한 상세 순서도이다.
도 8은 파형 분석이 기초하여 발화 정확도를 산출하는 과정을 예시적으로 나타내는 도면이다.
도 9는 본 개시의 다른 몇몇 실시예에 따른 음성 인식 방법의 순서도이다.
도 10은 도 9를 참조하여 설명한 음성 인식 방법의 일부 동작을 설명하기 위한 상세 순서도이다.
도 11은 본 개시의 몇몇 실시예들에 따른 음성 인식 시스템을 구현할 수 있는 예시적인 컴퓨팅 장치를 도시한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명의 기술적 사상은 이하의 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 이하의 실시예들은 본 발명의 기술적 사상을 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명의 기술적 사상은 청구항의 범주에 의해 정의될 뿐이다.
본 개시의 다양한 실시예들을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
다른 정의가 없다면, 이하의 실시예들에서 사용되는 용어(기술 및 과학적 용어를 포함)는 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있으나, 이는 관련 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수도 있다. 본 개시에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 개시의 범주를 제한하고자 하는 것은 아니다.
이하의 실시예들에서 사용되는 단수의 표현은 문맥상 명백하게 단수인 것으로 특정되지 않는 한, 복수의 개념을 포함한다. 또한, 복수의 표현은 문맥상 명백하게 복수인 것으로 특정되지 않는 한, 단수의 개념을 포함한다.
또한, 이하의 실시예들에서 사용되는 제1, 제2, A, B, (a), (b) 등의 용어는 어떤 구성요소를 다른 구성요소와 구별하기 위해 사용되는 것일 뿐, 그 용어에 의해 해당 구성요소의 본질이나 차례 또는 순서 등이 한정되지는 않는다.
이하, 첨부된 도면들을 참조하여 본 개시의 다양한 실시예들에 대하여 상세하게 설명한다.
도 1 및 도 2는 본 개시의 몇몇 실시예에 따른 음성 인식 시스템의 구성도이다.
일 실시예에서, 음성 인식 시스템(10)은 발화자 단말(미도시됨)에 포함되어 수행되는 시스템일 수 있다. 다른 실시예에서, 음성 인식 시스템(10)은 발화자 단말 외부의 시스템(미도시됨)에 포함되어 수행되는 시스템일 수 있다. 음성 인식 시스템(10)이 발화자 단말 외부의 시스템에 포함되는 경우에, 음성 인식 시스템(10)은 통신망을 통하여 발화자 단말로부터 소리 데이터를 획득하고, 그 소리 데이터를 처리한 결과를 상기 발화자 단말에 전달하는 기능을 수행하는 시스템일 수 있다. 또 다른 실시예에서, 음성 인식 시스템(10)의 구성 중 일부는 발화자 단말에 포함되고, 나머지 일부는 외부 시스템에 포함된 형태로 음성 인식 시스템(10)의 기능이 수행될 수도 있다.
한편, 상기 통신망은 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN), 이동 통신망(mobile radio communication network), Wibro(Wireless Broadband Internet) 등과 같은 모든 종류의 유/무선 네트워크로 구현될 수 있다.
본 개시의 일 실시예에 따른 음성 인식 시스템(10)의 구성 및 동작을 도 1을 참조하여 설명하기로 한다. 도 1에 도시된 바와 같이, 본 개시의 일 실시예에 따른 음성 인식 시스템(10)은 소리 데이터 획득기(100), 소음 인식기(200), 음성 인식기(300) 및 가중치 결정기(400)를 포함하여 구성될 수 있고, 몇몇 실시예들에서, 발화 정확도 산출기(500) 및 출력기(700) 중 적어도 일부를 더 포함할 수 있다.
소리 데이터 획득기(100)는 발화자 단말로부터 소리 데이터를 획득할 수 있다. 이를 위하여 발화자 단말에 포함된 마이크로폰이 사용될 수 있다. 상기 소리 데이터는 소음과 발화자의 음성이 모두 포함된 데이터일 수 있고, 소정의 시간 단위(예를 들면, 100ms 내지 500ms 범위 내의 시간 단위)로 획득될 수 있다. 한편, 본 개시의 실시예들에서 소리 데이터는 반드시 로(raw) 데이터일 필요는 없고, 상기 로 데이터에 대하여 소정의 전처리가 수행된 데이터일 수도 있다.
소음 인식기(200)는 소음 카테고리 추정기(210)를 포함하여 구성될 수 있고, 몇몇 실시예들에서, 발화 상황 추정기(220) 및 소음 크기 산출기(230) 중 적어도 일부를 더 포함할 수 있다.
소음 카테고리 추정기(210)는 소음 카테고리 추정 모델(미도시됨)을 이용하여 소리 데이터로부터 상기 소리 데이터에 포함되는 소음에 관한 소음 카테고리를 추정함으로써, 상기 소음에 관한 소음 인식 결과를 생성할 수 있다.
몇몇 실시예에서, 소음 카테고리는, 주변 사람들의 음성, 자동차를 운전하는 소리, 자동차 경적 소리, 바람 소리, 음식물 씹는 소리, 음악 소리 등과 같은 소음의 종류를 의미할 수 있다. 또한, 몇몇 실시예에서, 소음 카테고리는, 사무실, 야구장, 카페, 술집, 길거리, 자동차 안 등과 같은 소음 환경을 의미할 수도 있다. 또한, 상기 소음 카테고리는, 사용자가 임의로 분류한 것이 아니라, 다양한 소리 데이터를 비지도 학습 기반의 클러스터링(clustering) 기법을 이용하여 처리함으로써 형성된 클러스터에 따라 정해진 것일 수도 있다. 다만, 소음 카테고리가 위의 설명된 내용에 한정되는 것은 아니고, 본 개시의 목적을 달성할 수 있는 범위 내라면 다양하게 변경될 수 있다.
소음 카테고리 추정 모델은, 다양한 소음 카테고리에 관하여 레이블링(labeling) 된 소리 데이터를 이용하여 학습된 딥러닝 기반의 모델일 수 있으며, 소음을 포함하는 소리 데이터를 입력 데이터로 받고, 이를 처리하여 복수의 소음 카테고리에 관한 확률 벡터를 출력하는 모델일 수 있다. 예를 들면, n 개의 소음 카테고리가 있는 경우에, 상기 소음 카테고리에 관한 확률 벡터는 n개의 확률 변수를 포함하는 (x1, x2, …, xn) 와 같은 형태일 수 있다. 이때, 각 확률 변수(x1 내지 xn)의 값은 상기 소리 데이터(또는 그에 포함된 소음)가 해당 확률 변수에 대응되는 소음 카테고리에 해당할 확률을 의미할 수 있다.
발화 상황 추정기(220)는, 소음 카테고리 추정기(210)에 의하여 추정되는 소음 카테고리에 기초하여 발화 상황을 추정할 수 있다. 이를 위해, 상기 추정되는 소음 카테고리에 기초하여 상기 발화 상황을 추정하도록 학습된 딥러닝 기반의 발화 상황 추정 모델이 이용될 수 있다. 상기 발화 상황 추정 모델은 상기 추정되는 소음 카테고리를 입력 데이터로 받고, 이를 처리하여 복수의 발화 상황에 관한 확률 벡터를 출력하는 모델일 수 있다. 예를 들면, n 개의 발화 상황이 있는 경우에, 상기 발화 상황에 관한 확률 벡터는 n개의 확률 변수를 포함하는 (x1, x2, …, xn) 와 같은 형태일 수 있다. 이때, 각 확률 변수(x1 내지 xn)의 값은 소리 데이터(또는 그에 포함된 소음)가 해당 확률 변수에 대응되는 발화 상황에 해당할 확률(또는 해당 확률 변수에 대응되는 발화 상황에서 획득되었을 확률)을 의미할 수 있다.
몇몇 실시예에서, 발화 상황은, 사무실, 야구장, 카페, 술집, 길거리, 자동차 안 등과 같은 발화 환경을 의미할 수 있다. 이 경우에, 소음 카테고리 추정기(210)에 의하여 추정되는 소음 카테고리는 상술한 소음의 종류일 수 있다. 또한, 몇몇 실시예에서, 발화 상황은, 회의 중, 운전 중, 도보 중, 식사 중 등과 같은 발화자의 상황을 의미할 수도 있다. 이 경우에, 소음 카테고리 추정기(210)에 의하여 추정되는 소음 카테고리는, 상술한 소음의 종류일 수 있고, 소음 환경을 의미할 수도 있다. 다만, 발화 상황이 위의 설명된 내용에 한정되는 것은 아니고, 본 개시의 목적을 달성할 수 있는 범위 내라면 다양하게 변경될 수 있다.
몇몇 실시예에서, 발화 상황 추정기(220)는, 소음 카테고리 추정기(210)에 의하여 추정되는 소음 카테고리 이외에도, 소음 크기 산출기(230)에 의하여 산출되는 소음의 크기(예를 들면, 0~1 사이의 값) 및/또는 발화자 단말로부터 획득되는 환경 정보에 더 기초하여 발화 상황을 추정할 수 있다. 이때, 상기 환경 정보는, 상기 발화 상황을 보다 구체적으로 추정하기 위한 것으로서, 상기 발화자의 위치 정보(예를 들면, GPS 정보), 상기 발화자 주변의 조도 정보 및 상기 발화자 단말의 가속도 정보 중 적어도 하나를 포함할 수 있다. 상기 조도 정보 및 상기 가속도 정보는 각각 상기 발화자 단말의 조도 센서 및 가속도 센서를 이용하여 획득되는 것일 수 있다. 다만, 상기 환경 정보의 종류가 위의 설명된 내용에 한정되는 것은 아니고, 본 개시의 목적을 달성할 수 있는 범위 내라면 다양하게 변경될 수 있다.
몇몇 실시예에서, 음성 인식기(300)는 복수의 STT 모델(310-1 내지 310-n) 및 적응적 음성 인식 결과 생성기(320)를 포함하여 구성될 수 있다.
상기 복수의 STT 모델(310-1 내지 310-n) 각각은 소리 데이터를 입력 데이터로 받고, 이를 처리하여 음성 인식 단위 기호에 관한 확률 벡터를 출력하는 딥러닝 기반의 모델일 수 있다. 음성 인식 단위가 음소(grapheme; phoneme)인 경우에는, 'ㄱ', 'ㄴ', 'ㅏ', 'ㅓ' 등의 음소가 음성 인식 단위 기호가 될 수 있고, 음성 인식 단위가 음절(syllable)인 경우에는, '가', '나', '아', '켜' 등과 같은 음절이 음성 인식 단위 기호가 될 수 있다. 다만, 상기 음성 인식 단위나 음성 인식 기호가 위의 설명된 내용에 한정되는 것은 아니고, 본 개시의 목적을 달성할 수 있는 범위 내라면 다양하게 변경될 수 있다.
한편, n 개의 음성 인식 단위 기호가 있는 경우에, 상기 음성 인식 단위 기호에 관한 확률 벡터는 n개의 확률 변수를 포함하는 (x1, x2, …, xn) 와 같은 형태일 수 있다. 이때, 각 확률 변수(x1 내지 xn)의 값은 소리 데이터에 포함되는 음성이 해당 확률 변수에 대응되는 음성 인식 단위 기호에 해당할 확률을 의미할 수 있다.
몇몇 실시예에서, 복수의 STT 모델(310-1 내지 310-n) 각각은 소음 카테고리별로 학습되거나 발화 상황별로 학습된 것일 수 있다. 예를 들면, 제1 STT 모델(310-1)은 제1 소음 카테고리에 관한 소리 데이터를 학습 데이터로서 이용하여 학습된 모델이고, 제n STT 모델(310-n)은 제n 소음 카테고리에 관한 소리 데이터를 학습 데이터로서 이용하여 학습된 모델일 수 있다. 다른 예를 들면, 제1 STT 모델(310-1)은 제1 발화 상황에 관한 소리 데이터를 학습 데이터로서 이용하여 학습된 모델이고, 제n STT 모델(310-n)은 제n 발화 상황에 관한 소리 데이터를 학습 데이터로서 이용하여 학습된 모델일 수 있다.
적응적 음성 인식 결과 생성기(320)는, 상기 복수의 STT 모델(310-1 내지 310-n)이 각각 생성하는 음성 인식 결과(예를 들면, 음성 인식 단위 기호에 관한 확률 벡터) 및 상기 복수의 STT 모델(310-1 내지 310-n) 각각에 대한 가중치에 기초하여, 상기 각각의 음성 인식 결과를 결합한 적응적 음성 인식 결과를 생성할 수 있다.
몇몇 실시예에서, 적응적 음성 인식 결과 생성기(320)는, 상기 각각의 음성 인식 결과와 상기 각각의 STT 모델(310-1 내지 310-n)에 대한 가중치를 곱한 값을 합산함으로써, 상기 각각의 음성 인식 결과를 결합한 적응적 음성 인식 결과를 생성할 수 있다.
가중치 결정기(400)는, 소음 인식기(200)에 의하여 생성되는 소음 인식 결과(예를 들면, 소음 카테고리, 발화 상황, 소음 크기 등)에 기초하여 복수의 STT 모델(310-1 내지 310-n) 각각에 대한 가중치를 결정할 수 있다. 몇몇 실시예에서, 가중치 결정기(400)는, 적응적 음성 인식 결과 생성기(320)에 의하여 생성되는 적응적 음성 인식 결과와 소리 데이터에 실제로 포함된 음성의 차이가 최소화되는 방향으로 상기 각각의 STT 모델(310-1 내지 310-n)에 대한 가중치를 결정하도록 학습된 딥러닝 기반의 모델일 수 있다.
몇몇 실시예에서, 발화 상황 추정기(220)에 의하여 발화 상황이 추정되고, 상기 추정되는 발화 상황이 n 개의 발화 상황에 관한 확률 벡터인 경우에, 가중치 결정기(400)는, 상기 발화 상황에 관한 확률 벡터에 포함되는 상기 n 개의 확률 변수의 값 각각을 복수의 STT 모델(310-1 내지 310-n) 각각에 대한 가중치로서 결정할 수 있다.
다른 몇몇 실시예에서, 발화 상황 추정기(220)에 의하여 발화 상황이 추정되고, 상기 추정되는 발화 상황이 n 개의 발화 상황에 관한 확률 벡터인 경우에, 상기 각각의 STT 모델(310-1 내지 310-n)이 상기 n 개의 발화 상황별로 학습된 것이라면, 가중치 결정기(400)는, 상기 발화 상황에 관한 확률 벡터에 포함되는 제1 확률 변수의 값이 더 클수록 상기 제1 확률 변수에 대응되는 발화 상황에 관하여 학습된 STT 모델에 대한 가중치가 더 커지도록, 상기 각각의 STT 모델(310-1 내지 310-n)에 대한 가중치를 결정할 수 있다. 예를 들어, 상기 제1 확률 변수의 값이, 소리 데이터(또는 그에 포함된 소음)가 상기 n 개의 발화 상황 중에서 제1 발화 상황에 해당할 확률(또는 제1 발화 상황에서 획득되었을 확률)을 의미한다면, 가중치 결정기(400)는, 상기 제1 확률 변수의 값이 더 클수록 상기 제1 발화 상황에 관하여 학습된 STT 모델에 대한 가중치가 더 커지도록 결정할 수 있다.
또 다른 몇몇 실시예에서, 소음 카테고리 추정기(210)에 의하여 소음 카테고리가 추정되고, 상기 추정되는 소음 카테고리가 n 개의 소음 카테고리에 관한 확률 벡터인 경우에, 상기 각각의 STT 모델(310-1 내지 310-n)이 상기 n 개의 소음 카테고리별로 학습된 것이라면, 가중치 결정기(400)는, 상기 소음 카테고리에 관한 확률 벡터에 포함되는 제1 확률 변수의 값이 더 클수록 상기 제1 확률 변수에 대응되는 소음 카테고리에 관하여 학습된 STT 모델에 대한 가중치가 더 커지도록, 상기 각각의 STT 모델(310-1 내지 310-n)에 대한 가중치를 결정할 수 있다. 예를 들어, 상기 제1 확률 변수의 값이, 소리 데이터(또는 그에 포함된 소음)가 상기 n 개의 소음 카테고리 중에서 제1 소음 카테고리에 해당할 확률을 의미한다면, 가중치 결정기(400)는, 상기 제1 확률 변수의 값이 더 클수록 상기 제1 소음 카테고리에 관하여 학습된 STT 모델에 대한 가중치가 더 커지도록 결정할 수 있다.
본 개시의 몇몇 실시예에 따르면, 상술한 바와 같이 가중치를 결정함으로써, 소음 환경에 강인한 음성 인식이 수행되도록 할 수 있다.
몇몇 실시예에서, 발화 정확도 산출기(500)는, 복수의 STT 모델(310-1 내지 310-n)이 각각 생성하는 음성 인식 결과 사이의 일치도에 기초하여, 소리 데이터에 포함되는 음성에 관한 발화 정확도(예를 들면, 0~1 사이의 값)를 산출할 수 있다. 예를 들면, 발화 정확도 산출기(500)는, 상기 각각의 음성 인식 결과 사이의 일치도가 더 높을수록 상기 발화 정확도가 더 커지도록 상기 발화 정확도를 산출할 수 있다. 이때, 상기 각각의 음성 인식 결과 사이의 일치도는, 특정 시간 단위(t) 동안 획득된 소리 데이터(소리 데이터(t))로부터 생성된 음성 인식 결과를 비교하여 산출될 수도 있지만, 그 특정 시간 단위보다 앞선 과거의 시간 단위(t-1, t-2 등) 동안 획득된 소리 데이터(소리 데이터(t-1), 소리 데이터(t-2) 등)로부터 생성되어 누적된 음성 인식 결과까지 함께 비교하여 산출될 수도 있다.
출력기(700)는, 적응적 음성 인식 결과가 생성되고 발화 정확도가 발화 정확도 기준치 이상이라면(즉, 음성이 잘 인식되었다면), 상기 적응적 음성 인식 결과를 필요에 따라 텍스트 또는 음성으로 출력하거나, 외부 시스템(예를 들면, 음성 인식 기능을 활용하는 애플리케이션, 대화형 AI 시스템 등)에게 전달할 수 있다. 몇몇 실시예에서, 출력기(700)는 피드백 생성기(710)를 포함하여 구성될 수 있는데, 이에 관하여는 이하에서 도 2를 참조하여 자세하게 설명하기로 한다.
본 개시의 다른 실시예에 따른 음성 인식 시스템(10)의 구성 및 동작을 도 2를 참조하여 설명하기로 한다. 도 1에서 설명된 여러 구성들과 그 기능이 중복되는 부분에 대해서는 설명을 생략하기로 한다. 한편, 본 개시에서는 본 발명에 대한 이해를 돕기 위하여 도 1 및 도 2를 각각 참조하여 음성 인식 시스템(10)에 대하여 설명하고 있지만, 이러한 내용은 서로 독립된 실시예에 관한 것이 아니라는 점이 이해되어야 한다.
즉, 논리적으로 불가능한 것이 아닌 이상, 도 1을 참조하여 설명되는 음성 인식 시스템(10)의 구성과 기능의 적어도 일부는, 도 2를 참조하여 설명되는 음성 인식 시스템(10)에 적용되거나 도 2를 참조하여 설명되는 음성 인식 시스템(10)에서 수행될 수 있다. 마찬가지로, 이하에서 도 2를 참조하여 설명되는 음성 인식 시스템(10)의 구성과 기능의 적어도 일부는, 도 1을 참조하여 설명된 음성 인식 시스템(10)에 적용되거나 도 1을 참조하여 설명된 음성 인식 시스템(10)에서 수행될 수 있다. 예를 들면, 도 2는 하나의 STT 모델(310)을 포함하는 음성 인식기(300)에 관하여 도시하고 있지만, 도 1을 참조하여 상술된 바와 같이, 상기 음성 인식기(300)는 복수의 STT 모델을 포함하여 구성될 수 있고, 그 복수의 STT 모델 각각에 대한 가중치를 결정하기 위한 가중치 결정기(400)도 포함될 수 있다.
도 2에 도시된 바와 같이, 본 개시의 일 실시예에 따른 음성 인식 시스템(10)은 소리 데이터 획득기(100), 소음 인식기(200), 음성 인식기(300) 및 발화 정확도 산출기(500)를 포함하여 구성될 수 있고, 몇몇 실시예들에서, 언어 모델(600) 및 출력기(700) 중 적어도 일부를 더 포함할 수 있다.
몇몇 실시예에서, 음성 인식기(300)는 하나의 STT 모델(310)을 포함하여 구성될 수 있다. 이 경우에는, 상기 STT 모델(310)이 소음 인식 결과에 기초하여 음성에 관한 적응적 음성 인식 결과를 생성하게 되므로, 상기 STT 모델(310)이 적응적 음성 인식 결과 생성기로 지칭될 수 있다. 상기 STT 모델(310)은 소리 데이터를 입력 데이터로 받고, 이를 처리하여 음성 인식 단위 기호에 관한 확률 벡터를 출력하는 딥러닝 기반의 모델일 수 있다. 이때, 상기 STT 모델(310)이 상기 확률 벡터를 출력함에 있어서 사용되는 상기 STT 모델(310)의 적어도 일부의 파라미터는 소음 인식기(200)에 의하여 생성되는 소음 인식 결과에 기초하여 결정될 수 있다.
몇몇 실시예에서, 발화 정확도 산출기(500)는, 음성 인식기(300)에 의하여 생성되는 적응적 음성 인식 결과에 기초하여 음성에 관한 발화 정확도를 산출할 수 있으며, 파형 분석기(510) 및 음성 크기 산출기(520) 및 적어도 일부를 포함하여 구성될 수 있다.
몇몇 실시예에서, 파형 분석기(510)는 적응적 음성 인식 결과로부터 제1 파형을 생성하고, 소리 데이터로부터 제2 파형을 생성할 수 있다. 그리고, 상기 제1 파형 및 상기 제2 파형 사이의 차이에 기초하여 음성에 관한 발화 정확도를 산출할 수 있다. 예를 들면, 파형 분석기(510)는, 상기 제1 파형 및 상기 제2 파형 사이의 차이가 더 클수록 상기 발화 정확도가 더 작아지도록 상기 발화 정확도를 산출할 수 있다. 이때, 상기 제1 파형 및 상기 제2 파형 사이의 차이는, 특정 시간 단위(t) 동안 획득된 소리 데이터(소리 데이터(t))로부터 생성된 파형(제1 파형 및 제2 파형)을 비교하여 산출될 수도 있지만, 그 특정 시간 단위보다 앞선 과거의 시간 단위(t-1, t-2 등) 동안 획득된 소리 데이터(소리 데이터(t-1), 소리 데이터(t-2) 등)로부터 생성되어 시간순으로 누적된 적응적 음성 인식 결과에 기초하여 생성된 파형을 비교하여 산출될 수도 있다.
몇몇 실시예에서, 음성 크기 산출기(520)는 소리 데이터에 포함되는 음성의 크기(예를 들면, 0~1 사이의 값)를 산출하고, 이에 기초하여 상기 음성에 관한 발화 정확도를 산출할 수 있다. 예를 들면, 음성 크기 산출기(520)는, 음성의 크기가 더 클수록 상기 발화 정확도가 더 커지도록 상기 발화 정확도를 산출할 수 있다.
언어 모델(600)은, 음성 인식기(300)에 의하여 생성되는 적응적 음성 인식 결과를 입력 데이터로 받고, 이를 처리하여 상기 적응적 음성 인식 결과를 수정하여 출력하는 모델일 수 있다. 예를 들면, 언어 모델(600)은 자연어 처리 모델일 수 있다. 몇몇 실시예에서, 언어 모델(600)은 상기 적응적 음성 인식 결과를 시간순으로 누적하고, 이를 바탕으로 최적의 텍스트를 도출할 수 있다. 이렇게 도출된 텍스트는 출력기(700)로 전달될 수 있다.
몇몇 실시예에서, 언어 모델(600)에 의하여 수정된 적응적 음성 인식 결과는 발화 정확도 산출기(500)에 전달될 수 있고, 발화 정확도 산출기(500)는 상기 수정된 적응적 음성 인식 결과 및 상기 적응적 음성 인식 결과의 차이에 기초하여 상기 발화 정확도를 산출할 수 있다.
몇몇 실시예에서, 출력기(700)는 피드백 생성기(710)를 포함하여 구성될 수 있다. 피드백 생성기(710)는, 소음의 크기 및 발화 정확도에 기초하여, 적응적 음성 인식 결과를 재생성하기 위한 발화자의 행동을 요청하는 피드백을 생성할 수 있다. 이때, 피드백 생성기(710)는, 상기 발화 정확도가 발화 정확도 기준치 미만인 것에 대응하여, 상기 발화 정확도가 발화 정확도 기준치 미만이 된 원인을 소음과 음성 중 어느 하나로 특정할 수 있고, 그 특정된 원인에 따라 상기 피드백을 생성할 수 있다.
예를 들면, 상기 원인이 소음으로 특정된 경우에, 소음에 관한 피드백으로서, "주변이 너무 소란스럽습니다. 조용한 곳으로 이동해 주세요.", "갑작스러운 소음에 잘 못 들었습니다. 다시 한 번 말씀해 주시겠어요?" 등과 같은 텍스트 또는 음성을 상기 피드백으로서 생성할 수 있다. 다른 예를 들면, 상기 원인이 음성으로 특정된 경우에, 음성에 관한 피드백으로서, "조금만 천천히 정확하게 말씀해 주세요.", "좀 더 크게 말씀해 주세요" 등과 같은 텍스트 또는 음성을 상기 피드백으로서 생성할 수 있다.
상술한 소리 데이터 획득기(100), 소음 인식기(200), 음성 인식기(300), 가중치 결정기(400), 발화 정확도 산출기(500), 언어 모델(600) 및 출력기(700) 각각은 독자적인 컴퓨팅 시스템으로서 구현되거나, 소리 데이터 획득기(100), 소음 인식기(200), 음성 인식기(300), 가중치 결정기(400), 발화 정확도 산출기(500), 언어 모델(600) 및 출력기(700) 중 적어도 일부는 하나의 컴퓨팅 시스템을 통하여 함께 구현될 수 있을 것이다.
이상 본 실시예에 따른 음성 인식 시스템(10)의 구성 및 동작을 간략하게 설명하였다. 음성 인식 시스템(10)의 동작은 후술 되는 실시예들을 통하여 보다 상세히 이해될 수 있을 것이다. 즉, 음성 인식 시스템(10)의 동작은 후술 되는 실시예들을 통하여 보충될 수 있는 것이다.
다음으로, 본 개시의 몇몇 실시예에 따른 음성 인식 방법을 도 3 내지 도 10을 참조하여 설명하기로 한다. 본 실시예에 따른 음성 인식 방법은 하나 이상의 컴퓨팅 시스템에 의하여 수행될 수 있다. 또한, 본 실시예에 따른 음성 인식 방법은 제1 컴퓨팅 장치에 의하여 일부 동작이 수행되고, 나머지 동작은 제2 컴퓨팅 장치에 의하여 수행될 수도 있다.
예를 들어, 본 실시예에 따른 음성 인식 방법의 일부 동작은 온-프레미스(On-Premise) 물리 서버에 의하여 일부 동작이 수행되고, 나머지 동작은 클라우드 서버에 의하여 수행될 수도 있을 것이다. 이하, 각 동작의 수행 주체가 생략된 경우, 그 수행 주체는 상기 컴퓨팅 시스템인 것으로 이해될 수 있을 것이다.
먼저, 도 1 및 도 3을 참조하여 본 개시의 일 실시예에 따른 음성 인식 방법을 개략적으로 설명한다. 필요에 따라 각 단계의 상세한 내용은 후술될 수 있다.
소리 데이터가 획득되고(S110), 소음 카테고리 추정 모델을 이용하여 상기 소리 데이터로부터 상기 소리 데이터에 포함되는 소음에 관한 소음 카테고리를 추정함으로써, 상기 소음에 관한 소음 인식 결과가 생성된다(S120). 이때, 상기 소음 인식 결과에 기초하여 복수의 STT 모델(310-1 내지 310-n) 각각에 대한 가중치가 결정될 수 있다(S210). 복수의 STT 모델을 각각 이용하여, 상기 소리 데이터로부터 상기 소리 데이터에 포함되는 음성에 관한 음성 인식 결과가 각각 생성된다(S130). 그 다음에, 상기 각각의 음성 인식 결과 및 상기 각각의 STT 모델에 대한 가중치에 기초하여, 상기 각각의 음성 인식 결과를 결합한 적응적 음성 인식 결과가 생성된다(S140).
한편, 도 3에서는 설명의 편의를 위하여 상기 소음 인식 결과가 생성(S120)된 다음에 상기 음성 인식 결과가 생성(S130)되는 것으로 도시되어 있지만, 본 개시의 일 실시예에 따른 음성 인식 방법이 반드시 이러한 순서를 따라 수행되어야 하는 것은 아니고, 그 순서가 서로 바뀌어 수행되거나, 각 단계가 병렬적으로 수행될 수도 있는 것으로 이해되어야 한다.
도 4를 참조하여 소음에 관한 소음 인식 결과를 생성하는 단계(S120)에 관하여 보다 자세히 설명한다. 소음 카테고리 추정 모델을 이용하여, 소리 데이터로부터 상기 소리 데이터에 포함되는 소음에 관한 소음 카테고리가 추정된다(S121). 상술한 바와 같이, 소음 카테고리 추정 모델은 다양한 소음 카테고리에 관하여 레이블링 된 소리 데이터를 이용하여 학습된 딥러닝 기반의 모델일 수 있으며, 소음을 포함하는 소리 데이터를 입력 데이터로 받고, 이를 처리하여 복수의 소음 카테고리에 관한 확률 벡터를 출력하는 모델일 수 있다.
그 다음에, 발화 상황 추정 모델을 이용하여, 상기 추정되는 소음 카테고리에 기초하여 발화 상황이 추정됨으로써, 상기 소음에 관한 소음 인식 결과가 생성된다(S122). 상술한 바와 같이, 이를 위해, 상기 추정되는 소음 카테고리에 기초하여 상기 발화 상황을 추정하도록 학습된 딥러닝 기반의 발화 상황 추정 모델이 이용될 수 있다. 상기 발화 상황 추정 모델은 상기 추정되는 소음 카테고리(복수의 소음 카테고리에 관한 확률 벡터)를 입력 데이터로 받고, 이를 처리하여 복수의 발화 상황에 관한 확률 벡터를 출력하는 모델일 수 있다. 이때, 위와 같이 추정되는 발화 상황에 기초하여 복수의 STT 모델(310-1 내지 310-n) 각각에 대한 가중치가 결정될 수 있다(S210).
몇몇 실시예에서, 상기 추정되는 소음 카테고리 이외에도, 소음의 크기 및/또는 발화자 단말로부터 획득되는 환경 정보에 더 기초하여 상기 발화 상황을 추정할 수 있다(S122).
한편, 특정 시간 단위(t) 동안 획득된 소리 데이터(소리 데이터(t))로부터 소음 인식 결과(소음 카테고리 및/또는 발화 상황)를 생성함에 있어서, 그 특정 시간 단위보다 앞선 과거의 시간 단위(t-1, t-2 등) 동안 획득된 소리 데이터(소리 데이터(t-1), 소리 데이터(t-2) 등)로부터 생성된 소음 인식 결과가 더 고려될 수 있다. 이렇게 함으로써 상술한 바와 같이 생성되는 소음 인식 결과의 정확도를 더 높일 수 있다.
도 5를 참조하여, 복수의 STT 모델을 각각 이용하여, 소리 데이터에 포함되는 음성에 관한 음성 인식 결과를 각각 생성하고(S130), 각각의 음성 인식 결과 및 각각의 STT 모델에 대한 가중치에 기초하여, 상기 각각의 음성 인식 결과를 결합한 적응적 음성 인식 결과를 생성하는(S140) 과정에 관하여 보다 자세히 설명한다.
소리 데이터는 소정의 시간 단위(예를 들면, 100ms 내지 500ms 범위 내의 시간 단위)로 획득된다. 현재 시간 단위(t)에 획득된 소리 데이터(t)(100-1)는 복수의 STT 모델(310-1 및 310-2)과 소음 인식기(200)에 입력된다.
STT 모델 #1(310-1)과 STT 모델 #2(310-2)는 각각 소리 데이터(100-1)에 포함되는 음성에 관한 음성 인식 결과(310-1a 및 310-2a)를 생성한다. 음성 인식 결과(310-1a 및 310-2a)는 음성 인식 단위 기호에 관한 확률 벡터일 수 있다. 도 5는 설명의 편의를 위하여 음성 인식 단위 기호가 4개인 경우를 도시하고 있다. STT 모델 #1(310-1)이 생성하는 확률 벡터(310-1a)인 (0.4, 0.3, 0.1, 0.2)는 소리 데이터(100-1)에 포함되는 음성이 상기 4개의 음성 인식 단위 기호에 해당할 확률을 의미할 수 있다. 마찬가지로, STT 모델 #2(310-2)가 생성하는 확률 벡터(310-2a)인 (0.1, 0.2, 0.1, 0.6)는 소리 데이터(100-1)에 포함되는 음성이 상기 4개의 음성 인식 단위 기호에 해당할 확률을 의미할 수 있다.
소음 인식기(200)에 의하여 생성된 소음에 관한 소음 인식 결과(예를 들면, 소음 카테고리, 발화 상황, 소음 크기 등)는 가중치 결정기(400)에 전달된다. 가중치 결정기(400)는, 상기 소음 인식 결과에 기초하여 복수의 STT 모델(310-1 및 310-2) 각각에 대한 가중치(310-1b 및 310-2b)를 결정할 수 있다. 도 5는 STT 모델 #1(310-1)에 대한 가중치(310-1b) 가 0.2로 결정되고, STT 모델 #2(310-2)에 대한 가중치(310-2b)가 0.8로 결정된 상황을 도시하고 있다.
복수의 STT 모델 각각이 생성하는 음성 인식 결과(310-1a 및 310-2a) 및 상기 각각의 STT 모델에 대한 가중치(310-1b 및 310-2b)에 기초하여, 상기 각각의 음성 인식 결과(310-1a 및 310-2a)를 결합한 적응적 음성 인식 결과(320a)가 생성된다(S140). 이때, 상기 적응적 음성 인식 결과(320a)는 상기 각각의 음성 인식 결과(310-1a 및 310-2a)와 상기 각각의 STT 모델(310-1 및 310-2)에 대한 가중치(310-1b 및 310-2b)를 곱한 값을 합산함으로써 생성될 수 있다.
보다 구체적으로 설명하면, STT 모델 #1(310-1)이 생성하는 음성 인식 결과(310-1a)와 STT 모델 #1(310-1)에 대한 가중치(310-1b)인 0.2를 곱한 값(310-1c)인 (0.08, 0.06, 0.02, 0.04)과, STT 모델 #2(310-2)가 생성하는 음성 인식 결과(310-2a)와 STT 모델 #2(310-2)에 대한 가중치(310-1b)인 0.8를 곱한 값(310-2c)인 (0.08, 0.16, 0.08, 0.48)를 합산함으로써, 적응적 음성 인식 결과(320a)인 (0.16, 0.22, 0.10, 0.52)(= (0.08 + 0.08), (0.06 + 0.16), (0.02 + 0.08), (0.04 + 0.48))가 생성된다.
한편, 몇몇 실시예에서, 복수의 STT 모델(310-1 및 310-2)이 각각 생성하는 음성 인식 결과(310-1a 및 310-2a) 사이의 일치도에 기초하여, 소리 데이터에 포함되는 음성에 관한 발화 정확도(예를 들면, 0~1 사이의 값)를 산출할 수 있다. 일 실시예에서, 상기 일치도는, 각각의 음성 인식 결과 중에서 가장 높은 값을 가지는 확률 변수(도 5의 경우, STT 모델 #1(310-1)이 생성하는 음성 인식 결과(310-1a) 중에서는 0.4 이고, STT 모델 #2(310-2)가 생성하는 음성 인식 결과(310-2a) 중에서는 0.6 임)에 대응되는 음성 인식 단위 기호를 결정하고, 이렇게 결정된 음성 인식 단위 기호들이 얼마나 일치하는지를 기준으로 산출될 수 있다.
도 6은 본 개시의 다른 몇몇 실시예에 따른 음성 인식 방법의 순서도이다.
도 2 및 도 6을 참조하여 본 개시의 일 실시예에 따른 음성 인식 방법을 개략적으로 설명한다. 필요에 따라 각 단계의 상세한 내용은 후술될 수 있다.
소리 데이터가 획득되고(S310), 소음 카테고리 추정 모델을 이용하여 상기 소리 데이터로부터 상기 소리 데이터에 포함되는 소음에 관한 소음 카테고리를 추정함으로써, 상기 소음에 관한 소음 인식 결과가 생성된다(S320). 그 다음에, STT 모델(310)을 이용하여, 상기 소음 인식 결과에 기초하여 상기 소리 데이터로부터 상기 소리 데이터에 포함되는 음성에 관한 적응적 음성 인식 결과가 생성된다(S330). 그 다음에, 상기 적응적 음성 인식 결과에 기초하여 상기 음성에 관한 발화 정확도가 산출된다(S340).
몇몇 실시예에서, 음성에 관한 발화 정확도는 파형 분석에 기초하여 산출될 수 있다. 구체적으로, 도 7을 참조하면, 적응적 음성 인식 결과로부터 제1 파형이 생성되고, 소리 데이터로부터 제2 파형이 생성된다(S341). 그리고, 상기 제1 파형 및 제2 파형 사이의 차이에 기초하여 발화 정확도가 산출된다(S342).
도 8은 파형 분석에 기초하여 발화 정확도를 산출하는 과정을 예시적으로 나타내는 도면이다. 도 8을 참조하면, 소리 데이터(t)(100-1)가 획득되고, STT 모델(310)에 입력된다. STT 모델(310)이 상기 소리 데이터(t)(100-1)를 처리하여 상기 소리 데이터(t)(100-1)에 포함되는 음성에 관한 적응적 음성 인식 결과(310-a)가 생성되고, 상기 적응적 음성 인식 결과(310-a)로부터 제1 파형(510-1)이 생성된다. 예를 들면, 제1 파형(510-1)은 적응적 음성 인식 결과(310-a)로부터 가장 높은 값을 가지는 확률 변수에 대응되는 음성 인식 단위 기호를 TTS(Text-To-Speech) 모델에 입력함으로써 생성되는 소리 데이터의 파형일 수 있다. 다른 예를 들면, 제1 파형(510-1)은 적응적 음성 인식 결과(310-a)가 언어 모델(도 2의 600)에 의하여 처리된 결과를 TTS 모델에 입력함으로써 생성되는 소리 데이터의 파형일 수 있다.
제2 파형(510-2)은 소리 데이터(t)(100-1)의 파형일 수 있다. 제1 파형(510-1)과 제2 파형(510-2)의 차이는, 예를 들면, DPCM(Differential Pulse Code Modulation), FFT(Fast Fourier Transform)의 차이값 분석과 같은 전통적인 기법을 이용하여 도출할 수 있고, CNN(Convolutional Neural Network) 기반의 딥러닝 모델을 이용하여 도출할 수도 있다. 제1 파형(510-1)과 제2 파형(510-2)의 차이가 더 클수록 발화 정확도는 더 낮은 값으로 산출될 수 있다.
몇몇 실시예에서, 발화 정확도를 산출함에 있어서 제1 파형(510-1)과 제2 파형(510-2)의 차이와 소음의 크기(예를 들면, 0~1 사이의 값으로, 1에 가까울수록 소음의 크기가 큼)가 함께 고려될 수 있다. 예를 들면, 발화 정확도는 Delta(제1 파형, 제2 파형) x (1 - 소음의 크기) 와 같은 형태의 수식을 이용하여 산출될 수 있다(Delta(제1 파형, 제2 파형)는 제1 파형(510-1)과 제2 파형(510-2)의 차이를 산출하는 함수임).
상술한 바와 같이, 상기 제1 파형 및 상기 제2 파형 사이의 차이는, 특정 시간 단위(t) 동안 획득된 소리 데이터(소리 데이터(t)(100-1))로부터 생성된 파형(제1 파형 및 제2 파형)을 비교하여 산출될 수도 있지만, 그 특정 시간 단위보다 앞선 과거의 시간 단위(t-1, t-2 등) 동안 획득된 소리 데이터(소리 데이터(t-1)(100-2), 소리 데이터(t-2)(미도시됨) 등)로부터 생성되어 시간순으로 누적된 적응적 음성 인식 결과에 기초하여 생성된 파형을 비교하여 산출될 수도 있다.
몇몇 실시예에서, 적응적 음성 인식 결과는 언어 모델(600)을 이용하여 수정될 수 있다. 이때, 이렇게 수정된 적응적 음성 인식 결과와 상기 적응적 음성 인식 결과 사이의 차이에 기초하여 음성에 관한 발화 정확도를 산출할 수 있다. 예를 들면, 상기 차이는 언어 모델(600)에 의하여 적응적 음성 인식 결과가 수정된 양을 바탕으로 결정될 수 있고, 상기 차이가 더 클수록 발화 정확도는 더 낮은 값으로 산출될 수 있다.
몇몇 실시예에서, 발화 정확도를 산출함에 있어서 수정된 적응적 음성 인식 결과와 적응적 음성 인식 결과 사이의 차이와 소음의 크기가 함께 고려될 수 있다. 예를 들면, 발화 정확도는 Delta(수정된 적응적 음성 인식 결과, 적응적 음성 인식 결과) x (1 - 소음의 크기) 와 같은 형태의 수식을 이용하여 산출될 수 있다.
몇몇 실시예에서, 음성에 관한 발화 정확도는 음성의 크기에 기초하여 산출될 수 있다. 예를 들면, 음성의 크기가 더 클수록 발화 정확도는 더 큰 값으로 산출될 수 있다. 이때, 발화 정확도를 산출함에 있어 음성의 크기와 소음의 크기가 함께 고려될 수 있다. 예를 들면, 발화 정확도는 음성의 크기 x (1 - 소음의 크기) 와 같은 형태의 수식을 이용하여 산출될 수 있다.
도 9는 본 개시의 다른 몇몇 실시예에 따른 음성 인식 방법의 순서도이다.
도 2 및 도 9를 참조하여 본 개시의 일 실시예에 따른 음성 인식 방법을 개략적으로 설명한다. 필요에 따라 각 단계의 상세한 내용은 후술될 수 있다.
소리 데이터가 획득되고(S310), 소음 카테고리 추정 모델을 이용하여 상기 소리 데이터로부터 상기 소리 데이터에 포함되는 소음에 관한 소음 카테고리를 추정함으로써, 상기 소음에 관한 소음 인식 결과가 생성된다(S320). 이때, 상기 소음의 크기도 상기 소음 인식 결과로서 산출된다(S321). 그 다음에, STT 모델(310)을 이용하여, 상기 소음 인식 결과에 기초하여 상기 소리 데이터로부터 상기 소리 데이터에 포함되는 음성에 관한 적응적 음성 인식 결과가 생성된다(S330). 그 다음에, 상기 적응적 음성 인식 결과에 기초하여 상기 음성에 관한 발화 정확도가 산출되고(S340), 상기 소음의 크기 및 상기 발화 정확도에 기초하여 발화자의 행동을 요청하는 피드백이 생성된다(S350). 이때, 상기 피드백은 적응적 음성 인식 결과를 재생성, 즉, 발화자로 하여금 다시 발화(재발화)를 하도록 유도함으로써 음성 인식이 더 잘 되는 소리 데이터를 획득하기 위한 것일 수 있다.
도 10을 참조하여 피드백을 생성하는 단계(S350)에 관하여 보다 상세히 설명한다. 발화 정확도가 발화 정확도 기준치 미만인 것에 대응하여, 그렇게 된 원인(즉, 발화 정확도가 발화 정확도 기준치 미만이 된 원인)이 소음 및 음성 중 어느 하나로 특정된다(S351). 이때, 소음의 크기가 소음 크기 기준치 초과인 것에 대응하여 상기 원인이 소음으로 특정된다. 그리고, 상기 소음 크기가 소음 크기 기준치 이하인 것에 대응하여 상기 원인이 음성으로 특정된다. 그리고, 이렇게 특정된 원인에 따라 발화자의 행동을 요청하는 피드백이 생성된다(S352).
한편, 발화 정확도가 발화 정확도 기준치 이상이면 음성이 잘 인식되었다고 볼 수 있으므로, 인식된 음성(적응적 음성 인식 결과 또는 언어 모델(600)에 의하여 수정된 적응적 음성 인식 결과)이 텍스트 또는 음성으로 출력될 수 있다.
몇몇 실시예에서, 상기 피드백은 특정 시간 단위(t) 동안 획득된 소리 데이터(소리 데이터(t))로부터 생성된 적응적 음성 인식 결과에 기초하여 생성될 수 있지만, 그 특정 시간 단위보다 앞선 과거의 시간 단위(t-1, t-2 등) 동안 획득된 소리 데이터(소리 데이터(t-1), 소리 데이터(t-2) 등)로부터 생성되어 누적된 적응적 음성 인식 결과에 더 기초하여 생성될 수 있다.
몇몇 실시예에서, 상기 원인이 소음으로 특정되는 것에 대응하여, 발화 상황에 기초하여 상기 피드백이 생성될 수 있다. 이때, 상기 발화 상황은 발화 상황 추정 모델을 이용하여 소음 카테고리에 기초하여 추정되는 것일 수 있다.
몇몇 예를 들면, 상기 원인이 소음으로 특정되는 경우에는 다음과 같은 피드백이 생성될 수 있다:
- 발화자가 회의 중인 상황으로 추정되는 경우, "회의 중이신가요? 고객님의 음성을 인식하기 어려우니, 밖에서 전화를 받아주시겠어요? 아니면, 다시 전화를 드릴까요?"
- 발화자가 운전 중인 상황으로 추정되는 경우, "운전 중이신가요? 고객님의 음성을 인식하기 어려우니, 잠시 차량을 세워서 전화를 받아주시겠어요? 아니면, 다시 전화를 드릴까요?"
- 발화자가 식사 중인 상황으로 추정되는 경우, "식사 중이신가요? 고객님의 음성을 인식하기 어려우니, 잠시 기다려 드릴까요?"
- 갑작스러운 큰 소음(예를 들면, 자동차 경적 소리)으로 인하여 음성 인식이 되지 않은 경우, "갑작스러운 큰 소음 때문에 잘 못들었습니다. 다시 한 번 말씀해 주세요 고객님의 음성을 인식하기 어려우니, 잠시 기다려 드릴까요?"
다른 몇몇 예를 들면, 상기 원인이 음성으로 특정되는 경우에는 다음과 같은 피드백이 생성될 수 있다:
- 특정 단어가 인식되지 않았거나, 앞선 여러 단어들은 잘 인식되었으나 어느 하나 또는 몇 개의 단어가 인식되지 않은 경우, "고객님, xx 라고 하셨나요?" 또는 "고객님, xx 부터 다시 말씀해 주시겠어요?"
- 여러 단어가 인식되지 않는 경우, "고객님, 다시 한 번 또박또박 말씀해 주시겠어요?"
이상에서 설명된 본 개시의 다양한 실시예에 따르면, 소음 환경에 강인한 음성 인식 방법이 제공될 수 있다.
나아가, 이상에서 설명된 본 개시의 다양한 실시예에 따르면, 음성 인식이 잘 되지 않는 경우에, 발화 상황에 따라 적응적으로 적응적 음성 인식 결과를 재생성하기 위한 발화자의 행동을 요청하는 피드백을 생성함으로써, 음성 인식이 더 잘 되는 소리 데이터를 획득할 수 있다.
본 개시의 기술적 사상에 따른 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 11은 본 개시의 몇몇 실시예들에 따른 컴퓨팅 장치(1000)를 나타내는 예시적인 하드웨어 구성도이다.
도 11에 도시된 바와 같이, 도 11의 컴퓨팅 장치(1000)는, 하나 이상의 프로세서(1100), 시스템 버스(1600), 통신 인터페이스(1200), 프로세서(1100)에 의하여 수행되는 컴퓨터 프로그램(1500)을 로드(load)하는 메모리(1400)와, 컴퓨터 프로그램(1500)을 저장하는 스토리지(1300)를 포함할 수 있다. 다만, 도 11에는 본 개시의 실시예와 관련 있는 구성요소들만이 도시되어 있다. 따라서, 본 개시가 속한 기술분야의 통상의 기술자라면 도 11에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 알 수 있다. 즉, 컴퓨팅 장치(1000)에는, 도 11에 도시된 구성요소 이외에도 다양한 구성요소가 더 포함될 수 있다. 또한, 경우에 따라, 도 11에 도시된 구성요소들 중 일부가 생략된 형태로 컴퓨팅 장치(1000)가 구성될 수도 있다. 이하, 컴퓨팅 장치(1000)의 각 구성요소에 대하여 설명한다.
프로세서(1100)는 컴퓨팅 장치(1000)의 각 구성의 전반적인 동작을 제어할 수 있다. 프로세서(1100)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit), NPU(Neural Processing Unit) 또는 본 개시의 기술 분야에 잘 알려진 임의의 형태의 프로세서 중 적어도 하나를 포함하여 구성될 수 있다. 또한, 프로세서(1100)는 본 개시의 다양한 실시예들에 따른 동작/방법을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 컴퓨팅 장치(1000)는 하나 이상의 프로세서를 구비할 수 있다.
다음으로, 메모리(1400)는 각종 데이터, 명령 및/또는 정보를 저장할 수 있다. 메모리(1400)는 본 개시의 다양한 실시예들에 따른 방법/동작들을 실행하기 위하여 스토리지(1300)로부터 컴퓨터 프로그램(1500)을 로드할 수 있다. 메모리(1400)는 RAM과 같은 휘발성 메모리로 구현될 수 있을 것이나, 본 개시의 기술적 범위가 이에 한정되는 것은 아니다.
다음으로, 시스템 버스(1600)는 컴퓨팅 장치(1000)의 구성요소 간 통신 기능을 제공할 수 있다. 시스템 버스(1600)는 주소 버스(Address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다.
다음으로, 통신 인터페이스(1200)는 컴퓨팅 장치(1000)의 유무선 인터넷 통신을 지원할 수 있다. 또한, 통신 인터페이스(1200)는 인터넷 통신 외의 다양한 통신 방식을 지원할 수도 있다. 이를 위해, 통신 인터페이스(1200)는 본 개시의 기술 분야에 잘 알려진 통신 모듈을 포함하여 구성될 수 있다.
다음으로, 스토리지(1300)는 하나 이상의 컴퓨터 프로그램(1500)을 비임시적으로 저장할 수 있다. 스토리지(1300)는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 개시가 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.
다음으로, 컴퓨터 프로그램(1500)은 메모리(1400)에 로드될 때 프로세서(1100)로 하여금 본 개시의 다양한 실시예들에 따른 동작/방법을 수행하도록 하는 하나 이상의 인스트럭션을 포함할 수 있다. 즉, 컴퓨터 프로그램(1500)이 메모리(1400)에 로드 되면, 프로세서(1100)는 상기 하나 이상의 인스트럭션을 실행시킴으로써, 본 개시의 다양한 실시예들에 따른 방법/동작들을 수행할 수 있다.
몇몇 실시예에서, 컴퓨터 프로그램(1500)은 소리 데이터를 획득하는 인스트럭션들과, 소음 카테고리 추정 모델을 이용하여 상기 소리 데이터로부터 상기 소리 데이터에 포함되는 소음에 관한 소음 카테고리를 추정함으로써, 상기 소음에 관한 소음 인식 결과를 생성하는 인스트럭션들과, 복수의 STT(Speech-To-Text) 모델을 각각 이용하여, 상기 소리 데이터로부터 상기 소리 데이터에 포함되는 음성에 관한 음성 인식 결과를 각각 생성하는 인스트럭션들과, 상기 각각의 음성 인식 결과 및 상기 각각의 STT 모델에 대한 가중치에 기초하여, 상기 각각의 음성 인식 결과를 결합한 적응적 음성 인식 결과를 생성하되, 상기 각각의 STT 모델에 대한 가중치는 상기 소음 인식 결과에 기초하여 결정되는 것인, 인스트럭션들을 포함할 수 있다.
다른 몇몇 실시예에서, 컴퓨터 프로그램(1500)은 소리 데이터를 획득하는 인스트럭션들과, 소음 카테고리 추정 모델을 이용하여 상기 소리 데이터로부터 상기 소리 데이터에 포함되는 소음에 관한 소음 카테고리를 추정함으로써, 상기 소음에 관한 소음 인식 결과를 생성하는 인스트럭션들과, STT 모델을 이용하여, 상기 소음 인식 결과에 기초하여 상기 소리 데이터로부터 상기 소리 데이터에 포함되는 음성에 관한 적응적 음성 인식 결과를 생성하는 인스트럭션들과, 상기 적응적 음성 인식 결과에 기초하여 상기 음성에 관한 발화 정확도를 산출하는 인스트럭션들을 포함할 수 있다.
한편, 몇몇 실시예들에서, 도 11에 도시된 컴퓨팅 장치(1000)는 클라우드 기술에 기반하여 구현된 가상 머신을 의미하는 것일 수도 있다. 가령, 컴퓨팅 장치(1000)는 서버 팜(server farm)에 포함된 하나 이상의 물리 서버(physical server)에서 동작하는 가상 머신일 수 있다. 이 경우, 도 11에 도시된 프로세서(1100), 메모리(1400) 및 스토리지(1300) 중 적어도 일부는 가상 하드웨어(virtual hardware)일 수 있으며, 통신 인터페이스(1200) 또한 가상 스위치(virtual switch) 등과 같은 가상화된 네트워킹 요소로 구현된 것일 수 있다.
지금까지 도 11을 참조하여 본 개시의 몇몇 실시예들에 따른 11 시스템(10)을 구현할 수 있는 예시적인 컴퓨팅 장치(1000)에 대하여 설명하였다.
지금까지 도 1 내지 도 11을 참조하여 본 개시의 다양한 실시예들 및 그 실시예들에 따른 효과들을 언급하였다. 본 개시의 기술적 사상에 따른 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
또한, 이상의 실시예들에서 복수의 구성요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 개시의 기술적 사상이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 개시의 기술적 사상의 목적 범위 안에서라면, 그 모든 구성요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다.
지금까지 설명된 본 개시의 기술적 사상은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 컴퓨터로 읽을 수 있는 기록 매체에 기록된 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 상기 다른 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 다른 컴퓨팅 장치에서 사용될 수 있다.
도면에서 동작들이 특정한 순서로 도시되어 있지만, 반드시 동작들이 도시된 특정한 순서로 또는 순차적 순서로 실행되어야만 하거나 또는 모든 도시 된 동작들이 실행되어야만 원하는 결과를 얻을 수 있는 것으로 이해되어서는 안 된다. 특정 상황에서는, 멀티태스킹 및 병렬 처리가 유리할 수도 있다.
이상 첨부된 도면을 참조하여 본 개시의 다양한 실시예들을 설명하였지만, 본 개시가 속한 기술분야에서 통상의 지식을 가진 자는 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 본 개시의 기술적 사상이 다른 구체적인 형태로도 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 개시의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 개시에 의해 정의되는 기술적 사상의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (20)

  1. 컴퓨팅 시스템에 의하여 수행되는 방법에 있어서,
    소리 데이터를 획득하는 단계;
    소음 카테고리 추정 모델을 이용하여 상기 소리 데이터로부터 상기 소리 데이터에 포함되는 소음에 관한 소음 카테고리를 추정함으로써, 상기 소음에 관한 소음 인식 결과를 생성하는 단계;
    복수의 STT(Speech-To-Text) 모델을 각각 이용하여, 상기 소리 데이터로부터 상기 소리 데이터에 포함되는 음성에 관한 음성 인식 결과를 각각 생성하는 단계; 및
    상기 각각의 음성 인식 결과 및 상기 각각의 STT 모델에 대한 가중치에 기초하여, 상기 각각의 음성 인식 결과를 결합한 적응적 음성 인식 결과를 생성하되, 상기 각각의 STT 모델에 대한 가중치는 상기 소음 인식 결과에 기초하여 결정되는 것인, 단계를 포함하고,
    상기 추정되는 소음 카테고리는 상기 소음 카테고리에 관한 확률 벡터이며,
    상기 복수의 STT 모델은 상기 소음 카테고리에 기초하여 학습된 것이고,
    상기 추정되는 소음 카테고리에 관한 확률 벡터에 포함되는 제1 확률 변수의 값이 더 클수록 상기 제1 확률 변수에 대응되는 소음 카테고리에 관하여 학습된 STT 모델에 대한 가중치가 더 커지도록, 상기 각각의 STT 모델에 대한 가중치가 결정되는,
    음성 인식 방법.
  2. 제1 항에 있어서,
    상기 소음 인식 결과를 생성하는 단계는,
    발화 상황 추정 모델을 이용하여, 상기 추정되는 소음 카테고리에 기초하여 발화 상황을 추정하는 단계를 포함하고,
    상기 각각의 STT 모델에 대한 가중치는 상기 추정되는 발화 상황에 기초하여 결정되는 것인,
    음성 인식 방법.
  3. 제2 항에 있어서,
    상기 소음 인식 결과를 생성하는 단계는,
    상기 소리 데이터로부터 상기 소음의 크기를 산출하는 단계를 포함하고,
    상기 발화 상황을 추정하는 단계는,
    상기 소음의 크기에 더 기초하여 상기 발화 상황을 추정하는 단계를 포함하는,
    음성 인식 방법.
  4. 제2 항에 있어서,
    상기 발화 상황을 추정하는 단계는,
    발화자 단말로부터 획득되는 환경 정보에 더 기초하여 상기 발화 상황을 추정하는 단계를 포함하되, 상기 환경 정보는, 상기 발화자의 위치 정보, 상기 발화자 주변의 조도 정보 및 상기 발화자 단말의 가속도 정보 중 적어도 하나를 포함하는,
    음성 인식 방법.
  5. 제2 항에 있어서,
    상기 추정되는 발화 상황은 n 개의 발화 상황에 관한 확률 벡터이고,
    상기 복수의 STT 모델은 상기 n 개이며,
    상기 추정되는 발화 상황에 관한 확률 벡터에 포함되는 상기 n 개의 확률 변수의 값 각각이 상기 각각의 확률 변수에 대응되는 STT 모델에 대한 가중치로서 결정되고,
    상기 n은 2 이상의 자연수인,
    음성 인식 방법.
  6. 제2 항에 있어서,
    상기 추정되는 발화 상황은 n 개의 발화 상황에 관한 확률 벡터이고,
    상기 복수의 STT 모델은 상기 n 개이며,
    상기 각각의 STT 모델은 상기 n 개의 발화 상황별로 학습된 것이고,
    상기 추정되는 발화 상황에 관한 확률 벡터에 포함되는 제1 확률 변수의 값이 더 클수록 상기 제1 확률 변수에 대응되는 발화 상황에 관하여 학습된 STT 모델에 대한 가중치가 더 커지도록, 상기 각각의 STT 모델에 대한 가중치가 결정되는,
    상기 n은 2 이상의 자연수인,
    음성 인식 방법.
  7. 제1 항에 있어서,
    상기 추정되는 소음 카테고리는 n 개의 소음 카테고리에 관한 확률 벡터이고,
    상기 복수의 STT 모델은 상기 n 개이며,
    상기 각각의 STT 모델은 상기 n 개의 소음 카테고리별로 학습된 것이고,
    상기 n은 2 이상의 자연수인,
    음성 인식 방법.
  8. 삭제
  9. 제1 항에 있어서,
    상기 각각의 음성 인식 결과는, 상기 각각의 STT 모델이 출력하는 음성 인식 단위 기호에 관한 확률 벡터이고,
    상기 적응적 음성 인식 결과를 생성하는 단계는,
    상기 각각의 음성 인식 결과와 상기 각각의 STT 모델에 대한 가중치를 곱한 값을 합산함으로써, 상기 각각의 음성 인식 결과를 결합한 상기 적응적 음성 인식 결과를 생성하는 단계를 포함하는,
    음성 인식 방법.
  10. 제1 항에 있어서,
    상기 각각의 음성 인식 결과 사이의 일치도에 기초하여 상기 음성에 관한 발화 정확도를 산출하는 단계를 더 포함하는,
    음성 인식 방법.
  11. 제1 항에 있어서
    상기 적응적 음성 인식 결과에 기초하여 상기 음성에 관한 발화 정확도를 산출하는 단계를 더 포함하는,
    음성 인식 방법.
  12. 제11 항에 있어서,
    상기 발화 정확도를 산출하는 단계는,
    상기 적응적 음성 인식 결과로부터 제1 파형을 생성하고, 상기 소리 데이터로부터 제2 파형을 생성하는 단계; 및
    상기 제1 파형 및 상기 제2 파형 사이의 차이에 기초하여 상기 발화 정확도를 산출하는 단계를 포함하는,
    음성 인식 방법.
  13. 제11 항에 있어서,
    상기 발화 정확도를 산출하는 단계는,
    언어 모델을 이용하여 상기 적응적 음성 인식 결과를 처리함으로써, 상기 적응적 음성 인식 결과를 수정하는 단계; 및
    상기 수정된 적응적 음성 인식 결과 및 상기 적응적 음성 인식 결과 사이의 차이에 기초하여 상기 발화 정확도를 산출하는 단계를 포함하는,
    음성 인식 방법.
  14. 제11 항에 있어서,
    상기 발화 정확도를 산출하는 단계는,
    상기 소리 데이터로부터 상기 음성의 크기를 산출하는 단계; 및
    상기 음성의 크기에 기초하여 상기 발화 정확도를 산출하는 단계를 포함하는,
    음성 인식 방법.
  15. 제11 항에 있어서,
    상기 소음 인식 결과를 생성하는 단계는,
    상기 소리 데이터로부터 상기 소음의 크기를 산출하는 단계를 포함하고,
    상기 발화 정확도를 산출하는 단계는,
    상기 소음의 크기에 더 기초하여 상기 발화 정확도를 산출하는 단계를 포함하는,
    음성 인식 방법.
  16. 제11 항에 있어서,
    상기 소음 인식 결과를 생성하는 단계는,
    상기 소리 데이터로부터 상기 소음의 크기를 산출하는 단계를 포함하고,
    상기 음성 인식 방법은,
    상기 소음의 크기 및 상기 발화 정확도에 기초하여, 적응적 음성 인식 결과를 재생성하기 위한 발화자의 행동을 요청하는 피드백을 생성하는 단계를 더 포함하는,
    음성 인식 방법.
  17. 제16 항에 있어서,
    상기 피드백을 생성하는 단계는,
    상기 발화 정확도가 발화 정확도 기준치 미만인 것에 대응하여, 상기 발화 정확도가 상기 발화 정확도 기준치 미만이 된 원인을 상기 소음 및 상기 음성 중 어느 하나로 특정하는 단계; 및
    상기 특정된 원인에 따라 상기 피드백을 생성하는 단계를 포함하되,
    상기 원인을 상기 소음 및 상기 음성 중 어느 하나로 특정하는 단계는,
    상기 소음의 크기가 소음 크기 기준치 초과인 것에 대응하여, 상기 원인을 상기 소음으로 특정하는 단계; 및
    상기 소음의 크기가 소음 크기 기준치 이하인 것에 대응하여, 상기 원인을 상기 음성으로 특정하는 단계를 포함하는,
    음성 인식 방법.
  18. 제17 항에 있어서,
    상기 소음 인식 결과를 생성하는 단계는,
    발화 상황 추정 모델을 이용하여, 상기 소음 카테고리에 기초하여 발화 상황을 추정하는 단계를 포함하고,
    상기 피드백을 생성하는 단계는,
    상기 원인이 상기 소음으로 특정되는 것에 대응하여, 상기 발화 상황에 기초하여 상기 피드백을 생성하는 단계를 포함하는,
    음성 인식 방법.
  19. 통신 인터페이스;
    컴퓨터 프로그램이 로드(load)되는 메모리; 및
    상기 컴퓨터 프로그램을 실행하는 프로세서를 포함하되,
    상기 컴퓨터 프로그램은,
    소리 데이터를 획득하는 인스트럭션들(instructions);
    소음 카테고리 추정 모델을 이용하여 상기 소리 데이터로부터 상기 소리 데이터에 포함되는 소음에 관한 소음 카테고리를 추정함으로써, 상기 소음에 관한 소음 인식 결과를 생성하는 인스트럭션들;
    복수의 STT(Speech-To-Text) 모델을 각각 이용하여, 상기 소리 데이터로부터 상기 소리 데이터에 포함되는 음성에 관한 음성 인식 결과를 각각 생성하는 인스트럭션들; 및
    상기 각각의 음성 인식 결과 및 상기 각각의 STT 모델에 대한 가중치에 기초하여, 상기 각각의 음성 인식 결과를 결합한 적응적 음성 인식 결과를 생성하되, 상기 각각의 STT 모델에 대한 가중치는 상기 소음 인식 결과에 기초하여 결정되는 것인, 인스트럭션들을 포함하고,
    상기 추정되는 소음 카테고리는 상기 소음 카테고리에 관한 확률 벡터이며,
    상기 복수의 STT 모델은 상기 소음 카테고리에 기초하여 학습된 것이고,
    상기 추정되는 소음 카테고리에 관한 확률 벡터에 포함되는 제1 확률 변수의 값이 더 클수록 상기 제1 확률 변수에 대응되는 소음 카테고리에 관하여 학습된 STT 모델에 대한 가중치가 더 커지도록, 상기 각각의 STT 모델에 대한 가중치가 결정되는,
    음성 인식 시스템.
  20. 제19 항에 있어서,
    상기 적응적 음성 인식 결과에 기초하여 상기 음성에 관한 발화 정확도를 산출하는 인스트럭션들을 더 포함하는,
    음성 인식 시스템.
KR1020230060296A 2023-05-10 2023-05-10 음성 인식 방법 및 그 시스템 KR102617914B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230060296A KR102617914B1 (ko) 2023-05-10 2023-05-10 음성 인식 방법 및 그 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230060296A KR102617914B1 (ko) 2023-05-10 2023-05-10 음성 인식 방법 및 그 시스템

Publications (1)

Publication Number Publication Date
KR102617914B1 true KR102617914B1 (ko) 2023-12-27

Family

ID=89377464

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230060296A KR102617914B1 (ko) 2023-05-10 2023-05-10 음성 인식 방법 및 그 시스템

Country Status (1)

Country Link
KR (1) KR102617914B1 (ko)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080038896A (ko) * 2006-10-31 2008-05-07 삼성전자주식회사 음성 인식 오류 통보 장치 및 방법
CN103065630A (zh) * 2012-12-28 2013-04-24 安徽科大讯飞信息科技股份有限公司 用户个性化信息语音识别方法及系统
KR20130133629A (ko) * 2012-05-29 2013-12-09 삼성전자주식회사 전자장치에서 음성명령을 실행시키기 위한 장치 및 방법
KR20140106715A (ko) * 2012-03-08 2014-09-03 엘지전자 주식회사 다수의 디바이스 음성 제어 장치 및 방법
KR101664080B1 (ko) * 2015-07-28 2016-10-10 현대자동차 주식회사 음성 다이얼링 시스템 및 방법
WO2019116604A1 (en) * 2017-12-15 2019-06-20 Mitsubishi Electric Corporation Speech recognition system
KR102238855B1 (ko) 2020-06-03 2021-04-13 엠아이큐브솔루션(주) 소음의 종류를 분류하는 소음 분류 딥러닝 모델 학습 방법

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080038896A (ko) * 2006-10-31 2008-05-07 삼성전자주식회사 음성 인식 오류 통보 장치 및 방법
KR20140106715A (ko) * 2012-03-08 2014-09-03 엘지전자 주식회사 다수의 디바이스 음성 제어 장치 및 방법
KR20130133629A (ko) * 2012-05-29 2013-12-09 삼성전자주식회사 전자장치에서 음성명령을 실행시키기 위한 장치 및 방법
CN103065630A (zh) * 2012-12-28 2013-04-24 安徽科大讯飞信息科技股份有限公司 用户个性化信息语音识别方法及系统
KR101664080B1 (ko) * 2015-07-28 2016-10-10 현대자동차 주식회사 음성 다이얼링 시스템 및 방법
WO2019116604A1 (en) * 2017-12-15 2019-06-20 Mitsubishi Electric Corporation Speech recognition system
KR102238855B1 (ko) 2020-06-03 2021-04-13 엠아이큐브솔루션(주) 소음의 종류를 분류하는 소음 분류 딥러닝 모델 학습 방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Daniel G. et al., Multicondition training of gaussian PLDA models in I-vector space for noise and reverberation robust speaker recognition, Proc. of ICASSP 2012, pp.4257-4260 (2012) 1부.* *
Imad Q. H. et al., An ensemble technique for speech recognition in noisy environments, Indonesian Journal of Electrical Engineering and Computer Science, Vol.18 No.2 pp.835-842 (2020.05) 1부.* *

Similar Documents

Publication Publication Date Title
US11887582B2 (en) Training and testing utterance-based frameworks
US9536525B2 (en) Speaker indexing device and speaker indexing method
US8386254B2 (en) Multi-class constrained maximum likelihood linear regression
WO2020043162A1 (en) System and method for performing multi-model automatic speech recognition in challenging acoustic environments
KR102637339B1 (ko) 음성 인식 모델을 개인화하는 방법 및 장치
KR20040088368A (ko) 스위칭 상태 공간 모델들을 갖는 변분 추론을 사용하는음성 인식 방법
KR102449209B1 (ko) 무음 부분을 자연스럽게 처리하는 음성 합성 시스템
US11017763B1 (en) Synthetic speech processing
CN113886643A (zh) 数字人视频生成方法、装置、电子设备和存储介质
JP2024505076A (ja) 多様で自然なテキスト読み上げサンプルを生成する
US20200074996A1 (en) Speech recognition apparatus, speech recognition method, and a recording medium
KR20230150377A (ko) 대화 동안 텍스트 음성 변환에서의 즉각적인 학습
JP6468258B2 (ja) 音声対話装置および音声対話方法
KR102449223B1 (ko) 음성의 속도 및 피치를 변경하는 방법 및 음성 합성 시스템
WO2015025788A1 (ja) 定量的f0パターン生成装置及び方法、並びにf0パターン生成のためのモデル学習装置及び方法
JP6712754B2 (ja) 談話機能推定装置及びそのためのコンピュータプログラム
KR102617914B1 (ko) 음성 인식 방법 및 그 시스템
JP7291099B2 (ja) 音声認識方法及び装置
KR20220072593A (ko) 무음 멜-스펙트로그램을 이용하여 음성 데이터를 생성하는 방법 및 음성 합성 시스템
KR20220071523A (ko) 문자들의 시퀀스를 분할하는 방법 및 음성 합성 시스템
KR20210010133A (ko) 음성 인식 방법, 음성 인식을 위한 학습 방법 및 그 장치들
KR102463570B1 (ko) 무음 구간 검출을 통한 멜 스펙트로그램의 배치 구성 방법 및 음성 합성 시스템
KR20200017160A (ko) 음성을 인식하는 장치, 방법 및 컴퓨터 판독 가능 매체
KR102463589B1 (ko) 멜-스펙트로그램의 길이에 기초하여 음성 데이터의 참조 구간을 결정하는 방법 및 음성 합성 시스템
US11335321B2 (en) Building a text-to-speech system from a small amount of speech data

Legal Events

Date Code Title Description
GRNT Written decision to grant