KR20170106951A - 문법 모델을 이용하여 음성인식을 수행하는 방법 및 디바이스 - Google Patents

문법 모델을 이용하여 음성인식을 수행하는 방법 및 디바이스 Download PDF

Info

Publication number
KR20170106951A
KR20170106951A KR1020177009542A KR20177009542A KR20170106951A KR 20170106951 A KR20170106951 A KR 20170106951A KR 1020177009542 A KR1020177009542 A KR 1020177009542A KR 20177009542 A KR20177009542 A KR 20177009542A KR 20170106951 A KR20170106951 A KR 20170106951A
Authority
KR
South Korea
Prior art keywords
information
speech recognition
grammar model
word
probability
Prior art date
Application number
KR1020177009542A
Other languages
English (en)
Other versions
KR102389313B1 (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 삼성전자주식회사
Publication of KR20170106951A publication Critical patent/KR20170106951A/ko
Application granted granted Critical
Publication of KR102389313B1 publication Critical patent/KR102389313B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/28Constructional details of speech recognition systems
    • G10L15/30Distributed recognition, e.g. in client-server systems, for mobile phones or network applications
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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 OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/02Feature extraction for speech recognition; Selection of recognition unit
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/14Speech classification or search using statistical models, e.g. Hidden Markov Models [HMMs]
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/183Speech classification or search using natural language modelling using context dependencies, e.g. language models
    • G10L15/187Phonemic context, e.g. pronunciation rules, phonotactical constraints or phoneme n-grams
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/183Speech classification or search using natural language modelling using context dependencies, e.g. language models
    • G10L15/19Grammatical context, e.g. disambiguation of the recognition hypotheses based on word sequence rules
    • G10L15/197Probabilistic grammars, e.g. word n-grams
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/28Constructional details of speech recognition systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/02Feature extraction for speech recognition; Selection of recognition unit
    • G10L2015/025Phonemes, fenemes or fenones being the recognition units
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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
    • G10L2015/0631Creating reference templates; Clustering
    • G10L2015/0633Creating reference templates; Clustering using lexical or orthographic knowledge sources
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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
    • G10L2015/0635Training updating or merging of old and new templates; Mean values; Weighting

Abstract

음성 인식 시 이용되는 문법 모델을 포함하는 음성 인식 데이터를 갱신하는 방법에 있어서, 적어도 하나의 단어를 포함하는 언어 데이터를 획득하고, 적어도 하나의 단어 중 문법 모델에 존재하지 않는 단어를 검출하고, 검출된 단어에 대한 적어도 하나의 발음열을 획득하고, 적어도 하나의 발음열 각각을 소정 단위로 분할하여, 적어도 하나의 발음열 각각을 구성하는 구성요소를 획득하고, 적어도 하나의 발음열 각각을 구성하는 구성 요소의 음성 인식 시 출현할 확률에 관한 정보를 결정하고, 결정된 확률 정보에 기초하여 문법 모델을 갱신하는 방법이 개시된다.

Description

문법 모델을 이용하여 음성인식을 수행하는 방법 및 디바이스
본 발명은 문법 모델을 이용하여 음성인식을 수행하는 방법 및 디바이스에 관한 것이다.
음성인식은 사용자의 음성을 입력받아 자동으로 문자로 변환하여 인식하는 기술이다. 근래에 들어 스마트폰이나 TV 등에서 키보드 입력을 대체하기 위한 인터페이스 기술로써 음성 인식이 사용되고 있다.
음성인식 시스템은 음성 신호를 입력받는 부분인 클라이언트(Client)와 음성 신호로부터 음성인식을 수행하는 부분인 ASR 엔진(Automatic Speech Recognition engine)으로 나눌 수 있는데, 이 두 개의 구성은 서로 떨어져서 디자인될 수 있다.
일반적으로 음성인식 시스템은 음향 모델, 문법 모델, 발음 사전을 이용하여 음성인식을 수행할 수 있다. 음성 인식 시스템에서 음성 신호로부터 소정 단어를 음성인식 하기 위해서는 소정 단어에 대한 문법 모델 및 발음 사전 등을 미리 구축하는 것이 필요하다.
본 발명은 문법 모델을 이용하여 음성인식을 수행하는 방법 및 디바이스에 관한 것으로, 자세하게는 새로운 단어를 음성 인식하기 위한 문법 모델을 구축하고, 새로운 단어를 포함하는 음성에 대한 음성인식을 수행하는 방법 및 디바이스에 관한 것이다.
일 실시 예에 의하면, 다수의 확률 값을 포함하는 문법 모델 대신 상대적으로 적은 수의 확률 값을 포함하는 문법 모델을 갱신하여, 문법 모델 갱신시 소요되는 시간을 최소화할 수 있다.
도 1은 일 실시 예에 따른 음성 인식을 수행하는 디바이스(100)의 일 예를 나타낸 블록도이다.
도 2는 일 실시 예에 의한 음성 인식 데이터를 갱신하는 음성 인식 디바이스(230) 및 음성 인식 데이터 갱신 디바이스(220)를 나타낸 블록도이다.
도 3은 일 실시 예에 의한 새로운 단어를 인식하기 위한 음성 인식 데이터를 갱신하는 방법을 나타낸 순서도이다.
도 4는 일 실시 예에 의한 새로운 단어를 추가하기 위한 시스템의 일 예를 나타낸 블록도이다.
도 5 내지 도 6은 일 실시 예에 의한 새로운 단어를 추가하는 일 예를 나타낸 순서도이다.
도 7은 일 실시 예에 있어서, 새로운 단어와 음절간의 대응 관계의 일 예를 나타낸 테이블이다.
도 8은 일 실시 예에 있어서, 새로운 단어에 대한 음성 인식시 출현 확률에 관한 정보의 일 예를 나타낸 테이블이다.
도 9는 일 실시 예에 새로운 단어를 음성 인식하기 위한 음성 인식 데이터를 갱신하는 시스템의 일 예를 나타낸 블록도이다.
도 10은 일 실시 예에 의한 새로운 단어를 인식하기 위한 언어 데이터를 갱신하는 방법을 나타낸 순서도이다.
도 11은 일 실시 예에 의한 음성 인식을 수행하는 음성 인식 디바이스를 나타낸 블록도이다.
도 12는 일 실시 예에 의한 음성 인식을 수행하는 방법을 나타낸 순서도이다.
도 13은 일 실시 예에 의한 음성 인식을 수행하는 방법을 나타낸 순서도이다.
도 14는 일 실시 예에 의한 상황 정보에 따라 수행된 음성 인식 결과에 따라 모듈을 실행시키는 음성 인식 시스템을 나타낸 블록도이다.
도 15는 일 실시 예에 의한 모듈에 대한 상황 정보의 일 예를 나타낸 예시도이다.
도 16은 일 실시 예에 의한 음성 인식을 수행하는 방법의 일 예를 나타낸 순서도이다.
도 17은 일 실시 예에 의한 음성 인식을 수행하는 방법의 일 예를 나타낸 순서도이다.
도 18은 일 실시 예에 의한 상황 정보에 따라 수행된 음성 인식 결과에 따라 복수 개의 모듈을 실행시키는 음성 인식 시스템을 나타낸 블록도이다.
도 19는 일 실시 예에 의한 복수 개의 장치에 대한 음성 명령의 일 예를 나타낸 예시도이다.
도 20는 일 실시 예에 의한 음성 인식 디바이스의 일 예를 나타낸 블록도이다.
도 21은 일 실시 예에 의한 디스플레이 장치에서 음성 인식을 수행하는 일 예를 나타낸 블록도이다.
도 22는 일 실시 예에 의한 상황 정보를 고려하여 문법 모델을 갱신하는 일 예를 나타낸 블록도이다.
도 23은 일 실시 예에 의한 어플리케이션 별로 문법 모델을 포함하는 음성 인식 시스템의 일 예를 나타낸 블록도이다.
도 24는 일 실시 예에 의한 사용자 디바이스에서 음성 인식 결과에 따라 작업 수행 요청을 전송하는 일 예를 나타낸 예시도이다.
도 25는 일 실시 예에 의한 음성 데이터의 클래스에 대한 개인 선호 컨텐츠 목록을 생성하는 방법을 나타낸 블록도이다.
도 26은 일 실시 예에 의한 음성 데이터의 클래스를 결정하는 일 예를 나타낸 예시도이다.
도 27은 일 실시 예에 의한 음성 데이터의 클래스에 따라 음성 인식 데이터를 갱신하는 방법을 나타낸 순서도이다.
도 28 및 도 29는 일 실시 예에 의한 클래스에 따라 분류될 수 있는 음성 데이터의 일 예를 도식화한 예시도이다.
도 30 및 도 31은 일 실시 예에 의한 개인화된 음성 인식 방법을 수행하는 일 예를 도시한 블록도이다.
도 32는 일 실시 예에 의한 음성 인식 데이터 갱신 디바이스의 내부 구성을 도시한 블록도이다.
도 33는 일 실시 예에 의한 음성 인식 디바이스의 내부 구성을 도시한 블록도이다.
도 34는 일 실시 예에 의한 사용자 디바이스(3400)의 구성을 설명하기 위한 블록도이다.
발명의 실시를 위한 최선의 형태
일 실시 예에 의한 음성 인식 시 이용되는 문법 모델을 포함하는 음성 인식 데이터를 갱신하는 방법에 있어서, 적어도 하나의 단어를 포함하는 언어 데이터(langurage data)를 획득하는 단계; 상기 적어도 하나의 단어 중 상기 문법 모델에 존재하지 않는 단어를 검출하는 단계; 상기 검출된 단어에 대한 적어도 하나의 발음열(phoneme sequence)을 획득하는 단계; 상기 적어도 하나의 발음열 각각을 소정 단위로 분할하여, 상기 적어도 하나의 발음열 각각을 구성하는 구성요소를 획득하는 단계; 상기 적어도 하나의 발음열 각각을 구성하는 구성 요소의 음성 인식 시 출현할 확률에 관한 정보를 결정하는 단계; 및 상기 결정된 확률 정보에 기초하여 상기 문법 모델을 갱신하는 단계를 포함한다.
더하여, 상기 문법 모델은 제1 문법 모델 및 적어도 하나의 문법 모델을 포함하는 제2 문법 모델을 포함하고, 상기 문법 모델을 갱신하는 단계는 상기 결정된 확률 정보에 기초하여 상기 제2 문법 모델을 갱신하는 단계를 포함한다.
더하여, 상기 제2 문법 모델에 포함된 적어도 하나의 출현 확률에 관한 정보에 기초하여, 상기 제1 문법 모델을 갱신하는 단계; 및 단어의 발음열에 관한 정보를 포함하는 발음 사전을 상기 검출된 단어의 발음열에 기초하여 갱신하는 단계를 더 포함한다.
더하여, 상기 출현할 확률에 관한 정보는 상기 분할된 구성 요소 별로, 단어 또는 다른 구성 요소가 먼저 출현한 경우를 조건으로, 출현할 확률에 관한 정보를 포함한다.
더하여, 상기 음성 인식 시 출현할 확률에 관한 정보를 결정하는 단계는 상기 언어 데이터 및 상기 문법 모델에 포함된 적어도 하나의 출현 확률에 관한 정보 중 적어도 하나에 기초하여, 상기 구성 요소 별로 음성 인식 시 출현할 확률에 관한 정보를 결정하는 단계를 포함한다.
더하여, 상기 출현할 확률에 관한 정보를 결정하는 단계는 상기 검출된 단어와 대응되는 주변 상황에 관한 상황 정보를 획득하는 단계; 상기 상황 정보에 기초하여, 상기 검출된 단어에 대한 확률 정보를 추가할 문법 모델을 결정한다.
더하여, 상기 상황 정보는 상기 검출된 단어와 대응되는 사용자 정보, 모듈 식별 정보, 디바이스의 위치 정보, 상기 검출된 단어가 획득된 위치에 관한 정보 중 적어도 하나를 포함한다.
더하여, 상기 문법 모델을 갱신하는 단계는 상기 결정된 확률 정보에 기초하여 상기 상황 정보와 대응되는 모듈에 대한 제2 문법 모델을 갱신하는 단계를 포함한다.
더하여, 음성 인식을 수행하고자 하는 음성 정보를 획득하여 음성 인식을 수행하는 단계를 더 포함하고, 상기 음성 인식을 수행하는 단계는 상기 문법 모델을 갱신하는 단계와 병렬적으로 수행될 수 있다.
일 실시 예에 의한, 음성 인식을 수행하는 방법에 있어서, 음성 인식을 수행하고자 하는 음성 데이터를 획득하는 단계; 적어도 하나의 발음열을 상기 음성 데이터로부터 획득하는 단계; 상기 적어도 하나의 발음열을 구성하고 소정 단위로 구분된 구성 요소가 출현할 확률에 관한 정보를 획득하는 단계; 상기 소정 단위로 구분된 구성 요소가 출현할 확률에 관한 정보에 기초하여, 상기 적어도 하나의 발음열 중 하나를 결정하는 단계; 및 상기 결정된 발음열에 포함된 소정 단위로 분할된 구성 요소를 단어로 변환하기 위한 분절 정보에 기초하여, 상기 결정된 발음열과 대응되는 단어를 획득하는 단계를 포함한다.
더하여, 상기 발음열을 획득하는 단계는 단어의 발음열에 관한 정보를 포함하는 발음 사전에, 상기 음성 데이터에 포함된 각 발음열과 대응되는 단어에 대한 정보가 존재하지 않는 발음열을 획득하는 단계를 포함한다.
더하여, 상기 구성 요소의 출현할 확률에 관한 정보는 적어도 하나의 제2 문법 모델로부터 획득된다.
더하여, 상기 구성 요소의 출현할 확률에 관한 정보를 획득하는 단계는 상기 구성 요소의 출현할 확률에 관한 정보를 포함하는 복수 개의 문법 모델을 결정하는 단계; 상기 결정된 복수 개의 문법 모델에 대하여 가중치를 결정하는 단계; 상기 구성 요소의 출현할 확률에 관한 정보를 상기 복수 개의 문법 모델로부터 적어도 하나 획득하는 단계; 상기 획득된 출현 확률에 관한 정보에 상기 결정된 가중치를 각 출현 확률에 관한 정보가 속한 문법 모델에 따라 적용함으로써, 상기 구성 요소의 출현할 확률에 관한 정보를 획득하는 단계를 포함한다.
더하여, 상기 구성 요소의 출현할 확률에 관한 정보를 획득하는 단계는 상기 음성 데이터에 대한 상황 정보를 획득하는 단계; 상기 상황 정보에 따라 적어도 하나의 제2 문법 모델을 결정하는 단계; 및 상기 결정된 적어도 하나의 제2 문법 모델로부터 상기 구성 요소의 출현할 확률에 관한 정보를 획득하는 단계를 포함한다.
더하여, 상기 제2 문법 모델은 모듈 또는 적어도 하나의 모듈을 포함하는 모듈 그룹과 대응되며, 상기 제2 문법 모델을 결정하는 단계는 상기 획득된 상황 정보가 모듈의 식별자를 포함하는 경우, 상기 식별자와 대응되는 제2 문법 모델을 결정하는 단계를 포함한다.
더하여, 상기 상황 정보는 상기 음성 데이터와 대응되는 사용자 정보, 모듈 식별 정보, 디바이스의 위치 정보 중 적어도 하나를 포함한다.
더하여, 상기 상황 정보는 각 클래스별로 어쿠스틱(acoustic) 정보 및 클래스 별 선호 언어 정보 중 적어도 하나를 포함하는 개인화 모델 정보를 포함하고, 상기 제2 문법 모델을 결정하는 단계는 상기 상황 정보에 포함된 상기 어쿠스틱(acoustic) 정보 및 클래스 별 선호 언어 정보 중 적어도 하나에 기초하여 상기 음성 데이터에 대한 클래스를 결정하는 단계; 및 상기 결정된 클래스에 기초하여, 상기 제2 문법 모델을 결정하는 단계를 포함한다.
더하여, 상기 음성 데이터 및 상기 음성 데이터가 음성 인식된 결과인 텍스트 획득; 상기 텍스트 또는 상기 상황 정보로부터 콘텐츠에 관한 정보를 검출하는 단계; 상기 음성 데이터로부터 어쿠스틱 정보를 검출하는 단계; 상기 콘텐츠에 관한 정보 및 어쿠스틱 정보와 대응되는 클래스를 결정하는 단계; 상기 콘텐츠에 관한 정보 및 상황 정보 중 적어도 하나에 기초하여, 상기 결정된 클래스와 대응되는 문법 모델에 관한 정보를 갱신하는 단계를 더 포함한다.
일 실시 예에 있어서, 음성 인식 시 각 단어가 출현할 확률에 관한 정보를 포함하는 문법 모델을 갱신하기 위한 디바이스에 있어서, 적어도 하나의 단어를 포함하는 언어 데이터(langurage data)를 획득하고, 상기 적어도 하나의 단어 중 상기 문법 모델에 존재하지 않는 단어를 검출하고, 상기 검출된 단어에 대한 적어도 하나의 발음열(phoneme sequence)을 획득하고, 상기 적어도 하나의 발음열 각각을 소정 단위로 분할하여, 상기 적어도 하나의 발음열 각각을 구성하는 구성요소를 획득하고, 상기 적어도 하나의 발음열 각각을 구성하는 구성 요소의 음성 인식 시 출현할 확률에 관한 정보를 결정하고, 상기 결정된 확률 정보에 기초하여 상기 문법 모델을 갱신하는 제어부; 및 상기 갱신된 문법 모델을 저장하는 메모리를 포함한다.
일 실시 예에 있어서, 음성 인식을 수행하는 디바이스에 있어서, 음성 인식을 수행하고자 하는 음성 데이터를 획득하는 사용자 입력부; 적어도 하나의 발음열을 상기 음성 데이터로부터 획득하고, 상기 적어도 하나의 발음열을 구성하고 소정 단위로 구분된 구성 요소가 출현할 확률에 관한 정보를 획득하고, 상기 소정 단위로 구분된 구성 요소가 출현할 확률에 관한 정보에 기초하여, 상기 적어도 하나의 발음열 중 하나를 결정하고, 상기 결정된 발음열에 포함된 소정 단위로 분할된 구성 요소를 단어로 변환하기 위한 분절 정보에 기초하여, 상기 결정된 발음열과 대응되는 단어를 획득하는 제어부를 포함한다.
발명의 실시를 위한 형태
이하 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 다만, 하기의 설명 및 첨부된 도면에서 본 발명의 요지를 흐릴 수 있는 공지 기능 또는 구성에 대한 상세한 설명은 생략한다. 또한, 도면 전체에 걸쳐 동일한 구성 요소들은 가능한 한 동일한 도면 부호로 나타내고 있음에 유의하여야 한다.
이하에서 설명되는 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위한 용어로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서 본 명세서에 기재된 실시 예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시 예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다.
첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 또는 개략적으로 도시되었으며, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다. 본 발명은 첨부한 도면에 그려진 상대적인 크기나 간격에 의해 제한되어지지 않는다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에서 사용되는 "부"라는 용어는 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, "부"는 어떤 역할들을 수행한다. 그렇지만 "부"는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. "부"는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 "부"는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 "부"들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 "부"들로 결합되거나 추가적인 구성요소들과 "부"들로 더 분리될 수 있다.
아래에서는 첨부한 도면을 참고하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 설명한다.
도 1은 일 실시 예에 따른 음성 인식을 수행하는 디바이스(100)의 일 예를 나타낸 블록도이다.
도 1을 참조하면, 디바이스(100)는 음성 인식을 수행하기 위한 구성 요소로써, 특징 추출부(110), 후보 발음열 검출부(120) 및 언어 선택부(140)를 포함할 수 있다. 특징 추출부(110)는 입력된 음성 신호에 대한 특징 정보를 추출한다. 후보 발음열 검출부(120)는 추출된 특징 정보로부터 적어도 하나의 후보 발음열을 검출한다. 언어 선택부(140)는 각 후보 발음열의 출현 확률 정보에 기초하여, 음성 인식된 최종 언어를 선택한다. 단어의 출현 확률 정보는, 음성 인식이 수행될 때, 음성 인식된 언어에서, 해당 단어가 출현할 확률 정보를 의미한다. 이하에서 디바이스(100)의 각 구성 요소에 대해 구체적으로 설명하기로 한다.
특징 추출부(110)는 음성 신호를 수신하면, 실제 화자가 발성한 음성 부분만을 검출하여, 음성 신호의 특징을 나타낼 수 있는 정보를 추출할 수 있다. 음성 신호의 특징을 나타내는 정보는, 예를 들면, 음성 신호가 속하는 파형(waveform)에 따라 입 모양 또는 혀의 위치를 나타낼 수 있는 정보를 포함할 수 있다.
후보 발음열 검출부(120)는 추출된 음성 신호의 특징 정보와 음향 모델(acoustic model, 130)을 이용하여 음성 신호와 매칭될 수 있는 적어도 하나의 후보 발음열(pronunciation variants)을 검출할 수 있다. 음성 신호에 따라 복수 개의 후보 발음열이 검출될 수 있다. 예를 들어, '져', '저' 등의 발음은 비슷하므로, 동일 음성 신호에 대하여 '져', '저' 등의 발음을 포함하는 복수 개의 후보 발음열이 검출될 수 있다. 후보 발음열은 단어 단위로 검출될 수 있으나, 이에 한하지 않고, 후보 발음열은 음운, 음소 단위 등의 다양한 단위로 검출될 수 있다.
음향 모델(130)은 음성 신호의 특징 정보로부터 후보 발음열을 검출하기 위한 정보를 포함할 수 있다. 또한, 음향 모델(130)은 많은 양의 음성 데이터로부터 통계적인 방법을 통하여 생성될 수 있으며, 불특정 다수의 발화 데이터로부터 생성될 수도 있고, 특정 화자로부터 수집된 발화 데이터로부터 생성될 수도 있다. 따라서, 음향 모델은 화자에 따라 음성 인식 시 개별적으로 적용될 수 있다.
언어 선택부(140)는 발음 사전(150) 및 문법 모델(160)을 이용하여 후보 발음열 검출부(120)에서 검출된 각 후보 발음열의 출현 확률 정보를 구할 수 있다. 그리고, 언어 선택부(140)는 각 후보 발음열의 출현 확률 정보에 기초하여, 음성 인식된 최종 언어를 선택한다. 구체적으로, 언어 선택부(140)는 발음 사전(150)을 이용하여 각 후보 발음열과 대응되는 단어를 결정하고, 문법 모델(160)을 이용하여 결정된 각 단어의 출현 확률 값을 구할 수 있다.
발음 사전(150)은 후보 발음열 검출부(120)에 의해 검출된 후보 발음열과 대응되는 단어(word)를 획득하기 위해 필요한 정보를 포함할 수 있다. 발음 사전(150)은 각 단어의 음운변화 현상에 따라 획득된 발음열로부터 구축될 수 있다.
단어의 발음은 해당 단어의 앞뒤 단어 또는 문장 상 위치, 화자의 특성 등에 따라 변경될 수 있어 일관적이지 않다. 또한, 출현 확률 값은 현재 단어가 출현할 확률 또는, 현재 단어가 특정 단어와 동시에 출현할 확률을 의미한다. 디바이스(100)는 출현 확률 값을 이용함으로써 문맥을 고려하여 음성 인식을 수행할 수 있다.
디바이스(100)는 발음 사전(150)을 이용하여 후보 발음열의 단어를 구하고, 문법 모델(160)을 이용하여 각 단어에 대한 출현 확률 정보를 구함으로써, 음성 인식을 수행할 수 있다. 이에 한하지 않고, 디바이스(100)는 발음 사전(150)을 통해 발음열과 대응되는 단어를 구하지 않고 후보 발음열을 이용하여 문법 모델(160)로부터 출현 확률 정보를 구할 수도 있다.
예를 들면, 한국어의 경우, 후보 발음열 검출부(120)는 '학꾜(hakkkyo)'라는 후보 발음열을 검출하였을 때, 언어 선택부(140)는 검출된 후보 발음열 '학꾜(hakkkyo)'와 대응되는 단어로, 발음 사전(150)을 이용하여 '학교'라는 단어를 구할 수 있다. 또 다른 예로, 영어의 경우, 후보 발음열 검출부(120)는 'skul'이라는 후보 발음열을 검출하였을 때, 언어 선택부(140)는 검출된 후보 발음열 'skul'과 대응되는 단어로, 발음 사전(150)을 이용하여 'school'이라는 단어를 구할 수 있다.
문법 모델(160)은 단어에 대한 출현 확률 정보를 포함할 수 있다. 출현 확률 정보는 단어 별로 존재할 수 있다. 디바이스(100)는 각 후보 발음열에 포함된 단어에 대한 출현 확률 정보를 문법 모델(160)로부터 획득할 수 있다.
예를 들어, 문법 모델(160)은 현재 단어 B가 출현하기 이전에 단어 A가 출현한 경우, 현재 단어 B가 출현할 확률에 관한 정보인 P(B|A)를 포함할 수 있다. 다시 말하면, 단어 B의 출현 확률 정보인 P(B|A)는 단어 B의 출현 전에 단어 A가 출현하는 것을 조건으로 할 수 있다. 또 다른 예로, 문법 모델(160)은 단어 B의 출현 전에 단어 A 및 C, 즉, 복수 개의 단어가 출현하는 것을 조건으로 하는 P(B|A C)를 포함할 수 있다. 다시 말하면, P(B|A C)는 단어 B의 출현 전에 단어 A와 C 모두 출현하는 것을 조건으로 할 수 있다. 또 다른 예로, 문법 모델(160)은 조건부 확률이 아닌, 단어 B에 대한 출현 확률 정보 P(B)를 포함할 수 있다. P(B)는 단어 B가 음성 인식 시 출현할 확률을 의미한다.
디바이스(100)는 문법 모델(160)을 이용하여 언어 선택부(140)에서 각 후보 발음열과 대응되는 단어의 출현 확률 정보에 기초하여 음성 인식된 단어를 최종 결정할 수 있다. 즉, 디바이스(100)는 출현 확률 정보가 가장 높은 단어를 음성 인식된 단어로 최종 결정할 수 있다. 언어 선택부(140)는 음성 인식된 단어를 텍스트 정보로 출력할 수 있다.
단어 단위로 문법 모델을 갱신하거나 음성 인식을 수행하는 것에 한하지 않고, 다른 언어 단위로 수행될 수 있으나, 설명 편의상 이하에서는, 단어 단위를 기준으로 문법 모델을 갱신하거나 음성 인식을 수행하는 방법을 설명하기로 한다.
이하 도 2 내지 도 9를 참조하여, 새로운 단어를 음성 인식하기 위한 음성 인식 데이터를 갱신하는 방법에 대해 자세히 설명하기로 한다.
도 2는 일 실시 예에 의한 음성 인식 데이터를 갱신하는 음성 인식 디바이스(230) 및 음성 인식 데이터 갱신 디바이스(220)를 나타낸 블록도이다.
도 2에서는 음성 인식 데이터 갱신 디바이스(220)와 음성 인식 디바이스(230)가 별개의 장치인 것으로 도시하고 있으나, 이는 하나의 실시예로서 설명하는 것이며, 음성 인식 디바이스(230)내에 음성 인식 데이터 갱신 디바이스(220)가 포함되는 것과 같이 하나의 장치로 구성될 수 있다. 도면들과 후술되어 있는 실시예에서, 음성 인식 데이터 갱신 디바이스(220)와 음성 인식 디바이스(230)에 포함되어 있는 개개의 구성 요소는 물리적 형태 또는 논리적 형태로 분산되어 배치될 수도 있고, 통합될 수도 있다.
음성 인식 디바이스(230)는 단말 장치로부터 수신된 음성 데이터를 이용하여 음성 인식을 수행하고, 음성 인식된 언어를 출력하는 ASR(Automatic Speech Recognition Server)일 수 있다.
음성 인식 디바이스(230)는 음성 인식을 수행하는 음성 인식부(231)와 음성 인식을 수행하는데 이용되는 음성 인식 데이터(232, 233, 235)를 포함할 수 있다. 음성 인식 데이터(232, 233, 235)는 기타 모델(232), 발음 사전(233) 및 문법 모델(235)을 포함할 수 있다. 또한, 일 실시 예에 의한 음성 인식 디바이스(230)는 음성 인식 데이터를 갱신하는 위한 분절 모델(234)을 더 포함할 수 있다.
도 1의 디바이스(100)는 도 2의 음성 인식부(231)와 대응될 수 있고, 도 2의 음성 인식 데이터(232, 233, 235)는 도 1의 음향 모델(130), 발음 사전(150) 및 문법 모델(160)과 대응될 수 있다.
발음 사전(233)은 적어도 하나의 후보 발음열과 단어간의 대응 관계에 관한 정보를 포함할 수 있다. 문법 모델(235)은 단어에 대한 출현 확률 정보를 포함할 수 있다. 기타 모델(232)은 음성 인식 시 이용될 수 있는 다른 모델들을 포함할 수 있다. 예를 들면, 기타 모델(232)은 음성 신호의 특징 정보로부터 후보 발음열을 검출하기 위한 음향 모델을 포함할 수 있다.
일 실시 예에 의한 음성 인식 디바이스(230)는 새로운 단어를 반영하여 문법 모델(235)을 갱신하기 위한 분절 모델(234)을 더 포함할 수 있다. 분절 모델(234)은 일 실시 예에 따라 새로운 단어를 이용하여 음성 인식 데이터를 갱신할 때 이용될 수 있는 정보를 포함한다. 구체적으로, 분절 모델(234)은 수집된 언어 데이터에 포함된 새로운 단어를 소정 단위로 분할하기 위한 정보를 포함할 수 있다. 예를 들어, 새로운 단어가 음절(subword) 단위로 분할되는 경우, 분절 모델(234)은 '가 갸 아 레 플 탐' 등의 음절 단위의 문자를 포함할 수 있다. 이에 한하지 않고, 분절 모델(234)은 소정 단위의 언어를 포함하고, 새로운 단어는 소정 단위로 분할될 수 있다. 음절은 자립적으로 발화될 수 있는 최소의 음성 단위를 의미한다.
도 2의 분절 모델(234)은 음성 인식 디바이스(230)에 포함되어 있으나, 이에 한하지 않고 분절 모델(234)은 음성 인식 데이터 갱신 디바이스(220)에 포함될 수도 있고, 다른 외부 장치에 포함될 수도 있다.
음성 인식 데이터 갱신 디바이스(220)는 음성 인식 시 이용되는 음성 인식 데이터(232, 233, 235) 중 적어도 하나를 갱신할 수 있다. 음성 인식 데이터 갱신 디바이스(220)는 음성 인식 데이터를 갱신하기 위한 구성 요소로, 새로운 단어 검출부(221), 발음 생성기(222), 음절 단위 분할부(223), 출현 확률 정보 결정부(224) 및 문법 모델 갱신부(225)를 포함할 수 있다.
음성 인식 데이터 갱신 디바이스(220)는 적어도 하나의 단어를 포함하는 언어 데이터(210)를 수집하고, 언어 데이터(210)에 포함된 새로운 단어를 이용하여 음성 인식 데이터(232, 233, 235) 중 적어도 하나를 갱신할 수 있다.
음성 인식 데이터 갱신 디바이스(220)는 주기적으로 또는 이벤트 발생 시 언어 데이터(210)를 수집하여 음성 인식 데이터를 갱신할 수 있다. 예를 들면, 사용자 디바이스의 디스플레이의 화면이 다른 화면으로 전환되면, 음성 인식 데이터 갱신 디바이스(220)는 전환된 화면에 포함된 언어 데이터(210)를 수집하고, 수집된 언어 데이터(210)에 기초하여 음성 인식 데이터를 갱신할 수 있다. 음성 인식 데이터 갱신 디바이스(220)는 디스플레이 화면에 포함된 언어 데이터(210)를 사용자 디바이스로부터 수신함으로써 언어 데이터(210)를 수집할 수 있다.
또는, 음성 인식 데이터 갱신 디바이스(220)가 사용자 디바이스인 경우, 디스플레이 화면에 포함된 언어 데이터(210)를 내부 알고리즘에 따라 획득할 수 있다. 상술된 사용자 디바이스는 음성 인식 디바이스(230) 또는 음성 인식 데이터 갱신 디바이스(220)와 동일한 장치이거나, 외부 장치일 수 있다.
음성 인식 데이터 갱신 디바이스(220)에 의해 음성 인식 데이터가 갱신되면, 음성 인식 디바이스(230)는 상술된 새로운 단어와 대응되는 음성 신호에 대하여 음성 인식을 수행할 수 있다.
언어 데이터(210)는 텍스트 형식으로 수집될 수 있으며, 예를 들면, 언어 데이터(210)는 컨텐츠 또는 웹 페이지에 포함된 텍스트들을 포함할 수 있다. 텍스트가 이미지 파일에 포함되어 있는 경우, OCR(optical character reder)에 의해 텍스트가 획득될 수 있다. 언어 데이터(210)는 다수의 단어를 포함하는 문장 또는 문단 형태의 텍스트를 포함할 수 있다.
새로운 단어 검출부(221)는 수집한 언어 데이터(210)로부터 문법 모델(235)에 포함되어 있지 않은 새로운 단어를 검출할 수 있다. 문법 모델(235)에 포함되어 있지 않은 단어는 음성 인식 디바이스(230)에서 음성 인식을 수행할 때, 출현 확률 정보를 구할 수 없으므로, 음성 인식된 단어로 출력될 수 없다. 일 실시 예에 의한 음성 인식 데이터 갱신 디바이스(220)는 문법 모델(235)에 포함되어 있지 않은 새로운 단어를 검출하고, 새로운 단어에 대한 출현 확률 정보를 문법 모델(235)에 추가함으로써 음성 인식 데이터를 갱신할 수 있다. 그리고 음성 인식 디바이스(230)는 새로운 단어를 출현 확률 값에 따라 음성 인식된 단어로 출력할 수 있다.
음성 인식 데이터 갱신 디바이스(220)는 새로운 단어를 음절 단위로 분할하고, 분할된 새로운 단어의 구성 요소 별로 출현 확률 정보를 문법 모델(235)에 추가할 수 있다. 일 실시 예에 의한 음성 인식 데이터 갱신 디바이스(220)는 발음 사전(233)과 기타 모델(232)의 갱신 없이 문법 모델(235)의 갱신만으로, 새로운 단어를 인식할 수 있는 음성 인식 데이터를 갱신할 수 있으므로, 신속하게 음성 인식 데이터를 갱신할 수 있다.
발음 생성기(222)는 새로운 단어 검출부(221)에 의해 검출된 새로운 단어를 표준 발음법에 의한 발음 규칙 또는 화자 특성을 고려한 발음 규칙에 따라 적어도 하나의 발음열로 변환할 수 있다.
또 다른 예로, 발음 생성기(222)에 의해 발음열이 생성되는 대신, 새로운 단어에 대한 발음열은 사용자 입력에 따라 결정될 수 있다. 또한, 상술된 예의 발음 규칙에 한하지 않고, 언어 데이터(210) 또는 새로운 단어와 관련된 화자의 특성이나 지역, 시간적 특성 등 다양한 상황을 고려한 조건에 기초하여 발음열이 결정될 수 있다. 구체적으로, 화자가 처한 상황, 예를 들면, 아침과 저녁 목소리가 서로 다르다거나, 화자의 언어 습관의 변화에 따라 동일한 문자가 다르게 발음될 수 있는 점에 기초하여 발음열이 결정될 수 있다.
음절 단위 분할부(223)는 발음 생성기(222)에 의해 변환된 발음열을 분절 모델(234)에 기초하여 소정 단위로 분할할 수 있다.
예를 들면, 한국어의 경우, 발음 생성기(222)는 '김연아(gim yeon a)'라는 새로운 단어를 '기며나(gi myeo na)'라는 발음열로 변환할 수 있다. 그리고, 음절 단위 분할부(223)는 분절 모델(234)에 포함된 음절 정보를 참조하여, '기며나'라는 발음열을 '기(gi)', '며(myeo)' 및 '나(na)'의 음절 단위의 구성 요소로 분할할 수 있다. 자세히 설명하면, 음절 단위 분할부(223)는 분절 모델(234)에 포함된 음절 단위의 언어들 중에서, '기며나'라는 발음열이 음절 단위로 분할된 각 구성 요소들과 대응되는 '기(gi)', '며(myeo)' 및 '나(na)'를 검출할 수 있다. 음절 단위 분할부(223)는 검출된 음절 단위의 언어들을 이용하여 '기며나'라는 발음열을 '기(gi)', '며(myeo)' 및 '나(na)'의 음절 단위의 구성 요소로 분할할 수 있다.
영어의 경우, 발음 생성기(222)는 새로운 단어로 인식된 'texas'를 'tekses'의 발음열로 변환할 수 있다. 그리고, 분절 모델(234)에 포함된 음절 정보를 참조하여, 음절 단위 분할부(223)는 'tekses'를 'teks' 및 'es'의 음절 단위로 분할할 수 있다. 일 실시 예에 있어서, 분절 모델(234)에 따라 분할될 수 있는 소정 단위는 음절 외에 분절음 등의 다른 음성 단위를 포함할 수도 있다.
한국어의 경우, 음절은 모음만으로 된 것, 모음과 자음의 결합으로 된 것, 자음과 모음의 결합으로 된 것, 자음, 모음, 자음의 결합으로 된 것의 네 종류를 포함할 수 있다. 발음열이 음절 단위로 분할되는 경우, 분절 모델(234)은 '가(ga), 갸(gya), 간(gan), 갈(gal), 남(nam), 난(nan), 운(un), 후(hu)' 등의 약 수천 개의 유한한 개수의 음절 정보를 포함할 수 있다.
음절 단위 분할부(223)는 일본어 또는 중국어로된 새로운 단어도 마찬가지로 표음 문자(ex. 알파벳, 가타카나, 한글 등)로 표시된 발음열로 변환되고, 변환된 발음열은 음절 단위로 분할될 수 있다.
상술된 예에 제시된 언어 이외에 다른 언어의 경우에도, 일 실시 예에 의한 분절 모델(234)은 새로운 단어를 소정 단위로 분할하기 위한 정보를 각 언어별로 포함할 수 있다. 그리고, 음절 단위 분할부(223)는 분절 모델(234)에 기초하여 새로운 단어의 발음열을 소정 단위로 분할할 수 있다.
출현 확률 정보 결정부(224)는 새로운 단어의 발음열을 구성하는 소정 단위의 구성 요소 별로 출현 확률 정보를 결정할 수 있다. 출현 확률 정보 결정부(224)는 새로운 단어가 언어 데이터 중 문장 내에 포함되어 있는 경우, 문장에 포함되어 있는 새로운 단어를 제외한 단어들을 이용하여 출현 확률 정보를 획득할 수 있다.
예를 들어, '오늘 김연아 보여줘'의 문장에서, '김연아(gim yeon a)'가 새로운 단어로 검출된 경우에 있어 출현 확률 정보 결정부(224)는 '기(gi)', '며(myeo)' 및 '나(na)'의 분할된 음절 별로 출현 확률 정보를 결정할 수 있다. 예를 들면, 출현 확률 정보 결정부(224)는 문장에 포함된 '오늘' 단어의 출현 확률 정보를 이용하여, P(기|오늘)의 확률값을 결정할 수 있다. 또한, 'texas'가 새로운 단어로 검출된 경우, 'teks' 및 'es'의 분할된 음절 별로 출현 확률 정보가 결정될 수 있다.
음절에 대한 출현 확률 정보는, 적어도 하나의 특정 음절 또는 단어가 현재 음절 전에 출현하는 것을 조건으로 할 때, 현재 음절이 음성 인식 시 출현할 확률에 관한 정보를 포함할 수 있다. 또한, 음절에 대한 출현 확률 정보는, 조건 없이, 현재 음절이 음성 인식 시 출현할 확률에 관한 정보를 포함할 수 있다.
문법 모델 갱신부(225)는 음절 별로 결정된 출현 확률 정보를 이용하여 문법 모델(235)을 갱신할 수 있다. 문법 모델 갱신부(225)는 특정 음절 또는 단어가 현재 단어 또는 음절 전에 출현하는 것을 조건으로 하는 모든 확률 값의 합이 1이 되도록 문법 모델(235)을 갱신할 수 있다.
자세히 설명하면, 문법 모델 갱신부(225)는 음절 별로 결정된 출현 확률 정보 중 하나가 P(B|A)인 경우, 문법 모델 갱신부(225)는 문법 모델(235)에 포함된 A를 이전 출현 조건으로 하는 확률값 P(C|A) 및 P(D|A)를 구할 수 있다. 그리고, P(B|A)+P(C|A)+P(D|A) 값이 1이 되도록 P(B|A), P(C|A) 및 P(D|A) 값을 재결정할 수 있다.
문법 모델 갱신 시, 문법 모델 갱신부(225)는 문법 모델(235)에 포함된 다른 단어 또는 음절에 대한 확률 값도 재결정될 수 있어, 문법 모델(235)에 포함된 확률 값이 많을수록 문법 모델을 갱신하는데 소요되는 시간이 길어질 수 있다. 따라서, 일 실시 예에 의한 문법 모델 갱신부(225)는 다수의 확률 값을 포함하는 문법 모델 대신 상대적으로 적은 수의 확률 값을 포함하는 문법 모델을 갱신하여, 문법 모델 갱신시 소요되는 시간을 최소화할 수 있다.
상술된 음성 인식 프로세스에 의하면 음성 인식 디바이스(230)는 음성 신호에 포함된 하나의 단어를 인식하기 위해서 음향 모델과 발음 사전, 문법 모델을 함께 이용할 수 있다. 따라서, 음성 인식 데이터가 갱신되는 경우, 새로운 단어가 음성 인식될 수 있도록 음향 모델과 발음 사전, 문법 모델이 함께 갱신되는 것이 필요하다. 그러나, 새로운 단어가 음성 인식될 수 있도록 음향 모델과 발음 사전, 문법 모델이 함께 갱신되려면, 기존에 저장된 단어들에 대한 정보도 함께 갱신되는 것이 필요하므로 최대 1시간 이상의 시간이 필요하다. 따라서, 새로운 단어가 수집되자 마자, 음성 인식 디바이스(230)가 새로운 단어에 대한 음성 인식을 수행하기는 어렵다.
일 실시 예에 의한 음성 인식 데이터 갱신 디바이스(220)는 새로운 단어의 특성에 따라 기타 모델(232)과 발음 사전(233)을 갱신하는 과정을 수행하지 않아도 된다. 음성 인식 데이터 갱신 디바이스(220)는 새로운 단어를 구성하는 음절 단위의 구성 요소 별로 결정된 출현 확률 정보에 기초하여 문법 모델(235)을 갱신하는 과정만 수행할 수 있다. 따라서, 일 실시 예에 의한 문법 모델 갱신 방법에 의하면, 수 초 내에 새로운 단어에 대한 문법 모델 갱신이 가능하고, 음성 인식 디바이스(230)가 실시간으로 새로운 단어를 반영하여 음성 인식을 수행하는 것이 가능하다.
도 3은 일 실시 예에 의한 새로운 단어를 인식하기 위한 음성 인식 데이터를 갱신하는 방법을 나타낸 순서도이다.
도 3을 참조하면, 단계 S301에 있어서, 음성 인식 데이터 갱신 디바이스(220)는 적어도 하나의 단어를 포함하는 언어 데이터를 획득할 수 있다. 언어 데이터는 사용자가 사용 중인 디바이스의 화면에 표시되어 있는 컨텐츠, 웹 페이지 또는 모듈 등에 포함된 텍스트를 포함할 수 있다.
단계 S303에서, 음성 인식 데이터 갱신 디바이스(220)는 적어도 하나의 단어 중 문법 모델에 존재하지 않는 단어를 검출할 수 있다. 문법 모델에 존재하지 않는 단어는, 확률 정보가 존재하지 않아 음성 인식된 단어로 검출될 수 없는 단어이다. 따라서, 음성 인식 데이터 갱신 디바이스(220)는 문법 모델에 존재하지 않는 단어를 음성 인식 데이터를 갱신하기 위한 새로운 단어로 검출할 수 있다.
단계 S305에서, 음성 인식 데이터 갱신 디바이스(220)는 단계 S303에서 검출된 새로운 단어와 대응되는 적어도 하나의 발음열을 획득할 수 있다. 단어와 대응되는 발음열은 발음 규칙 또는 화자의 특성 등 다양한 조건에 따라서 복수 개가 존재할 수 있다. 또한, 숫자 또는 기호는 다양한 발음 방법을 가질 수 있으므로, 숫자 또는 기호와 대응되는 발음열은 복수 개가 존재할 수 있다.
단계 S307에서, 음성 인식 데이터 갱신 디바이스(220)는 단계 S305에서 획득된 적어도 하나의 발음열 각각을 소정 단위로 분할하여 적어도 하나의 발음열 각각을 구성하는 구성 요소를 획득할 수 있다. 구체적으로, 음성 인식 데이터 갱신 디바이스(220)는 도 2의 분절 모델(234)에 포함된 음절(subword) 정보에 기초하여, 각각의 발음열을 음절 단위로 분할함으로써 새로운 단어의 발음열 각각을 구성하는 구성 요소를 획득할 수 있다.
단계 S309에서, 음성 인식 데이터 갱신 디바이스(220)는 단계 S307에서 획득된 각 구성 요소의 음성 인식 시 출현 확률에 관한 정보를 결정할 수 있다. 출현 확률 정보는 조건부 확률 값을 포함할 수 있으며, 특정 음절 또는 단어가 이전에 출현한 것을 조건으로 하는 현재 음절 단위의 출현 확률에 관한 정보를 포함할 수 있다. 이에 한하지 않고, 출현 확률 정보는 조건 없이, 현재 음절 단위의 출현 확률에 관한 정보를 포함할 수 있다.
음성 인식 데이터 갱신 디바이스(220)는 단계 S301에서 획득된 언어 데이터를 이용하여 소정 단위의 구성 요소에 대한 출현 확률 정보를 결정할 수 있다. 음성 인식 데이터 갱신 디바이스(220)는 새로운 단어의 발음열의 분할된 음절 단위의 구성 요소들이 속한 문장 또는 문단을 이용하여, 구성 요소 별로 출현 확률 정보를 결정할 수 있다. 또한, 음성 인식 데이터 갱신 디바이스(220)는 단계 S305에서 획득된 적어도 하나의 발음열을 구성 요소들이 속한 문장 또는 문단과 함께 이용하여 구성 요소 별로 출현 확률 정보를 결정할 수 있다. 이에 관한 구체적인 실시 예는 도 16 및 도 17과 관련하여 더 자세히 설명하기로 한다.
단계 S309에서 결정될 수 있는 출현 확률 정보는 조건부 확률값에 한하지 않고, 조건을 가지지 않는 확률 값을 포함할 수도 있다.
단계 S311에서, 음성 인식 데이터 갱신 디바이스(220)는 단계 S309에서 결정된 출현 확률 정보를 이용하여 문법 모델을 갱신할 수 있다. 일 예로 음성 인식 데이터 갱신 디바이스(220)는 음절 별로 결정된 출현 확률 정보를 이용하여 문법 모델(235)을 갱신할 수 있다. 구체적으로, 음성 인식 데이터 갱신 디바이스(220)는 특정 음절 또는 단어가 현재 음절 전에 출현하는 것을 조건으로 하는 문법 모델(235)에 포함된 적어도 하나의 확률 값의 합이 1이 되도록 문법 모델(235)을 갱신할 수 있다.
도 4는 일 실시 예에 의한 새로운 단어를 추가하기 위한 시스템의 일 예를 나타낸 블록도이다.
도 4를 참조하면, 일 실시 예에 의하여 새로운 단어를 추가하기 위한 음성 인식 데이터 갱신 디바이스(420)와 음성 인식을 수행하는 음성 인식 디바이스(430)를 포함할 수 있다. 도 4의 음성 인식 디바이스(430)는 도 2의 음성 인식 디바이스(230)와는 달리 분절 정보(438)와 문법 모델 조합부(435), 제1 문법 모델(436) 및 제2 문법 모델(437)을 더 포함할 수 있다. 도 4의 음성 인식 데이터 갱신 디바이스(420)와 음성 인식 디바이스(430)는 도 2의 음성 인식 데이터 갱신 디바이스(220)와 음성 인식 디바이스(230)와 대응될 수 있으며, 중복되는 설명은 생략하기로 한다.
도 4의 문법 모델 조합부(435)는 음성 인식을 수행할 때, 도 2의 문법 모델(235)과는 달리 복수 개의 문법 모델을 조합하여 각 단어의 출현 확률 값을 결정할 수 있다. 다시 말하면, 문법 모델 조합부(435)는 복수 개의 문법 모델에 포함된 단어의 출현 확률 값을 각각 획득하고, 획득된 단어의 복수 개의 출현 확률 값을 조합하여 단어의 출현 확률 값을 구할 수 있다. 도 4를 참조하면, 문법 모델 조합부(435)는 제1 문법 모델(436)과 제2 문법 모델(437)을 조합하여 각 단어의 출현 확률 값을 결정할 수 있다.
제1 문법 모델(436)은 음성 인식 디바이스(430)에 미리 구비되어 있는 문법 모델로, 일반적인 음성 인식 시스템에서 사용될 수 있는 범용적인 문법 모델을 포함할 수 있다. 제1 문법 모델(436)은 상당수의 언어 데이터(ex. 웹페이지, 컨텐츠 등에 포함된 수만 개의 문장)를 기반으로 결정된 단어 단위 또는 소정 단위의 출현 확률 정보를 포함할 수 있다. 따라서, 제1 문법 모델(436)에 따라 음성 인식을 수행하는 것은 제1 문법 모델(436)이 다수의 표본 데이터를 기초로 획득된 점에서, 높은 성능 및 안정성이 보장될 수 있다.
제2 문법 모델(437)은 일 실시 예에 따라 새로운 단어에 대한 출현 확률 정보를 포함하는 문법 모델이다. 제2 문법 모델(437)은 제1 문법 모델(436)는 달리 상황에 따라 선택적으로 적용될 수 있으며, 상황에 따라 선택적으로 적용될 수 있는 제2 문법 모델(437)이 적어도 하나 이상 존재할 수 있다.
제2 문법 모델(437)은 음성 인식 데이터 갱신 디바이스(420)에 의하여 실시간으로 갱신될 수 있다. 문법 모델 갱신 시, 음성 인식 데이터 갱신 디바이스(420)는 새로운 단어의 출현 확률 정보를 이용하여 문법 모델에 포함된 출현 확률 정보를 재결정하는 단계를 포함할 수 있다. 제2 문법 모델(437)은 제1 문법 모델(436)에 비해 적은 수의 출현 확률 정보를 포함하므로, 제2 문법 모델(437)의 갱신시 고려해야 할 출현 확률 정보의 수가 상대적으로 적다. 따라서, 새로운 단어를 음성 인식하기 위한 제2 문법 모델(437)의 갱신은 더 빨리 이루어질 수 있다.
음성 인식 시, 문법 모델 조합부(435)는 제1 문법 모델(436)과 제2 문법 모델(437)을 조합하여 단어 또는 음절의 출현 확률 정보를 구하는 구체적인 방법에 관하여는, 일 실시 예에 의한 음성 인식을 수행하는 방법에 관한 설명을 포함하는 도 11 내지 도 12와 관련하여 더 자세히 설명하기로 한다.
도 4의 음성 인식 디바이스(430)는 도 2의 음성 인식 디바이스(230)와는 달리 분절 정보(438)를 더 포함할 수 있다.
분절 정보(438)는 새로운 단어와, 새로운 단어가 분할된 음절 단위의 구성 요소 간의 대응 관계에 관한 정보를 포함할 수 있다. 분절 정보(438)는 도 4에 도시된 바와 같이 분절 모델(434)에 기초하여 새로운 단어의 발음열이 음절 단위로 분할되었을 때 음성 인식 데이터 갱신 디바이스(420)에 의해 생성될 수 있다.
예를 들어, 새로운 단어가 '김연아(gim yeon a)'이고, 분할된 단어가 각각 '기(gi)', '며(myeo)' 및 '나(na)'인 경우, 분절 정보(426)는 '김연아'와 '기 며 나'간 대응됨을 나타내는 정보를 포함할 수 있다. 또 다른 예로, 새로운 단어가 'texas'이고, 분할된 단어가 각각 'teks' 및 'es'인 경우, 분절 정보(426)는 'texas'와 'tekses'간 대응됨을 나타내는 정보를 포함할 수 있다.
음성 인식을 수행하는 방법에 있어서, 상술한 바와 같이 음향 모델로부터 결정된 발음열과 대응되는 단어는 발음 사전(433)으로부터 획득될 수 있다. 그러나, 일 실시 예에 따라 음성 인식 디바이스(430)의 제2 문법 모델(437)을 갱신하는 경우, 발음 사전(433)은 갱신되지 않으므로, 발음 사전(433)은 새로운 단어에 관한 정보를 포함하지 않고 있다.
따라서, 일 실시 예에 의한 음성 인식 디바이스(430)는 분절 정보(438)를 이용하여 분할된 소정 단위의 구성 요소들과 대응되는 단어 정보를 획득함으로써, 최종적으로 음성 인식된 결과를 텍스트로 출력할 수 있다.
분절 정보(426)를 이용하여 음성 인식을 수행하는 방법에 관하여, 음성 인식을 수행하는 방법과 관련된 도 12 내지 도 14를 참조하여 더 자세히 설명하기로 한다.
도 5 내지 도 6은 일 실시 예에 의한 새로운 단어를 추가하는 일 예를 나타낸 순서도이다.
도 5를 참조하면, 단계 510에서 음성 인식 데이터 갱신 디바이스(220)는 '오늘 3:10 투 유마 언제 해?'라는 문장을 포함하는 언어 데이터를 텍스트 데이터의 형태로 획득할 수 있다.
단계 530에서, 음성 인식 데이터 갱신 디바이스(220)는 제1 문법 모델 및 제2 문법 모델 중 적어도 하나를 포함하는 문법 모델(520)을 이용하여 문법 모델(520)에 존재하지 않는 단어인 '3:10'과, '유마'를 검출할 수 있다.
단계 540에서, 음성 인식 데이터 갱신 디바이스(220)는 분절 모델(550)과 발음 생성기(422)를 이용하여 검출된 단어와 대응되는 발음열들을 구하고, 각 발음열을 소정 단위로 분할할 수 있다. 단계 541 및 542에서, 음성 인식 데이터 갱신 디바이스(220)는 '3:10'과 대응되는 발음열인 '쓰리텐', '삼대십', '세시십뿐', '유마'와 대응되는 발음열인 '유마'를 구할 수 있다. 그리고 각 발음열을 음절 단위로 분할할 수 있다.
단계 560에서, 음성 인식 데이터 갱신 디바이스(220)는 단계 541 및 542에서 구한 발음열을 포함하는 문장을 구성할 수 있다. '3:10'과 대응되는 발음열 3개가 획득됨에 따라 3가지의 문장이 구성될 수 있다.
단계 570에서, 음성 인식 데이터 갱신 디바이스(220)는 단계 560에서 구성한 각 문장에서의 소정 단위의 출현 확률 정보를 결정할 수 있다.
예를 들어, 첫번째 문장에서, '쓰'에 대한 확률 정보인 P(쓰|오늘)은 '오늘'이 왔을 때 뒤이어 '쓰', 두번째 문장의 '삼', 세번째 문장의 '세'가 올 수 있으므로, 1/3의 값을 가질 수 있다. 마찬가지로, P(삼|오늘)과 P(세|오늘)도 1/3의 값을 가질 수 있다. '리'에 대한 확률 정보인 P(리|쓰)는 세 문장에서 '쓰'가 출현했을 때 '리'가 출현하는 경우만 존재하므로, 1의 값을 가질 수 있다. 마찬가지로 P(텐|리), P(유|투), P(마|유), P(대|삼), P(십|대), P(시|세), P(십|시)도 1의 값을 가질 수 있다. P(뿐|십)의 경우, '십'이 출현했을 때, '투'와 '뿐'이 출현하는 경우가 존재하므로, 1/2의 값을 가질 수 있다.
단계 580에서, 음성 인식 데이터 갱신 디바이스(220)는 단계 570에서 결정된 출현 확률 정보에 기초하여 제1 문법 모델 및 적어도 하나의 제2 문법 모델 중 하나 이상을 갱신할 수 있다. 음성 인식 데이터 갱신 디바이스(220)는 새로운 단어가 음성 인식될 수 있도록 문법 모델을 갱신하는 경우, 이미 문법 모델에 포함된 다른 단어 또는 음절의 확률 정보를 함께 고려하여 문법 모델을 갱신할 수 있다.
예를 들어, P(X|오늘)과 같이 '오늘'이 이전에 오는 조건을 가지는 문법 모델에 이미 포함된 확률 값을 고려하여, P(쓰|오늘), P(삼|오늘), P(세|오늘)의 확률 값과 이미 문법 모델에 포함된 P(X|오늘)의 확률 값을 재결정할 수 있다. 예를 들어, 이미 문법 모델에 포함된 값 중 P(두|오늘)=P(투|오늘)=1/2 의 확률값이 존재하는 경우, 음성 인식 데이터 갱신 디바이스(220)는 P(X|오늘)의 확률 값을 이미 존재하는 확률 값과 단계 570에서 확률값을 고려하여 재결정할 수 있다. 자세히 설명하면, '오늘'이 출현하는 조건을 가지는 경우는 모두 5개이므로, 각 음절이 출현할 확률은 각각 1/5, 즉, P(X|오늘)의 확률 값은 모두 1/5의 값을 가질 수 있다. 따라서, 음성 인식 데이터 갱신 디바이스(220)는 같은 문법 모델 내에 포함된 동일 조건을 가지는 조건부 확률 값들의 총합이 1의 값을 가지도록 확률 값을 재결정할 수 있다.
도 6을 참조하면, 단계 610에서 음성 인식 데이터 갱신 디바이스(220)는 '오늘 김연아 보여줘'라는 문장을 포함하는 언어 데이터를 텍스트 데이터의 형태로 획득할 수 있다.
단계 630에서, 음성 인식 데이터 갱신 디바이스(220)는 제1 문법 모델 및 제2 문법 모델 중 적어도 하나를 이용하여 문법 모델(620)에 존재하지 않는 단어인 '김연아'와, '보여줘'를 검출할 수 있다.
단계 640에서, 음성 인식 데이터 갱신 디바이스(220)는 분절 모델(650)과 발음 생성기(622)를 이용하여 검출된 단어와 대응되는 발음열들을 구하고, 각 발음열을 소정 단위로 분할할 수 있다. 단계 641 및 642에서, 음성 인식 데이터 갱신 디바이스(220)는 '김연아'와 대응되는 발음열인 '기며나', '보여줘'와 대응되는 발음열인 '보여줘' 및 '보여져'를 구할 수 있다. 그리고 각 발음열을 음절 단위로 분할할 수 있다.
단계 660에서, 음성 인식 데이터 갱신 디바이스(220)는 단계 641 및 642에서 구한 발음열을 포함하는 문장을 구성할 수 있다. '보여줘'과 대응되는 발음열 2개가 획득됨에 따라 2가지의 문장이 구성될 수 있다.
단계 670에서, 음성 인식 데이터 갱신 디바이스(220)는 단계 660에서 구성한 각 문장에서의 소정 단위의 출현 확률 정보를 결정할 수 있다.
예를 들어, 첫번째 문장의 '기'에 대한 확률 정보인 P(기|오늘)은 '오늘'이 왔을 때 2가지의 문장에서는 '기'가 오는 경우만 존재하므로, 1의 값을 가질 수 있다. 마찬가지로 P(며|기), P(나|며), P(보|나), P(여|보)는 각 조건에서 한가지의 경우만 존재하므로, 각 확률 값은 1의 값을 가질 수 있다. P(줘|여) 및 P(져|여)의 경우, 2개의 문장에서, '여'가 올 때 뒤이어 오는 단어는 '줘' 및 '져'의 두 가지가 존재하는 점에서 각 확률 값은 모두 1/2의 값을 가질 수 있다.
단계 680에서, 음성 인식 데이터 갱신 디바이스(220)는 단계 670에서 결정된 출현 확률 정보에 기초하여 제1 문법 모델 및 제2 문법 모델 중 적어도 하나의 문법 모델을 갱신할 수 있다.
도 7은 일 실시 예에 있어서, 새로운 단어와 음절간의 대응 관계의 일 예를 나타낸 테이블이다.
도 7을 참조하면, 새로운 단어로 '김연아'가 검출된 경우, '김연아'와 대응되는 음절로, 710과 같이 '기', '며' 및 '나'가 결정될 수 있다. 마찬가지로, 새로운 단어로 '보여줘'가 검출된 경우, '보여줘'와 대응되는 음절로 720 및 730과 같이 '보', '여', '줘' 와 '보', '여', '져'가 결정될 수 있다.
도 7에 도시된 것과 같은 새로운 단어와 음절 간의 대응 관계에 관한 정보는 분절 정보(426)로 저장되어 음성 인식 시 이용될 수 있다.
도 8은 일 실시 예에 있어서, 새로운 단어에 대한 음성 인식시 출현 확률에 관한 정보의 일 예를 나타낸 테이블이다.
도 8을 참조하면, 출현 확률에 관한 정보는 조건이 없는 출현 확률에 관한 정보 및 이전 출현 단어를 조건부로 하는 출현 확률에 관한 정보 중 적어도 하나를 포함할 수 있다.
조건이 없는 출현 확률에 관한 정보(810)는, P(오늘), P(기), P(져) 등의 조건부를 가지지 않는 단어 또는 음절 단위의 출현 확률에 관한 정보를 포함할 수 있다.
이전 출현 단어를 조건부로 하는 출현 확률에 관한 정보(820)는, P(기|오늘), P(며|기), P(줘|여) 등의 이전 출현 단어를 조건부로 하는 단어 또는 음절 단위의 출현 확률에 관한 정보를 포함할 수 있다. 도 8에 도시된, '오늘 기', '기 며', '여 줘'의 출현 확률 정보는 각각 P(기|오늘), P(며|기), P(줘|여)의 확률 정보와 대응될 수 있다.
도 9는 일 실시 예에 새로운 단어를 음성 인식하기 위한 음성 인식 데이터를 갱신하는 시스템의 일 예를 나타낸 블록도이다.
도 9에 도시된 음성 인식 데이터 갱신 디바이스(920)는 기타 모델(932), 발음사전(933) 및 제1 문법 모델(934) 중 적어도 하나를 갱신하기 위한 새로운 단어 정보(922)와 음성 인식 데이터 갱신부(923)를 더 포함할 수 있다.
도 9의 음성 인식 데이터 갱신 디바이스(920)와 음성 인식 디바이스(930)는 도 2 및 도 4의 음성 인식 데이터 갱신 디바이스(220, 420)와 음성 인식 디바이스(230, 430)와 대응될 수 있으며, 중복되는 설명은 생략하기로 한다. 또한, 도 9의 문법 모델 갱신부(921)는 도 2 및 도 4의 음성 인식 데이터 갱신 디바이스(220, 420)에 포함된 구성요소들(221 내지 225, 421 내지 425)과 대응될 수 있고, 중복되는 설명은 생략하기로 한다.
도 9의 새로운 단어 정보(922)는 음성 인식 데이터 갱신 디바이스(920)에 의해 새로운 단어로 인식된 단어에 관한 정보를 포함할 수 있다. 새로운 단어 정보(922)는 기타 모델(932), 발음 사전(933) 및 제1 문법 모델(935) 중 적어도 하나를 갱신하기 위한 새로운 단어에 관한 정보를 포함할 수 있다. 구체적으로, 새로운 단어 정보(922)는 음성 인식 데이터 갱신 디바이스(920)에 의해 제2 문법 모델(936)에 출현 확률 정보가 추가된 단어에 관한 정보를 포함할 수 있다. 예를 들면, 새로운 단어 정보(922)는 새로운 단어의 발음열, 새로운 단어의 발음열이 소정 단위로 분할된 구성 요소에 관한 정보 및 새로운 단어의 각 구성 요소에 대한 출현 확률 정보 중 적어도 하나를 포함할 수 있다.
음성 인식 데이터 갱신부(923)는 새로운 단어 정보(922)를 이용하여 음성 인식 디바이스(930)의 기타 모델(932), 발음사전(933) 및 제1 문법 모델(935) 중 적어도 하나를 갱신할 수 있다. 구체적으로, 음성 인식 데이터 갱신부(923)는 새로운 단어의 발음열에 관한 정보를 이용하여 기타 모델(932) 중 음향 모델 및 발음 사전(933)을 갱신할 수 있다. 또한, 음성 인식 데이터 갱신부(923)는 새로운 단어의 발음열이 소정 단위로 분할된 소정 단위에 관한 정보 및 새로운 단어의 각 소정 단위에 대한 출현 확률 정보를 이용하여 제1 문법 모델(935)을 갱신할 수 있다.
음성 인식 데이터 갱신부(923)에 의해 갱신된 제1 문법 모델(935)에 포함된 새로운 단어에 대한 출현 확률 정보는, 제2 문법 모델(936)에 포함된 출현 확률 정보와는 달리, 소정 단위로 분할되지 않은 새로운 단어에 대한 출현 확률 정보를 포함할 수 있다.
예를 들면, 새로운 단어 정보(922)가 '김연아'에 대한 정보를 포함하고 있는 경우, 음성 인식 데이터 갱신부(923)는 '김연아'와 대응되는 발음열인 '기며나'를 이용하여 음향 모델 및 발음사전(933)을 갱신할 수 있다. 음향 모델에는 '기며나'와 대응되는 음성 신호의 특징 정보가 포함될 수 있으며, 발음사전(933)에는 '김연아'와 대응되는 발음열 정보로 '기며나'가 포함될 수 있다. 또한, 음성 인식 데이터 갱신부(923)는 '김연아'에 대한 출현 확률 정보를 이용하여 제1 문법 모델(935)에 포함된 출현 확률 정보들을 재결정함으로써 제1 문법 모델(935)을 갱신할 수 있다.
제1 문법 모델(935)에 포함된 출현 확률 정보들은 상당수의 문장 정보로부터 획득된 것으로 상당히 많은 개수의 확률 정보를 포함하고 있다. 따라서, 제1 문법 모델(935)을 갱신하는 것은 새로운 단어 정보에 따라 제1 문법 모델(935)에 포함된 출현 확률 정보들을 재결정해야 하므로 제2 문법 모델(936)을 갱신하는 것보다 훨씬 오랜 시간이 소요될 수 있다. 음성 인식 데이터 갱신 디바이스(920)는 제2 문법 모델(936)의 갱신은 실시간으로 언어 데이터를 수집함으로써 수행하되, 제1 문법 모델(935)의 갱신은 주기적으로(예를 들면, 1주일 또는 1달 주기로) 오랜 시간 동안 수행될 수 있다.
음성 인식 디바이스(930)가 제2 문법 모델(936)을 이용하여 음성 인식을 수행하는 경우, 음성 인식된 언어를 최종 선택한 후에 분절 정보를 이용하여 소정 단위와 대응되는 문자열을 복원하는 과정을 더 수행하여야 한다. 소정 단위별 출현 확률 정보가 이용됨에 따라, 최종 선택된 음성 인식된 언어는 새로운 단어가 소정 단위별로 분할된 발음열을 포함하기 때문이다. 또한, 제2 문법 모델(936)에 포함된 출현 확률 정보는 상당한 수의 문장 정보에 기초하여 획득된 것이 아닌 새로운 단어가 포함된 문장 또는 제2 문법 모델(936)에 포함된 제한된 수의 확률 정보들을 이용하여 획득된 것이다. 그러므로, 제2 문법 모델(936)에 포함된 출현 확률 정보보다 제1 문법 모델(934)의 출현 확률 정보가 더 정확할 수 있다.
다시 말하면, 음성 인식 디바이스(930)가 제1 문법 모델(935)을 이용하여 음성 인식을 수행하는 것이 제2 문법 모델(936)을 이용하는 것보다 성능 및 안정성에서 더 효과적일 수 있다. 따라서, 일 실시 예에 의한, 음성 인식 데이터 갱신부(923)는 주기적으로 제1 문법 모델(935) 및 발음 사전(933), 음향 모델 등을 갱신할 수 있다.
도 10은 일 실시 예에 의한 새로운 단어를 인식하기 위한 언어 데이터를 갱신하는 방법을 나타낸 순서도이다.
도 3에 도시된 방법과는 달리 도 10에 도시된 방법은 상황 정보에 기초하여 적어도 하나의 제2 문법 모델 중 하나를 결정하고, 결정된 제2 문법 모델을 갱신하는 단계를 더 포함할 수 있다. 또한, 도 10에 도시된 방법은 제2 문법 모델을 갱신할 때 이용된 새로운 단어에 관한 정보에 기초하여 제1 문법 모델을 갱신하는 단계를 더 포함할 수 있다.
도 10을 참조하면, 단계 S1001에서, 음성 인식 데이터 갱신 디바이스(420)는 단어를 포함하는 언어 데이터를 획득할 수 있다. 단계 S1001은 도 3의 단계 S301과 대응될 수 있다. 언어 데이터는 사용자가 사용 중인 디바이스의 화면에 표시되어 있는 컨텐츠, 웹 페이지 또는 모듈 등에 포함된 텍스트를 포함할 수 있다.
단계 S1003에서, 음성 인식 데이터 갱신 디바이스(420)는 제1 문법 모델 및 제2 문법 모델에 존재하지 않는 단어를 검출할 수 있다. 다시 말하면, 음성 인식 데이터 갱신 디바이스(420)는 언어 데이터에 포함된 적어도 하나의 단어 중에서 제1 문법 모델 및 제2 문법 모델에 출현 확률 정보가 존재하지 않는 단어를 검출할 수 있다. 도 10의 단계 S1003은 도 3의 단계 S303과 대응될 수 있다.
제2 문법 모델에는 단어가 소정 단위로 분할된 각 구성 요소에 대한 출현 확률 정보를 포함하고 있으므로, 일 실시 예에 의한 제2 문법 모델에는 단어 자체에 대한 출현 확률 정보를 포함하고 있지 않다. 음성 인식 데이터 갱신 디바이스(420)는 단어와 소정 단위로 분할된 각 구성 요소와의 대응 관계에 대한 정보를 포함하는 분절 정보를 이용하여 제2 문법 모델에 출현 확률 정보가 존재하지 않는 단어를 검출할 수 있다.
단계 S1005에서, 음성 인식 데이터 갱신 디바이스(420)는 단계 S1003에서 검출된 단어와 대응되는 적어도 하나의 발음열을 획득할 수 있다. 단어와 대응되는 발음열은 발음 규칙 또는 화자의 특성 등 다양한 조건에 따라서 복수 개가 존재할 수 있다. 단계 S1005는 도 3의 단계 S305와 대응될 수 있다.
단계 S1007에서, 음성 인식 데이터 갱신 디바이스(420)는 단계 S1005에서 획득된 적어도 하나의 발음열 각각을 소정 단위로 분할하여 적어도 하나의 발음열 각각을 구성하는 구성 요소를 획득할 수 있다. 예를 들면, 음성 인식 데이터 갱신 디바이스(420)는 도 2 또는 도 4의 분절 모델(234, 434)에 포함된 음절(subword) 정보를 참조하여, 각각의 발음열을 음절 단위로 분할할 수 있다. 단계 S1007은 도 3의 단계 S307과 대응될 수 있다.
단계 S1009에서, 음성 인식 데이터 갱신 디바이스(420)는 단계 S1003에서 검출된 단어와 대응되는 상황 정보를 획득할 수 있다. 상황 정보는 검출된 새로운 단어에 관한 상황 정보를 포함할 수 있다.
일 실시 예에 의한 상황 정보는 사용자 정보, 모듈 식별 정보, 디바이스의 위치 정보, 새로운 단어가 획득된 위치에 관한 정보 중 적어도 하나를 포함할 수 있다. 예를 들어, 새로운 단어가 특정 모듈 또는 모듈이 실행 중일 때 획득된 것인 경우, 상황 정보는 특정 모듈 또는 모듈에 관한 정보를 포함할 수 있다. 새로운 단어가 특정 화자가 음성 인식 데이터 갱신 디바이스(420)를 사용하는 중에 획득된 것이거나, 새로운 단어가 특정 화자와 관련된 것인 경우, 새로운 단어의 상황 정보는 특정 화자에 관련된 정보를 포함할 수 있다.
단계 S1011에서, 음성 인식 데이터 갱신 디바이스(420)는 단계 S1009에서 획득된 상황 정보에 기초하여 제2 문법 모델을 결정할 수 있다. 음성 인식 데이터 갱신 디바이스(420)는 결정된 제2 문법 모델에 새로운 단어의 구성 요소의 출현 확률 정보를 추가함으로써 제2 문법 모델을 갱신할 수 있다.
일 실시 예에 있어서, 음성 인식 디바이스(430)에는 복수 개의 개별적인 제2 문법 모델이 존재할 수 있다. 구체적으로 제2 문법 모델은, 상황 정보에 따라 선택적으로 적용될 수 있는, 특정 모듈 또는 모듈 또는 화자 별로 존재하는 복수 개의 개별적인 문법 모델을 포함할 수 있다. 단계 S1011에서, 음성 인식 데이터 갱신 디바이스(420)는 복수 개의 개별적인 문법 모델들 중에서 상황 정보와 대응되는 제2 문법 모델을 결정할 수 있다. 음성 인식 디바이스(430)는 음성 인식 시 상황 정보를 수집하고, 상황 정보와 대응되는 제2 문법 모델을 이용하여 음성 인식을 수행할 수 있다. 따라서, 일 실시 예에 의한 음성 인식 방법에 의하면, 상황 정보를 고려한 적응적인 음성 인식이 가능하므로, 음성 인식의 성능이 향상될 수 있다.
단계 S1013에서, 음성 인식 데이터 갱신 디바이스(420)는 단계 S1007에서 획득된 각 구성 요소의 음성 인식 시 출현 확률에 관한 정보를 결정할 수 있다. 예를 들면, 음성 인식 데이터 갱신 디바이스(420)는 언어 데이터에 포함된 단어의 구성 요소들이 속한 문장 또는 문단을 이용하여, 음절 단위 별로 출현 확률 정보를 결정할 수 있다. 단계 S1013은 도 3의 단계 S309와 대응될 수 있다.
단계 S1015에서, 음성 인식 데이터 갱신 디바이스(420)는 단계 S1013에서 결정된 출현 확률 정보를 이용하여 제2 문법 모델을 갱신할 수 있다. 음성 인식 데이터 갱신 디바이스(420)는 새로운 단어의 구성 요소의 출현 확률 정보를 문법 모델에 단순히 추가할 수 있다. 또는, 음성 인식 데이터 갱신 디바이스(420)는 새로운 단어의 구성 요소의 출현 확률 정보를 단계 S1011에서 결정된 문법 모델에 추가하고, 단계 S1011에서 결정된 문법 모델에 포함된 출현 확률 정보를 재결정함으로써 제2 문법 모델을 갱신할 수 있다. 단계 S1015는 도 3의 단계 S311과 대응될 수 있다.
단계 S1017에서, 음성 인식 데이터 갱신 디바이스(420)는 단계 S1003에서 검출된 단어를 제1 문법 모델에 추가하기 위한 새로운 단어 정보를 생성할 수 있다. 구체적으로, 새로운 단어 정보는 제2 문법 모델을 갱신하는데 이용된 새로운 단어의 분할된 구성 요소 정보, 발음열에 관한 정보, 상황 정보, 각 구성 요소의 확률 정보 중 적어도 하나를 포함할 수 있다. 새로운 단어 정보는 제2 문법 모델 갱신이 반복적으로 수행되는 경우, 복수 개의 새로운 단어에 관한 정보를 포함할 수 있다.
단계 S1019에서, 음성 인식 데이터 갱신 디바이스(420)는 기타 모델, 발음 사전 및 제1 문법 모델 중 적어도 하나를 포함하는 전체 모델을 업데이트할 지 여부를 판단할 수 있다. 그리고, 단계 S1019에서 음성 인식 데이터 갱신 디바이스(420)는 단계 S1017에서 생성된 새로운 단어 정보를 이용하여 기타 모델, 발음 사전 및 제1 문법 모델 중 적어도 하나를 갱신할 수 있다. 기타 모델은 음성 신호와 대응되는 발음열을 획득할 수 있는 정보를 포함하는 음향 모델을 포함할 수 있다. 기타 모델, 발음 사전 및 제1 문법 모델 중 적어도 하나를 포함하는 전체 모델을 갱신하는 것은 각 모델에 포함된 데이터들을 새로운 단어에 대한 정보에 기초하여 재결정하는 과정이 필요하다는 점에서 상당한 시간이 소요될 수 있다. 따라서, 음성 인식 데이터 갱신 디바이스(420)는 유휴 시간대나 1주일 또는 1달 간격으로 전체 모델 업데이트를 수행할 수 있다.
일 실시 예에 의한 음성 인식 데이터 갱신 디바이스(420)는, 실시간으로 새로운 단어로 검출된 단어를 음성 인식할 수 있도록 제2 문법 모델을 갱신할 수 있다. 제2 문법 모델을 갱신하는 것은 제2 문법 모델에 포함된 확률 값의 수가 어 제1 문법 모델의 갱신하는 것보다 더 신속하게 수행될 수 있으므로, 실시간으로 음성 인식 데이터를 갱신하는 것이 가능하다.
다만, 제2 문법 모델을 이용하여 음성 인식을 수행하는 것은 제1 문법 모델을 이용하는 것보다 성능 및 인식 결과의 안정성에서 좋지 않다. 따라서, 일 실시 예에 의한 음성 인식 데이터 갱신 디바이스(420)는 주기적으로 제1 문법 모델을 제2 문법 모델에 포함된 확률 정보를 이용하여 갱신함으로써, 새로운 단어가 제1 문법 모델을 이용하여 인식되게 할 수 있다.
이하에서, 일 실시 예에 따라 갱신된 음성 인식 데이터에 기초하여 음성 인식을 수행하는 방법을 더 자세히 설명하기로 한다.
도 11은 일 실시 예에 의한 음성 인식을 수행하는 음성 인식 디바이스를 나타낸 블록도이다.
도 11을 참조하면, 일 실시 예에 의한 음성 인식 디바이스(1130)는 음성 인식기(1131), 기타 모델(1132), 발음사전(1133), 문법 모델 조합부(1135), 제1 문법 모델(1136), 제2 문법 모델(1137) 및 텍스트 복원부(1138)를 포함할 수 있다. 도 11의 음성 인식 디바이스(1130)는 도 1, 2, 4, 9의 음성 인식 디바이스(100, 230, 430, 930)와 대응될 수 있으며, 중복되는 기재는 생략하기로 한다.
또한, 도 11의 음성 인식기(1131), 기타 모델(1132), 발음사전(1133), 문법 모델 조합부(1135), 제1 문법 모델(1136) 및 제2 문법 모델(1137)은 도 1, 2, 4, 9의 음성 인식기(100, 231, 431, 931), 기타 모델(232, 432, 932), 발음사전(150, 233, 433, 933), 문법 모델 조합부(435, 935), 제1 문법 모델(436, 936) 및 제2 문법 모델(437, 937)과 대응될 수 있으며, 중복되는 기재는 생략하기로 한다.
도 11에 도시된 음성 인식 디바이스(1130)는 도 1, 2, 4, 9에 도시된 음성 인식 디바이스(100, 230, 430, 930)와는 달리 텍스트 복원부(1138)를 더 포함하여, 음성 인식 시 텍스트 복원 단계를 더 수행할 수 있다.
음성 인식기(1131)는 음성 인식을 수행하고자 하는 음성 데이터(1110)를 획득할 수 있다. 음성 인식기(1131)는 기타 모델(1132), 발음사전(1133) 및 문법 모델 조합부(1135)를 이용하여 음성 데이터(1110)를 이용하여 음성 인식을 수행할 수 있다. 구체적으로, 음성 인식기(1131)는 음성 데이터 신호의 특징 정보를 추출하고, 추출된 특징 정보와 대응되는 후보 발음열을 음향 모델을 이용하여 획득할 수 있다. 그리고, 음성 인식기(1131)는 각 발음열과 대응되는 단어를 발음사전(1133)으로부터 획득할 수 있다. 음성 인식기(1131)는 문법 모델 조합부(1135)로부터 획득된 각 단어의 출현 확률 값에 기초하여, 출현 확률이 가장 높은 단어를 최종 선택함으로써 음성 인식된 언어를 출력할 수 있다.
텍스트 복원부(1138)는 음성 인식시 단어를 구성하는 구성 요소별로 확률 정보가 사용된 부분이 존재하는지 여부에 따라 텍스트 복원을 수행할 지 여부를 결정할 수 있다. 일 실시 예에 있어서, 텍스트를 복원하는 것은 음성 인식기(1131)에 의해 음성 인식된 언어에 포함된 소정 단위의 문자들을 대응되는 단어로 변환하는 것을 의미한다.
예를 들면, 텍스트 복원을 수행할지 여부는 음성 인식기(1131)에서 생성된, 음성 인식 시 음절 단위로 확률 정보를 사용하였음을 나타내는 정보에 따라 결정될 수 있다. 또다른 예로, 텍스트 복원부(1138)는 분절 정보(1126) 또는 발음 사전(1133)을 참조하여 음성 인식된 언어에서 음절 단위로 분할된 부분을 검출함으로써 텍스트 복원 여부를 결정할 수 있다. 위 예시에 한하지 않고, 텍스트 복원부(1138)는 다양한 방법으로 음성 인식된 언어에 대한 텍스트 복원 여부 및 텍스트 복원하고자 하는 부분을 결정할 수 있다.
텍스트 복원을 수행하는 경우, 텍스트 복원부(1138)는 분절 정보(1126)를 참조하여, 음절 단위의 문자들을 복원할 수 있다. 예를 들어, 음성 인식기(1131)에 의해 음성 인식된 문장이, '오늘 기 며 나 보 여 줘'인 경우, 텍스트 복원부(1138)는 위 문장이 음성 인식되는데 음절 단위로 확률 정보가 이용되었는지 여부를 결정할 수 있다. 또한, 텍스트 복원부(1138)는 음성 인식된 문장에서 음절 단위로 확률 정보가 이용된 부분, 즉, 텍스트 복원을 수행하고자 하는 부분을 결정할 수 있다. 텍스트 복원부(1138)는 '기', '며', '나', '보', '여', '줘'를 음절 단위로 확률 정보가 이용된 부분으로 결정할 수 있다. 그리고, 텍스트 복원부(1138)는 분절 정보(1126)에 저장된 음절과 단어 간의 대응 관계를 참조하여, '기 며 나'는 '김연아'로, '보 여 줘'는 '보여줘'로 변환함으로써 텍스트 복원을 수행할 수 있다. 텍스트 복원부(1138)는 복원된 텍스트를 포함하는 음성 인식된 언어(1140)를 최종적으로 출력할 수 있다.
도 12는 일 실시 예에 의한 음성 인식을 수행하는 방법을 나타낸 순서도이다.
도 12를 참조하면, 단계 S1210에서, 음성 인식 디바이스(100)는 음성 인식을 수행하고자 하는 음성 데이터를 획득할 수 있다.
단계 S1220에서, 음성 인식 디바이스(100)는 음성 데이터에 포함된 적어도 하나의 발음열을 획득할 수 있다. 구체적으로, 음성 인식 디바이스(100)는 음성 데이터의 특징 정보를 검출하고, 음향 모델을 이용하여 특징 정보로부터 발음열을 획득할 수 있다. 특징 정보로부터 획득될 수 있는 발음열은 적어도 하나 이상이 존재할 수 있다. 동일한 음성 데이터에 대하여 음향 모델에 따라 복수 개의 발음열이 획득된 경우, 음성 인식 디바이스(100)는 복수 개의 발음열과 대응되는 단어의 출현 확률 정보를 구함으로써 음성 인식된 단어를 최종 결정할 수 있다.
단계 S1230에서, 음성 인식 디바이스(100)는 적어도 하나의 발음열을 구성하는 소정 단위의 구성 요소의 출현할 확률에 관한 정보를 획득할 수 있다. 자세히 설명하면, 음성 인식 디바이스(100)는 문법 모델에 포함된 소정 단위의 구성 요소의 출현할 확률에 관한 정보를 획득할 수 있다.
음성 인식 디바이스(100)는 발음열을 구성하는 소정 단위의 구성 요소의 출현 확률 정보를 문법 모델로부터 획득할 수 없는 경우, 해당 발음열과 대응되는 단어에 대한 정보를 획득할 수 없다. 따라서, 음성 인식 디바이스(100)는 해당 발음열이 음성 인식 가능하지 않은 것으로 처리하고, 단계 S1220에서 획득한 동일한 음성 데이터에 대한 다른 발음열에 대하여 음성 인식을 수행할 수 있다. 다른 발음열도 마찬가지로 음성 인식을 수행할 수 없는 경우, 음성 인식 디바이스(100)는 음성 데이터에 대해 음성 인식이 가능하지 않은 것으로 처리할 수 있다.
단계 S1240에서, 음성 인식 디바이스(100)는 발음열을 구성하는 소정 단위의 구성 요소의 출현할 확률에 관한 정보에 기초하여 적어도 하나의 발음열 중 하나를 결정할 수 있다. 예를 들면, 음성 인식 디바이스(100)는 각 후보 발음열을 구성하는 음절 단위의 구성 요소와 대응되는 출현 확률 정보에 기초하여, 적어도 하나의 후보 발음열 중에서 확률 값이 가장 높은 발음열을 결정할 수 있다.
단계 S1250에서, 음성 인식 디바이스(100)는 적어도 하나의 소정 단위의 구성 요소와 대응되는 단어에 관한 정보를 포함하는 분절 정보에 기초하여, 단계 S1240에서 결정된 발음열과 대응되는 단어를 획득할 수 있다. 일 실시 예에 의한 분절 정보는 단어와 대응되는 소정 단위의 구성 요소들에 관한 정보를 포함할 수 있다. 따라서, 음성 인식 디바이스(100)는 분절 정보에 기초하여, 발음열을 구성하는 음절 단위의 구성 요소들을 대응되는 단어로 변환할 수 있다. 음성 인식 디바이스(100)는 분절 정보에 기초하여 변환된 단어를 음성 인식된 결과로 출력할 수 있다.
도 13은 일 실시 예에 의한 음성 인식을 수행하는 방법을 나타낸 순서도이다. 도 12에 도시된 방법과는 달리 도 13에 도시된 음성 인식을 수행하는 방법은, 음성 데이터에 대한 상황 정보에 기초하여 음성 인식을 수행할 수 있다. 도 13에 도시된 방법 중 일부 단계는 도 12에 도시된 방법 중 일부 단계와 대응될 수 있으며, 중복되는 내용은 생략하기로 한다.
도 13을 참조하면, 단계 S1301에서, 음성 인식 디바이스(430)는 음성 인식 디바이스(100)는 음성 인식을 수행하고자 하는 음성 데이터를 획득할 수 있다. 단계 S1301은 도 12의 단계 S1210과 대응될 수 있다.
단계 S1303에서, 음성 인식 디바이스(430)는 음성 데이터와 대응되는 적어도 하나의 발음열을 획득할 수 있다. 구체적으로, 음성 인식 디바이스(430)는 음성 데이터의 특징 정보를 구하고, 음향 모델을 이용하여 특징 정보와 대응되는 발음열을 획득할 수 있다. 복수 개의 발음열을 획득한 경우, 음성 인식 디바이스(430)는 각 발음열과 대응되는 음절 또는 단어의 출현 확률 정보에 기초하여 하나의 음절 또는 단어를 최종 결정함으로써 음성 인식을 수행할 수 있다.
단계 S1305에서, 음성 인식 디바이스(430)는 음성 데이터에 대한 상황 정보를 획득할 수 있다. 음성 인식 디바이스(430)는 음성 데이터에 대한 상황 정보에 따라 음성 인식시 적용될 문법 모델을 선택함으로써 음성 데이터에 대한 상황 정보를 고려하여 음성 인식을 수행할 수 있다.
일 실시 예에 있어서, 음성 데이터에 대한 상황 정보는 사용자 정보, 모듈 식별 정보, 디바이스의 위치 정보 중 적어도 하나를 포함할 수 있다. 음성 인식시 선택될 수 있는 문법 모델은 단어 또는 음절에 대한 확률 정보를 포함할 수 있으며, 적어도 하나의 상황 정보와 대응될 수 있다.
단계 S1307에서, 음성 인식 디바이스(430)는 단계 S1303에서 획득된 각 발음열과 대응되는 단어에 대한 정보가 발음 사전에 존재하는지 여부를 판단할 수 있다. 발음 사전에 대응되는 단어에 관한 정보가 존재하는 발음열의 경우, 음성 인식 디바이스(430)는 발음열과 대응되는 단어에 기초하여 음성 인식을 수행할 수 있다. 발음 사전에 대응되는 단어에 관한 정보가 존재하지 않는 발음열의 경우, 음성 인식 디바이스(430)는 발음열을 구성하는 음절 단위의 구성 요소에 기초하여 음성 인식을 수행할 수 있다. 발음 사전에 존재하지 않는 단어는, 음성 인식 가능하지 않은 단어이거나, 일 실시 예에 따라 음성 인식 데이터 갱신 시 문법 모델에 추가된 새로운 단어일 수 있다.
발음 사전에 존재하는 발음열의 경우, 음성 인식 디바이스(100)는 발음 사전을 이용하여 발음열과 대응되는 단어를 획득하고, 단어에 대한 출현 확률 정보에 기초하여, 음성 인식된 단어를 최종 결정할 수 있다.
음성 인식 디바이스(100)는 발음 사전에 존재하는 발음열의 경우에도, 발음 사전에 존재하지 않는 단어와 같이 발음열을 소정 단위로 분할하고, 분할된 구성 요소의 출현 확률 정보를 결정할 수 있다. 즉, 발음 사전에 존재하는 발음열에 대하여 단계 S1307 내지 단계 S1311과 단계 S1317 내지 단계 S1319가 모두 수행될 수 있다. 음성 인식 디바이스(100)는 발음열에 대해 복수 개의 확률 정보를 획득한 경우, 후술될 복수 개의 문법 모델로부터 획득된 확률값을 조합하는 방법에 따라, 발음열에 대한 출현 확률 값을 구할 수 있다.
발음 사전에 대응되는 단어에 관한 정보가 존재하는 발음열에 대해 음성 인식을 수행하는 방법은 단계 S1317 내지 단계 S1321에 대한 설명에서 더 자세히 설명하기로 한다. 또한, 발음 사전에 대응되는 단어에 관한 정보가 존재하지 않는 발음열에 대해 음성 인식을 수행하는 방법은 단계 S1309 내지 단계 S1315에 대한 설명에서 더 자세히 설명하기로 한다.
발음 사전에 대응되는 단어에 관한 정보가 존재하는 발음열의 경우, 음성 인식 디바이스(430)는 단계 S1317에서, 각 발음열과 대응되는 단어를 발음 사전으로부터 획득할 수 있다. 발음 사전은 단어와 대응될 수 있는 적어도 하나의 발음열에 관한 정보를 포함할 수 있다. 하나의 단어와 대응될 수 있는 발음열은 복수 개가 존재할 수 있다. 반대로, 하나의 발음열과 대응될 수 있는 단어도 복수 개가 존재할 수 있다. 단어와 대응될 수 있는 발음열에 관한 정보는 일반적으로 발음 규칙에 따라 결정될 수 있으나 이에 한하지 않고, 사용자 입력 또는 다수의 음성 데이터를 학습한 결과에 따라 결정될 수도 있다.
단계 S1319에서, 음성 인식 디바이스(430)는 제1 문법 모델로부터 단계 S1317에서 획득된 단어에 대한 출현 확률 정보를 획득할 수 있다. 제1 문법 모델은 일반적인 음성 인식에서 사용될 수 있는 범용적인 문법 모델을 포함할 수 있다. 또한, 제1 문법 모델은 발음 사전에 포함된 단어에 대한 출현 확률 정보를 포함할 수 있다.
제1 문법 모델이 상황 정보와 대응되는 적어도 하나의 문법 모델을 포함하는 경우, 음성 인식 디바이스(430)는 단계 S1305에서 획득된 상황 정보에 따라 제1 문법 모델에 포함된 적어도 하나의 문법 모델을 결정할 수 있다. 그리고, 음성 인식 디바이스(430)는 결정된 문법 모델로부터 단계 S1317에서 획득된 단어에 대한 출현 확률 정보를 획득할 수 있다. 따라서, 음성 인식 디바이스(430)는 제1 문법 모델을 적용하는 경우에도, 상황 정보에 대응되는 문법 모델을 선택함으로써 상황 정보에 따라 적응적인 음성 인식을 수행할 수 있다.
복수 개의 문법 모델이 결정되어, 하나의 단어에 대한 출현 확률 정보가 두 개 이상의 결정된 문법 모델에 포함되어 있는 경우, 음성 인식 디바이스(430)는 문법 모델 조합을 통해 하나의 단어에 대한 출현 확률 정보를 구할 수 있다. 구체적인 설명은 이하 단계 S1313에 관한 설명에서 더 자세히 설명하기로 한다.
단계 S1321에서, 음성 인식 디바이스(430)는 단계 S1319에서 획득된 출현 확률 정보에 기초하여 음성 인식된 단어를 최종 결정할 수 있다. 동일한 음성 데이터와 대응될 수 있는 단어가 복수 개 존재하는 경우, 음성 인식 디바이스(430)는 각 단어의 출현 확률 정보에 기초하여 음성 인식된 단어를 최종 결정하여 출력할 수 있다.
발음 사전에 대응되는 단어에 관한 정보가 존재하지 않는 발음열의 경우, 단계 S1309에서, 음성 인식 디바이스(430)는 단계 S1305에서 획득된 상황 정보에 기초하여 제2 문법 모델 중 적어도 하나를 결정할 수 있다. 음성 인식 디바이스(430)는 상황 정보에 따라 음성 인식 시 적용될 수 있는 적어도 하나의 개별적인 제2 문법 모델을 포함할 수 있다. 음성 인식 디바이스(430)는 상황 정보에 따라 복수 개의 문법 모델을 결정할 수 있다. 또한, 단계 S1309에서 결정될 수 있는 제2 문법 모델은 각 발음열을 구성하는 소정 단위의 구성 요소에 대한 출현 확률 정보를 포함할 수 있다.
단계 S1311에서, 음성 인식 디바이스(430)는 단계 S1309에서 결정된 제2 문법 모델에, 발음열을 구성하는 소정 단위의 구성 요소에 대한 확률 정보가 포함되어 있는지 여부를 판단할 수 있다. 구성 요소에 대한 확률 정보가 제2 문법 모델에 존재하지 않는 경우, 발음열에 대한 출현 확률 정보를 구할 수 없으므로 음성 인식이 더 이상 진행될 수 없다. 동일한 음성 데이터에 대하여 복수 개의 발음열이 존재하는 경우, 음성 인식 디바이스(430)는 구성 요소에 대한 확률 정보를 구할 수 없는 발음열을 제외한 다른 발음열에 대하여 단계 1307에서 발음 사전에 대응되는 단어가 존재하는지 여부를 다시 판단할 수 있다.
단계 S1313에서, 음성 인식 디바이스(430)는 단계 S1309에서 결정된 제2 문법 모델에 포함된 소정 단위의 구성 요소의 출현 확률에 관한 정보에 기초하여, 적어도 하나의 발음열 중 하나를 결정할 수 있다. 구체적으로, 음성 인식 디바이스(430)는 각 발음열을 구성하는 소정 단위의 구성 요소의 출현 확률에 관한 정보를 제2 문법 모델로부터 획득할 수 있다. 그리고, 음성 인식 디바이스(430)는 소정 단위의 구성 요소의 출현 확률에 관한 정보에 기초하여 가장 높은 확률 값을 갖는 발음열을 결정할 수 있다.
단계 S1309 또는 단계 S1319에서 복수 개의 문법 모델이 선택되었을 때, 소정 단위의 구성 요소 또는 단어의 출현할 확률에 관한 정보가 두 개 이상의 문법 모델에 포함될 수 있다. 선택될 수 있는 복수 개의 문법 모델은 제1 문법 모델 및 제2 문법 모델 중 적어도 하나를 포함할 수 있다.
예를 들면, 음성 인식 데이터가 갱신될 때, 상황 정보에 따라 두 개 이상의 문법 모델로 새로운 단어가 추가된 경우 두 개 이상의 문법 모델에 동일 단어 또는 음절의 출현 확률 정보가 포함될 수 있다. 또 다른 예로, 음성 인식 데이터가 갱신될 때, 주기적인 업데이트를 통해 제2 문법 모델에만 존재하던 단어가 제1 문법 모델에 추가된 경우 제1 문법 모델 및 제2 문법 모델에 동일 단어 또는 음절의 출현 확률 정보가 포함될 수 있다. 음성 인식 디바이스(430)는 문법 모델 조합을 통해 소정 단위의 구성 요소 또는 단어의 출현 확률 값을 구할 수 있다.
음성 인식 디바이스(430)의 문법 모델 조합부(435)는 복수 개의 문법 모델이 선택됨으로써 하나의 단어 또는 구성 요소에 대한 출현 확률 정보가 복수 개 존재하는 경우에 하나의 출현 확률 값을 구할 수 있다.
예를 들면, 수학식 1과 같이, 문법 모델 조합부(435)는 각 출현 확률 값에 대한 가중치 합을 구함으로써 하나의 출현 확률 값을 구할 수 있다.
Figure pct00001
수학식 1에서, P(a|b)는 b가 이전 출현하는 것을 조건으로 하는 a의 출현 확률 정보를 의미한다. P1과 P2는 제1 문법 모델 및 제2 문법 모델에 포함된 a의 출현 확률 정보를 의미하고, ω1 과 ω2 는 각각 P1과 P2에 적용될 수 있는 가중치를 의미한다. a의 출현 확률 정보를 포함하는 문법 모델의 수에 따라 수학식 1의 우측 구성 요소가 증가할 수 있다.
각 확률 값에 적용될 수 있는 가중치는 상황 정보 또는 다른 다양한 조건에 따라서 결정될 수 있으며, 예를 들면, 사용자 정보, 지역, 명령 이력, 실행 중인 모듈에 따라 결정될 수 있다.
수학식 1에 따르면, 출현 확률 정보가 다수의 문법 모델에 포함될수록 출현 확률 값은 더 큰 값으로 결정될 수 있다. 반대로, 출현 확률 정보가 소수의 문법 모델에 포함될수록 출현 확률 값은 더 작은 값으로 결정될 수 있다. 따라서, 수학식 1에 따라 출현 확률 값을 결정하는 경우, 바람직한 확률값이 결정되지 않을 수 있다.
문법 모델 조합부(435)는 베이지안 보간(Bayesian interpolation) 방법에 의한 수학식 2를 이용하여 단어 또는 음절의 출현 확률 값을 구할 수 있다. 수학식 2에 따라 출현 확률 값을 결정하는 경우, 수학식 1과 같이 출현 확률 정보가 속한 문법 모델의 수에 따라 더 작거나 더 큰 값으로 결정되지 않을 수 있다. 제1 문법 모델 또는 제2 문법 모델에만 속하는 출현 확률 값의 경우, 수학식 2에 따라 출현 확률 값이 더 작아지지 않고 원래 확률 값을 유지할 수 있다.
Figure pct00002
더하여, 문법 모델 조합부(435)는 수학식 3의 수식에 따라 출현 확률 값을 구할 수도 있다. 수학식 3에 의하면, 출현 확률 값은 각 문법 모델에 속한 값 중 가장 큰 값으로 결정될 수 있다.
Figure pct00003
수학식 3에 의해 출현 확률 값을 결정하는 경우, 더 큰 값을 가지는 확률 값으로 결정될 수 있으므로, 각 문법 모델에 한번 이상 포함되는 단어 또는 음절의 확률 값은 상대적으로 큰 값으로 결정될 수 있다. 따라서, 수학식 3에 따르면, 일 실시 예에 따른 새로운 단어로 문법 모델에 추가된 단어의 확률 값이 적게 왜곡될 수 있다.
단계 S1315에서, 음성 인식 디바이스(430)는 분절 정보에 기초하여, 단계 S1313에서 결정된 발음열과 대응되는 단어를 획득할 수 있다. 분절 정보는 발음열을 구성하는 적어도 하나의 소정 단위의 구성 요소와 단어와의 대응 관계에 관한 정보를 포함할 수 있다. 각 단어에 대한 분절 정보는 일 실시 예에 의한 음성 인식 데이터를 갱신하는 방법에 따라서 새로운 단어가 검출되는 경우, 새로운 단어에 관한 정보로써 생성될 수 있다. 확률 정보에 따라 음성 인식의 결과로 발음열이 결정되는 경우, 음성 인식 디바이스(430)는 분절 정보에 기초하여 발음열을 단어로 변환함으로써 음성 인식 결과가 단어로 출력될 수 있다.
도 14는 일 실시 예에 의한 상황 정보에 따라 수행된 음성 인식 결과에 기초하여, 모듈을 실행시키는 음성 인식 시스템을 나타낸 블록도이다.
도 14를 참조하면, 음성 인식 시스템(1400)은 음성 인식 데이터 갱신 디바이스(1420), 음성 인식 디바이스(1430) 및 사용자 디바이스(1450)를 포함할 수 있다. 음성 인식 데이터 갱신 디바이스(1420), 음성 인식 디바이스(1430) 및 사용자 디바이스(1450)는 도시된 바와 같이 각각 별개의 장치로 존재할 수 있으나, 이에 한하지 않고, 하나의 장치 내에 장치의 구성 요소로서 포함될 수 있다. 도 14의 음성 인식 데이터 갱신 디바이스(1420) 및 음성 인식 디바이스(1430)는 도 1 내지 도 13에서 상술된 음성 인식 데이터 갱신 디바이스(220,420 등) 및 음성 인식 디바이스(230,430 등)와 대응될 수 있으며, 중복되는 내용은 생략하기로 한다.
첫째로, 도 14에 도시된 음성 인식 시스템(1400)에 의해 상황 정보를 고려하여 음성 인식 데이터를 갱신하는 방법에 관해 설명하기로 한다.
음성 인식 데이터 갱신 디바이스(1420)는 음성 인식 데이터를 갱신하기 위한 언어 데이터(1410)를 획득할 수 있다. 언어 데이터(1410)는 다양한 장치에서 획득되어, 음성 인식 데이터 갱신 디바이스(1420)로 전송될 수 있다. 예를 들어, 언어 데이터(1410)는 사용자 디바이스(1450)에 의해 획득되어 음성 인식 데이터 갱신 디바이스(1420)로 전송될 수 있다.
더하여, 사용자 디바이스(1450)의 상황 정보 관리부(1451)는 언어 데이터(1410)와 대응되는 상황 정보를 획득하고, 획득된 상황 정보를 음성 인식 데이터 갱신 디바이스(1420)로 전송할 수 있다. 음성 인식 데이터 갱신 디바이스(1420)는 상황 정보 관리부(1451)로부터 수신한 상황 정보에 기초하여 언어 데이터(1410)에 포함된 새로운 단어를 추가할 문법 모델을 결정할 수 있다. 상황 정보와 대응되는 문법 모델이 존재하지 않는 경우, 음성 인식 데이터 갱신 디바이스(1420)는 새로운 문법 모델을 생성하고, 새로운 단어에 대한 출현 확률 정보를 새로 생성된 문법 모델에 추가할 수 있다.
음성 인식 데이터 갱신 디바이스(1420)는 언어 데이터(1410)에 포함된 새로운 단어인 'Let it go', '봄봄봄'을 검출할 수 있다. 언어 데이터(1410)와 대응되는 상황 정보는 음악 재생을 위한 어플리케이션 A를 포함할 수 있다. 상황 정보는 언어 데이터(1410) 별로 결정될 수 있으나, 언어 데이터(1410)에 포함된 새로운 단어 별로 결정될 수도 있다.
음성 인식 데이터 갱신 디바이스(1420)는 어플리케이션 A와 대응되는 적어도 하나의 문법 모델에 'Let it go'와 '봄봄봄'의 출현 확률 정보를 추가할 수 있다. 음성 인식 데이터 갱신 디바이스(1420)는 새로운 단어에 대한 출현 확률 정보를 상황 정보와 대응되는 문법 모델에 추가함으로써 음성 인식 데이터를 갱신할 수 있다. 음성 인식 데이터 갱신 디바이스(1420)는 새로운 단어에 대한 출현 확률 정보가 추가되는 문법 모델에 포함된 확률 정보들을 재결정함으로써, 음성 인식 데이터를 갱신할 수 있다. 출현 확률 정보가 추가될 수 있는 문법 모델은 하나의 어플리케이션 또는 적어도 하나의 어플리케이션을 포함하는 그룹과 대응될 수 있다.
음성 인식 데이터 갱신 디바이스(1420)는 사용자 입력에 따라 실시간으로 문법 모델을 갱신할 수 있다. 일 실시 예에 의한 음성 인식 디바이스(1430)에 의하면, 사용자는 사용자에 의해 정의된 문법으로 어플리케이션 또는 어플리케이션 그룹에 음성 명령을 내릴 수 있다. 문법 모델에 '[노래 제목] 틀어줘'라는 명령문에 대한 출현 확률 정보만 존재하는 경우, 사용자 정의에 따라 '[노래 제목] 들려줘'에 관한 출현 확률 정보가 문법 모델에 추가될 수 있다.
그러나 사용자 정의에 따라 문법이 결정될 수 있는 경우, 다른 사용자에 의해 정의된 문법이 적용됨에 따라 예상치 못한 음성 명령이 수행될 수 있다. 따라서, 일 실시 예에 의한 음성 인식 데이터 갱신 디바이스(1420)는 사용자 정의에 따라 결정된 문법 모델이 적용될 수 있는 범위로써, 문법 모델이 적용될 수 있는 어플리케이션, 시간 등을 설정할 수 있다.
음성 인식 데이터 갱신 디바이스(1420)는 실시간으로 사용자 디바이스(1450)의 상황 정보 관리부(1451)로부터 수신된 상황 정보에 기초하여 음성 인식 데이터를 갱신할 수 있다. 사용자 디바이스(1450)가 영화관 근처에 존재하는 경우, 사용자 디바이스(1450)는 해당 영화관과 관련된 정보를 상황 정보로써 음성 인식 데이터 갱신 디바이스(1420)로 전송할 수 있다. 영화관과 관련된 정보는 예를 들면, 영화 상영 정보, 영화관 근처의 맛집 정보, 교통 정보 등을 포함할 수 있다. 음성 인식 데이터 갱신 디바이스(1420)는 해당 영화관과 관련된 정보를 웹크롤링(web crawling) 또는 컨텐츠 제공자(provider)을 통하여 수집할 수 있다. 그리고, 음성 인식 데이터 갱신 디바이스(1420)는 수집된 정보에 기초하여, 음성 인식 데이터를 갱신할 수 있다. 따라서, 음성 인식 디바이스(1430)는 사용자 디바이스(1450)의 위치를 고려한 음성 인식을 수행할 수 있으므로, 음성 인식 성능이 더 향상될 수 있다.
둘째로, 도 14에 도시된 음성 인식 시스템(1400)에서 음성 인식을 수행하고, 음성 인식 결과에 따라 모듈을 실행하는 방법에 관해 설명하기로 한다.
사용자 디바이스(1450)는 사용자에 의해 사용될 수 있는 다양한 종류의 단말 장치를 포함할 수 있으며, 예를 들면, 사용자 디바이스(1450)는 휴대폰, 스마트 폰(smart phone), 노트북 컴퓨터(laptop computer), 태블릿 PC, 전자책 단말기, 디지털방송용 단말기, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 네비게이션, MP3 플레이어, 디지털 카메라, 착용형 기기(wearable device)(예컨대, 안경, 손목 시계, 반지) 등이 있을 수 있으나, 이에 한정되는 것은 아니다.
일 실시 예에 의한 사용자 디바이스(1450)는 음성 데이터(1440) 및 사용자 디바이스(1450)와 관련된 상황 정보 중 적어도 하나를 수집하고, 상황 정보에 기초하여 음성 인식된 언어에 따라 결정된 작업을 수행할 수 있다.
사용자 디바이스(1450)는 상황 정보 관리부(1451)와 모듈 선택 및 명령부(1452) 및 음성 인식 결과에 따라 작업을 수행할 수 있는 어플리케이션 A(1453)를 포함할 수 있다.
상황 정보 관리부(1451)는 음성 인식 디바이스(1430)에서 음성 인식을 수행할 때 문법 모델을 선택하기 위한 상황 정보를 수집하여 음성 인식 디바이스(1430)로 전송할 수 있다.
상황 정보는, 사용자 디바이스(1450)에서 현재 실행 중인 모듈에 관한 정보, 모듈 사용 이력, 음성 명령 이력, 사용자 디바이스(1450)에서 실행 가능하고, 대응되는 문법 모델이 존재하는 어플리케이션에 관한 정보, 현재 사용중인 사용자에 관한 정보 등을 포함할 수 있다. 모듈 사용 이력 및 음성 명령 이력은 각각 모듈이 사용된 시점 및 음성 명령을 수신한 시점에 관한 정보를 포함할 수 있다.
일 실시 예에 의한 상황 정보는 이하 표 1과 같이 구성될 수 있다.
구분 상황 정보
현재 사용 모듈 동영상 재생모듈 1
모듈 사용 이력 음악 재생모듈 1 / 1일전케이블 방송 / 1시간 전음악 재생모듈 1 / 30분전
음성 명령 이력 홈씨어터 [가수 1] 노래 재생해 / 10분 전음악 재생모듈 1 / 30분 전
문법 보유 어플리케이션 방송음악 재생모듈 1동영상 재생모듈 1음악 재생모듈 2
음성 인식 디바이스(1430)는 상황 정보에 기초하여 음성 인식 시 이용될 문법 모델을 적어도 하나 선택할 수 있다. 상황 정보가, 어플리케이션 A가 실행 중일 때 사용자 디바이스(1450)로부터 음성 데이터(1440)가 획득되었음을 나타내는 경우, 음성 인식 디바이스(1430)는 어플리케이션 A 및 사용자 디바이스(1450) 중 적어도 하나와 대응되는 문법 모델을 선택할 수 있다.
모듈 선택 및 명령부(1452)는 음성 인식 디바이스(1430)에 의해 음성 인식된 결과에 기초하여 모듈을 선택하고, 선택된 모듈로 작업을 수행하기 위한 명령문을 전달할 수 있다. 먼저, 모듈 선택 및 명령부(1452)는 음성 인식된 결과로부터 모듈의 식별자와 명령을 위한 키워드가 포함되어 있는지 여부를 판단할 수 있다. 명령을 위한 키워드는 모듈에 작업 수행을 요청하기 위한 명령문을 나타내는 식별자, 예를 들면, '재생(play)', '정지(pause)', '다음(next)' 등을 포함할 수 있다.
음성 인식된 결과에 모듈 식별자가 포함되어 있는 경우, 모듈 선택 및 명령부(1452)는 모듈 식별자와 대응되는 모듈을 선택하고, 선택된 모듈로 명령문을 전달할 수 있다.
음성 인식된 결과에 모듈 식별자가 포함되어 있지 않는 경우, 모듈 선택 및 명령부(1452)는 음성 인식된 결과에 포함된 명령을 위한 키워드 및 음성 인식된 결과와 대응되는 상황 정보 중 적어도 하나를 구할 수 있다. 모듈 선택 및 명령부(1452)는 명령을 위한 키워드 및 상황 정보 중 적어도 하나에 기초하여, 음성 인식된 결과에 따라 작업을 수행할 모듈을 결정할 수 있다.
구체적으로, 모듈 선택 및 명령부(1452)는 명령을 위한 키워드에 기초하여, 작업을 수행할 수 있는 모듈을 결정할 수 있다. 더하여, 모듈 선택 및 명령부(1452)는 상황 정보에 기초하여 작업을 수행하기 가장 적합한 모듈을 결정할 수 있다. 예를 들어, 모듈 선택 및 명령부(1452)는 가장 최근에 실행되었거나 실행 빈도 수 등에 기초하여 모듈을 결정할 수 있다.
모듈 선택 및 명령부(1452)에 의해 수집될 수 있는 상황 정보는, 현재 사용자 디바이스(1450)에서 실행 중인 모듈에 관한 정보, 모듈 사용 이력, 음성 명령 이력, 대응되는 문법 모델이 존재하는 어플리케이션에 관한 정보 등을 포함할 수 있다. 모듈 사용 이력 및 음성 명령 이력은 각각 모듈이 사용된 시점 및 음성 명령을 수신한 시점에 관한 정보를 포함할 수 있다.
음성 인식된 결과에 모듈 식별자가 포함되어 있는 경우라도, 해당 모듈이 명령문에 따라 작업을 수행할 수 없는 경우가 존재할 수 있다. 모듈 선택 및 명령부(1452)는 모듈 식별자가 포함되어 있지 않는 경우와 같이 음성 인식된 결과에 따라 작업을 수행할 모듈을 결정할 수 있다.
도 14를 참조하면, 모듈 선택 및 명령부(1452)는 음성 인식 결과로 'Let it go 들려줘'를 음성 인식 디바이스(1430)로부터 수신할 수 있다. 음성 인식 결과에 어플리케이션 식별자가 포함되어 있지 않으므로, 상황 정보 또는 명령을 위한 키워드에 기초하여, 음성 인식 결과에 따른 명령을 수행할 어플리케이션 A를 결정할 수 있다. 모듈 선택 및 명령부(1452)는 어플리케이션 A에 'Let it go' 노래를 재생할 것을 요청할 수 있다.
도 15는 일 실시 예에 의한 모듈에 대한 상황 정보의 일 예를 나타낸 예시도이다.
도 15를 참조하면, 음성 명령에 따라 작업이 수행될 수 있는 음악재생 프로그램(1510)의 명령어의 일 예가 도시되어 있다. 음성 인식 데이터 갱신 디바이스(1520)는 도 14의 음성 인식 데이터 갱신 디바이스(1420)와 대응될 수 있다.
음성 인식 데이터 갱신 디바이스(1520)는 사용자 디바이스(1450)로부터 음악재생 프로그램(1510)에 관한 상황 정보를 수신하고, 수신된 상황 정보에 기초하여 음성 인식 데이터를 갱신할 수 있다.
음악재생 프로그램(1510)에 관한 상황 정보는, 도 15에 도시된 바와 같이 헤더(1511), 명령어 문법(1512) 및 음악정보(1513)를 포함할 수 있다.
헤더(1511)는 음악재생 프로그램(1510)을 식별하기 위한 정보를 포함할 수 있으며, 음악재생 프로그램(1510)의 종류, 저장 위치, 이름 등의 정보를 포함할 수 있다.
명령어 문법(1512)은 음악재생 프로그램(1510)에 대한 명령문의 일 예를 포함할 수 있다. 음악재생 프로그램(1510)은 명령어 문법(1512)과 같은 음성 인식된 문장을 수신하면 작업을 수행할 수 있다. 명령어 문법(1512)의 명령문은 사용자에 의해 설정될 수도 있다.
음악정보(1513)는 음악재생 프로그램(1510)에서 재생될 수 있는 음악에 관한 정보를 포함할 수 있다. 예를 들면, 음악재생 프로그램(1510)이 재생할 수 있는 음악 파일의 식별 정보, 앨범 및 가수와 같은 분류 정보 등을 포함할 수 있다.
음성 인식 데이터 갱신 디바이스(1520)는 명령어 문법(1512)의 문장과 음악정보(1513)에 포함된 단어들을 이용하여 음악재생 프로그램(1510)에 대한 제2 문법 모델을 갱신할 수 있다. 예를 들면, 음성 인식 데이터 갱신 디바이스(1520)는 음악정보(1513)에 포함된 단어들을 명령어 문법(1512)의 문장에 포함시켜 출현 확률 정보를 구할 수 있다.
일 실시 예에 의한 사용자 디바이스(1450)는 새로운 어플리케이션이 설치되면, 헤더(1511), 명령어 문법(1512) 및 음악정보(1513) 등을 포함하는 어플리케이션과 관련된 정보를 음성 인식 데이터 갱신 디바이스(1520)로 전송할 수 있다. 또한, 어플리케이션에 대한 새로운 이벤트가 발생한 경우에도, 사용자 디바이스(1450)는 헤더(1511), 명령어 문법(1512) 및 음악정보(1513) 등을 포함하는 어플리케이션과 관련된 정보를 갱신하여 음성 인식 데이터 갱신 디바이스(1520)로 전송할 수 있다. 따라서, 음성 인식 데이터 갱신 디바이스(1520)는 어플리케이션에 관한 최신 정보에 기초하여 문법 모델을 갱신할 수 있다.
음성 인식 디바이스(1430)에서 음성 인식을 수행하는 경우, 사용자 디바이스(1450)는 음성 인식을 수행하기 위한 상황 정보를 음성 인식 디바이스(1430)로 전송할 수 있다. 상황 정보는 도 15에 도시된 음악재생 프로그램과 관련된 정보를 포함할 수 있다.
상황 정보는 이하 표 2와 같이 구성될 수 있다.
구분 상황 정보
현재 사용 모듈 메모
명령이력 음악재생모듈3 [음악명] 재생해 / 10분전음악재생모듈3 [가수] 노래 틀어 / 15분전
모듈 동시 사용 이력 메모 - 음악재생모듈 3 / 1일 전메모 - 음악재생모듈 3 / 2일 전
모듈 정보 음악재생모듈1 [가수1~3] 음악 N 건음악재생모듈2 [가수3~6] 음악 N 건음악재생모듈3 [가수6~8] 음악 N 건
SNS 사용 이력 음악재생모듈 1 언급 횟수 1회음악재생모듈 2 언급 횟수 4회음악재생모듈 N 언급 횟수 2회
음성 인식 디바이스(1430)는 표 2에 도시된 상황 정보 중 모듈 동시 사용 이력에 기초하여, 각 음악 재생 프로그램들과 대응되는 문법 모델에 적용될 수 있는 가중치를 결정할 수 있다. 음성 인식 디바이스(1430)는 현재 메모 프로그램이 실행 중인 경우, 메모 프로그램과 동시 사용 이력이 있는 음악 재생 프로그램의 문법 모델에 가중치를 두고 음성 인식을 수행할 수 있다.
사용자의 음성 입력을 수신함에 따라, 음성 인식 디바이스(1430)의 음성 인식된 결과가 '[가수 3] 노래 모두 재생해'로 출력되는 경우, 모듈 선택 및 명령부(1432)는 음성 인식 디바이스(1430)는 명령을 수행할 모듈을 결정할 수 있다. 음성 인식된 명령문이 모듈 식별자를 포함하지 않으므로, 명령문과 상황 정보에 기초하여 모듈 선택 및 명령부(1432)는 명령을 수행할 모듈을 결정할 수 있다. 자세히 설명하면, 모듈 선택 및 명령부(1432)는 상황 정보에 포함된 모듈 동시 사용이력, 최근 사용한 모듈 이력, SNS 사용 이력 등 다양한 정보를 고려하여, 명령문에 따라 음악을 재생할 모듈을 선택할 수 있다. 표 1을 참조하면, [가수 3]의 노래를 재생할 수 있는 음악재생모듈 1, 2 중 SNS에서 음악재생모듈 2를 언급한 횟수가 음악재생모듈 1보다 많으므로, 모듈 선택 및 명령부(1432)는 음악재생모듈 2를 선택할 수 있다. 모듈 선택 및 명령부(1432)는 명령문에 모듈 식별자가 포함되어 있지 않은 점에서 선택된 음악재생모듈 2로 음악을 재생할 지 여부를 사용자 입력에 따라 최종 결정할 수 있다.
모듈 선택 및 명령부(1432)는 음성 인식된 명령문에 따라 복수 개의 모듈에 대한 복수 개의 작업을 수행하도록 요청할 수 있다. 상황 정보는 표 3과 같이 구성됨을 가정한다.
구분 상황 정보
현재 사용 모듈 홈화면
명령이력 음악재생모듈3 [음악명] 재생해 / 10분전메모 작성할게 / 20분전
모듈 사용시 환경 설정 이력 동영상 재생모듈 - 볼륨 10 / 1일전동영상 재생모듈 - 조명 밝게 /1일전
음성 인식된 명령문이 '[영화] 보여줘'인 경우, 모듈 선택 및 명령부(1432)는 [영화]를 재생할 수 있는 동영상 재생모듈을 명령을 수행할 모듈로 선택할 수 있다. 상황 정보 중 모듈 사용 시 환경 설정 이용 정보에 기초하여 모듈 선택 및 명령부(1432)는 동영상 재생모듈 이외에 명령을 수행할 모듈을 복수 개 결정할 수 있다.
구체적으로, 모듈 선택 및 명령부(1432)는 모듈 사용시 환경 설정 이용 정보에 기초하여 볼륨과 조명을 조절하기 위한 볼륨 조절 모듈 및 조명 조절 모듈을 선택할 수 있다. 그리고, 모듈 선택 및 명령부(1432)는 모듈 사용시 환경 설정 이용 정보에 기초하여 선택된 모듈들로 볼륨과 조명을 조절하기 위한 요청을 전송할 수 있다.
도 16은 일 실시 예에 의한 음성 인식을 수행하는 방법의 일 예를 나타낸 순서도이다.
도 16을 참조하면, 단계 1610에서 음성 인식 디바이스(1430)는 음성 인식을 수행하고자 하는 음성 데이터를 획득할 수 있다.
단계 1620에서, 음성 인식 디바이스(1430)는 음성 데이터에 관한 상황 정보를 획득할 수 있다. 음성 데이터가 획득된 사용자 디바이스(1450)에서 음악 재생을 위한 어플리케이션 A가 실행 중인 경우, 상황 정보는 어플리케이션 A가 실행 중이라는 상황 정보를 포함할 수 있다.
단계 1630에서, 음성 인식 디바이스(1430)는 단계 1620에서 획득된 상황 정보에 기초하여 문법 모델을 적어도 하나 결정할 수 있다.
단계 1640 및 1670에서, 음성 인식 디바이스(1430)는 음성 데이터와 대응되는 발음열을 구할 수 있다. 'Let it go' 음성을 포함하는 음성 데이터와 대응되는 발음열은 '레릿고'와 '내리고'를 포함할 수 있다. 또한, '들려줘' 음성을 포함하는 음성 데이터와 대응되는 발음열은 '들려줘'와 '들여줘'를 포함할 수 있다.
음성 인식 디바이스(1430)는 획득된 발음열 중 발음 사전에 대응되는 단어가 존재하는 경우, 발음열을 단어로 변환할 수 있다. 또한, 발음 사전에 대응되는 단어가 존재하지 않는 발음열은 소정 단위로 분할될 수 있다.
발음열 중 '레릿고'는 발음 사전에 대응되는 단어가 존재하지 않음에 따라 소정 단위로 분할될 수 있다. 또한, 발음열 중 '내리고'에 있어서, 발음 사전에 대응되는 단어인 '내리고'와 소정 단위로 분할된 '내 리 고'가 획득될 수 있다.
발음열 중 '들려줘'와 '들여줘'는 발음 사전에 대응되는 단어가 존재함에 따라 '들려줘'와 '들여줘'가 획득될 수 있다.
단계 1650에서, 음성 인식 디바이스(1430)는 '레 릿 고', '내리고' 및 '내 리 고' 중 출현 확률 정보에 기초하여 '레 릿 고'를 결정할 수 있다. 또한, 단계 1680에서, 음성 인식 디바이스(1430)는 '들려줘' 및 들여줘' 중 출현 확률 정보에 기초하여 '들려줘'를 결정할 수 있다.
발음열 중 '내리고'는 두 개의 출현 확률 정보가 존재함에 따라 상술된 문법 모델 조합 방법에 따라서 '내리고'의 출현 확률 값이 결정될 수 있다.
단계 1660에서, 음성 인식 디바이스(1430)는 '레 릿 고'를 분절 정보에 기초하여 원래 단어인 'Let it go'로 복원할 수 있다. '들려줘'의 경우, 소정 단위로 분할된 단어에 해당되지 않고, 분절 정보에 '들려줘'에 대한 정보가 포함되어 있지 않으므로 단계 1660와 같은 단계는 수행되지 않을 수 있다.
단계 1690에서, 음성 인식 디바이스(1430)는 최종 음성 인식된 결과로, 'Let it go 들려줘'를 출력할 수 있다.
도 17은 일 실시 예에 의한 음성 인식을 수행하는 방법의 일 예를 나타낸 순서도이다.
도 17을 참조하면, 단계 1710에서 음성 인식 디바이스(1430)는 음성 인식을 수행하고자 하는 음성 데이터를 획득할 수 있다.
단계 1703에서, 음성 인식 디바이스(1430)는 음성 데이터에 관한 상황 정보를 획득할 수 있다. 단계 1730에서, 음성 인식 디바이스(1430)는 단계 1720에서 획득된 상황 정보에 기초하여 문법 모델을 적어도 하나 결정할 수 있다.
단계 1707, 1713 및 1719에서, 음성 인식 디바이스(1430)는 음성 데이터와 대응되는 발음열을 구할 수 있다. '오늘' 및 '김연아' 음성을 포함하는 음성 데이터와 대응되는 발음열은 각각 '오늘'과 '기며나'를 포함할 수 있다. 또한, '보여줘' 음성을 포함하는 음성 데이터와 대응되는 발음열은 '보여져' 및 '보이져'를 포함할 수 있다. 상술된 발음열들에 한하지 않고, 음성 데이터에 따라 예시와 다른 발음열이 획득될 수도 있다.
단계 1707에서, 음성 인식 디바이스(1430)는 발음열 중 '오늘'과 대응되는 단어인 '오늘'을 발음 사전을 이용하여 획득할 수 있다. 단계 1713에서, 음성 인식 디바이스(1430)는 발음열 중 '기며나'와 대응되는 단어인 '기면아'를 발음 사전을 이용하여 획득할 수 있다.
또한, 단계 1713 및 1719에서 음성 인식 디바이스(1430)는 '기며나'와 '보여져', '보이져'를 소정 단위로 분할하여, 각각 '기 며 나', '보 여 져' 및 '보 이 져'를 획득할 수 있다.
단계 1709, 1715 및 1721에서 음성 인식 디바이스(1430)는 출현 확률 정보에 기초하여 '오늘', '기 며 나' 및 '보 여 져'를 결정할 수 있다. 발음열 중 '기며나'는 두 개의 출현 확률 정보가 존재할 수 있으므로 상술된 문법 모델 조합 방법에 따라서 '기며나'의 출현 확률 값이 결정될 수 있다.
단계 1717 및 1723에서, 음성 인식 디바이스(1430)는 분절 정보에 기초하여 원래 단어인 '김연아'와 '보여줘'를 복원할 수 있다. '오늘'은 소정 단위로 분할된 단어에 해당되지 않고, 분절 정보에 '오늘'에 대한 정보가 포함되어 있지 않으므로 복원하는 단계는 수행되지 않을 수 있다.
단계 1725에서, 음성 인식 디바이스(1430)는 최종 음성 인식된 결과로 '오늘 김연아 보여줘'를 출력할 수 있다.
도 18은 일 실시 예에 의한 상황 정보에 따라 수행된 음성 인식 결과에 따라 복수 개의 모듈을 실행시키는 음성 인식 시스템을 나타낸 블록도이다.
도 18을 참조하면, 음성 인식 시스템(1800)은 음성 인식 데이터 갱신 디바이스(1820), 음성 인식 디바이스(1830), 사용자 디바이스(1850) 및 외부 장치(1860, 1870)를 포함할 수 있다. 음성 인식 데이터 갱신 디바이스(1820), 음성 인식 디바이스(1830) 및 사용자 디바이스(1850)는 도시된 바와 같이 각각 별개의 장치로 존재할 수 있으나, 이에 한하지 않고, 하나의 장치 내에 장치의 구성 요소로서 포함될 수 있다. 도 18의 음성 인식 데이터 갱신 디바이스(1820) 및 음성 인식 디바이스(1830)는 도 1 내지 도 17에서 상술된 음성 인식 데이터 갱신 디바이스(220,420 등) 및 음성 인식 디바이스(230,430 등)와 대응될 수 있으며, 중복되는 내용은 생략하기로 한다.
첫째로, 도 18에 도시된 음성 인식 시스템(1800)에 의해 상황 정보를 고려하여 음성 인식 데이터를 갱신하는 방법에 관해 설명하기로 한다.
음성 인식 데이터 갱신 디바이스(1820)는 음성 인식 데이터를 갱신하기 위한 언어 데이터(1810)를 획득할 수 있다. 더하여, 사용자 디바이스(1850)의 상황 정보 관리부(1851)는 언어 데이터(1810)와 대응되는 상황 정보를 획득하고, 획득된 상황 정보를 음성 인식 데이터 갱신 디바이스(1820)로 전송할 수 있다. 음성 인식 데이터 갱신 디바이스(1820)는 상황 정보 관리부(1851)로부터 수신한 상황 정보에 기초하여 언어 데이터(1810)에 포함된 새로운 단어를 추가할 문법 모델을 결정할 수 있다.
음성 인식 데이터 갱신 디바이스(1820)는 언어 데이터(1810)에 포함된 새로운 단어인 '겨울왕국' 및 '5.1 채널'을 검출할 수 있다. '겨울 왕국'에 관한 상황 정보는 동영상 재생을 위한 DVD(digital versatile disk) 플레이어 장치(1860)에 관한 정보를 포함할 수 있다. 또한, '5.1 채널'에 관한 상황 정보는 음성 출력을 위한 홈 씨어터 장치(1870)에 관한 정보를 포함할 수 있다.
음성 인식 데이터 갱신 디바이스(1820)는 DVD 플레이어 장치(1860) 및 홈 씨어터 장치(1870)와 각각 대응되는 적어도 하나의 문법 모델에 '겨울왕국' 및 '5.1 채널'의 출현 확률 정보를 추가할 수 있다.
둘째로, 도 18에 도시된 음성 인식 시스템(1800)에서 음성 인식을 수행하고, 음성 인식 결과에 따라 각 장치에서 작업을 수행하는 방법에 관해 설명하기로 한다.
사용자 디바이스(1850)는 사용자에 의해 사용될 수 있는 다양한 종류의 단말 장치를 포함할 수 있다.
일 실시 예에 의한 사용자 디바이스(1850)는 음성 데이터(1840) 및 사용자 디바이스(1850)와 관련된 상황 정보 중 적어도 하나를 수집할 수 있다. 그리고, 사용자 디바이스(1850)는 상황 정보에 기초하여 적어도 하나의 장치에 음성 인식된 언어에 따라 결정된 작업을 수행할 것을 요청할 수 있다.
사용자 디바이스(1850)는 상황 정보 관리부(1851)와 모듈 선택 및 명령부(1852)를 포함할 수 있다.
상황 정보 관리부(1851)는 음성 인식 디바이스(1830)에서 음성 인식을 수행할 때 문법 모델을 선택하기 위한 상황 정보를 수집하여 음성 인식 디바이스(1830)로 전송할 수 있다.
음성 인식 디바이스(1830)는 상황 정보에 기초하여 음성 인식 시 이용될 문법 모델을 적어도 하나 선택할 수 있다. 상황 정보가 DVD 플레이어 장치(1860) 및 홈 씨어터 장치(1870)가 사용 가능함을 나타내는 정보를 포함하는 경우, 음성 인식 디바이스(1830)는 DVD 플레이어 장치(1860) 및 홈 씨어터 장치(1870)와 대응되는 문법 모델을 선택할 수 있다. 또는, 음성 신호에, 모듈 식별자가 포함되어 있는 경우, 음성 인식 디바이스(1830)는 모듈 식별자와 대응되는 문법 모델을 선택하여 음성 인식을 수행할 수 있다. 모듈 식별자는 모듈 뿐만 아니라, 모듈 그룹 또는 모듈 종류를 식별할 수 있는 정보를 포함할 수 있다.
모듈 선택 및 명령부(1852)는 음성 인식 디바이스(1830)에 의해 음성 인식된 결과에 기초하여 명령문을 전달할 적어도 하나의 장치를 결정하고, 결정된 장치로 명령문을 전달할 수 있다.
음성 인식된 결과에 장치를 식별할 수 있는 정보가 포함되어 있는 경우, 모듈 선택 및 명령부(1852)는 상술된 식별 정보와 대응되는 장치로 명령문을 전달할 수 있다.
음성 인식된 결과에 장치를 식별할 수 있는 정보가 포함되어 있지 않은 경우, 모듈 선택 및 명령부(1852)는 음성 인식된 결과에 포함된 명령을 위한 키워드 및 상황 정보 중 적어도 하나를 구할 수 있다. 모듈 선택 및 명령부(1852)는 명령을 위한 키워드 및 상황 정보 중 적어도 하나에 기초하여 명령문을 전달할 장치를 적어도 하나 결정할 수 있다.
도 18을 참조하면, 모듈 선택 및 명령부(1852)는 음성 인식 결과로 '5.1 채널로 겨울 왕국 보여줘'를 음성 인식 디바이스(1830)로부터 수신할 수 있다. 음성 인식 결과에 장치 또는 어플리케이션 식별자가 포함되어 있지 않으므로, 상황 정보 또는 명령을 위한 키워드에 기초하여, 명령문을 전송할 DVD 플레이어 장치(1860) 및 홈 씨어터 장치(1870)를 결정할 수 있다.
구체적으로, 모듈 선택 및 명령부(1852)는 현재 사용 가능한 장치 중에서 5.1 채널로 음성 출력이 가능하고, 동영상 출력이 가능한 장치를 복수 개 결정할 수 있다. 모듈 선택 및 명령부(1852)는 결정된 복수 개의 장치 중에서 각 장치의 사용 이력 등의 상황 정보에 기초하여 명령을 수행하기 위한 장치를 최종 결정할 수 있다.
상황 정보 관리부(1851)에 의해 획득될 수 있는 상황 정보는 이하 표 4와 같이 구성될 수 있다.
구분 상황 정보
현재 사용 모듈 TV방송 모듈
모듈 동시 사용 이력 TV방송 모듈 - 홈씨어터 장치 / 20분전DVD 플레이어 장치 - 홈씨어터 장치 / 1일 전
음성 명령 이력 홈씨어터 [가수 1] 노래 재생해 / 10분전DVD 플레이어 [영화 1] 재생 / 1일 전
문법 보유 어플리케이션 TV 방송 모듈DVD 플레이어 장치동영상 재생 모듈 1홈 씨어터 장치
그리고, 모듈 선택 및 명령부(1852)는 최종 결정된 장치로 명령문을 전송할 수 있다. 구체적으로, '5.1 채널로 겨울 왕국 보여줘'의 음성 인식 결과에 따르면, 모듈 선택 및 명령부(1852)는 DVD 플레이어 장치(1860)로 '겨울 왕국'을 재생할 것을 요청하는 명령문을 전송할 수 있다. 또한, 모듈 선택 및 명령부(1852)는 홈 씨어터 장치(1870)로 '겨울 왕국'에 대한 음성을 5.1 채널로 출력할 것을 요청하는 명령문을 전송할 수 있다.
따라서, 일 실시 예에 의하면, 하나의 음성 인식 결과에 기초하여, 복수 개의 장치 또는 모듈로 명령문을 전송하여, 복수 개의 장치 또는 모듈이 동시에 작업을 수행할 수 있다. 또한, 일 실시 예에 의한 모듈 선택 및 명령부(1852)는 음성 인식 결과에 모듈 또는 장치의 식별자가 포함되어 있지 않은 경우에도, 명령을 위한 키워드 및 상황 정보에 기초하여 명령에 따른 작업을 수행할 가장 적합한 모듈 또는 장치를 결정할 수 있다.
도 19는 일 실시 예에 의한 복수 개의 장치에 대한 음성 명령의 일 예를 나타낸 예시도이다.
도 19를 참조하면, 모듈 선택 및 명령부(1922)를 중심으로, 음성 명령에 따라 작업이 수행될 수 있는 장치의 명령어의 일 예가 도시되어 있다. 모듈 선택 및 명령부(1922)는 도 17의 모듈 선택 및 명령부(1952)와 대응될 수 있다. 또한, DVD 플레이어 장치(1921)와 홈 씨어터 장치(1923)는 각각 도 17의 DVD 플레이어 장치(1860) 및 홈 씨어터 장치(1870)와 대응될 수 있다.
음성 명령(1911)은 일 실시 예에 의한 음성 인식에 따라 출력될 수 있는 음성 인식 결과의 일 예이다. 음성 명령(1911)에 영상의 이름과, 5.1 채널이 포함되어 있는 경우, 모듈 선택 및 명령부(1922)는 명령을 내릴 장치로 영상을 재생할 수 있는 DVD 플레이어 장치(1921)와 홈 씨어터 장치(1923)를 선택할 수 있다.
모듈 선택 및 명령부(1922)는 DVD 플레이어 장치(1921) 및 홈 씨어터 장치(1923)에 관한 정보로, 도 19에 도시된 바와 같이 헤더(1931,1934), 명령어 문법(1932, 1935), 영상 정보(1933), 사운드 프리셋(1936)을 포함할 수 있다.
헤더(1931, 1934)는 각각 DVD 플레이어 장치(1921)와 홈 씨어터 장치(1923)를 식별하기 위한 정보를 포함할 수 있다. 헤더(1931, 1934)는 각 장치의 종류, 위치, 이름 등의 정보를 포함할 수 있다.
명령어 문법(1932, 1935)은 각 장치(1921, 1923)에 대한 명령문의 일 예를 포함할 수 있다. 각각의 장치(1921, 1923)는 명령어 문법(1932, 1935)과 같은 음성 인식된 문장을 수신하면 수신된 문장에 따른 작업을 수행할 수 있다.
영상 정보(1933)는 DVD 플레이어 장치(1921)에서 재생될 수 있는 영상에 관한 정보를 포함할 수 있다. 예를 들면, DVD 플레이어 장치(1921)가 재생할 수 있는 영상 파일의 식별 정보 및 상세 정보 등을 포함할 수 있다.
사운드 프리셋(1936)은 홈 씨어터 장치(1923)의 음성 출력에 대하여 설정 가능한 정보를 포함할 수 있다. 홈 씨어터 장치(1923)가 7.1 채널, 5.1 채널 및 2.1 채널로 설정 가능한 경우, 사운드 프리셋(1936)은 홈 씨어터 장치(1923)에서 설정 가능한 채널 정보로 7.1 채널, 5.1 채널 및 2.1 채널을 포함할 수 있다. 채널 외에 사운드 프리셋(1936)은 이퀄라이져(equalizer) 설정, 볼륨 크기 설정 등을 포함할 수 있으며, 사용자 설정에 따라 홈 씨어터 장치(1923)에 대한 다양한 설정 가능한 정보를 더 포함할 수 있다.
모듈 선택 및 명령부(1922)는 DVD 플레이어 장치(1921) 및 홈 씨어터 장치(1923)에 관한 정보(1931 내지 1936)를 음성 인식 데이터 갱신 디바이스(1820)로 전송할 수 있다. 음성 인식 데이터 갱신 디바이스(1820)는 수신된 정보(1931 내지 1936)에 기초하여 각 장치(1921, 1923)와 대응되는 제2 문법 모델을 갱신할 수 있다.
음성 인식 데이터 갱신 디바이스(1820)는 명령어 문법(1932, 1935)의 문장과 영상 정보(1933) 또는 사운드 프리셋(1936)에 포함된 단어들을 이용하여 각 장치(1921, 1923)와 대응되는 제2 문법 모델을 갱신할 수 있다. 예를 들면, 음성 인식 데이터 갱신 디바이스(1820)는 영상 정보(1933) 또는 사운드 프리셋(1936)에 포함된 단어들을 명령어 문법(1932, 1935)의 문장에 포함시켜 출현 확률 정보를 구할 수 있다.
도 20는 일 실시 예에 의한 음성 인식 디바이스의 일 예를 나타낸 블록도이다.
도 20을 참조하면, 음성 인식 디바이스(2000)는 프론트 엔드 엔진(2010)과 음성 인식 엔진(2020)을 포함할 수 있다.
프론트 엔드 엔진(2010)은 음성 인식 디바이스(2000)에서 음성 데이터 또는 언어 데이터를 수신하고, 음성 데이터의 음성 인식된 결과를 출력할 수 있다. 그리고, 프론트 엔드 엔진(2010)은 수신된 음성 데이터 또는 언어 데이터에 대한 전처리를 수행하고, 전처리된 음성 데이터 또는 언어 데이터를 음성 인식 엔진(2020)으로 전송할 수 있다.
프론트 엔드 엔진(2010)은 상술한 도 1 내지 도 17에서의 음성 인식 데이터 갱신 디바이스(220, 420 등)와 대응될 수 있다. 음성 인식 엔진(2020)은 상술한 도 1 내지 도 18에서의 음성 인식 디바이스(230, 430 등)와 대응될 수 있다.
음성 인식 디바이스(2000)에서는, 음성 인식 데이터의 갱신 및 음성 인식이 각각 별도의 엔진에서 수행될 수 있으므로, 음성 인식과 음성 인식 데이터의 갱신이 동시에 수행될 수 있다.
프론트 엔드 엔진(2010)은 음성 데이터를 수신하고 음성 인식기(2022)로 전달하는 음성 버퍼(2011) 및 음성 인식 데이터를 갱신하기 위한 문법 모델 갱신부(2012)를 포함할 수 있다. 또한, 프론트 엔드 엔진(2010)은 일 실시 예에 따라 음성 인식된 음절 단위의 언어를 단어로 복원하기 위한 정보를 포함하는 분절 정보(2013)를 포함할 수 있다. 프론트 엔드 엔진(2010)은 분절 정보(2013)를 이용하여 음성 인식기(2022)에 의해 음성 인식된 음절 단위의 언어를 단어로 복원할 수 있고, 복원된 단어를 포함하는 음성 인식된 언어(2014)를 음성 인식 결과로써 출력할 수 있다.
음성 인식 엔진(2020)은 문법 모델 갱신부(2012)에 의해 갱신된 문법 모델(2021)을 포함할 수 있다. 그리고, 음성 인식 엔진(2020)은 음성 버퍼(2011)로부터 수신한 음성 데이터와 문법 모델(2021)에 기초하여, 음성 인식을 수행할 수 있는 음성 인식기(2022)를 포함할 수 있다.
음성 인식 디바이스(2000)는 녹음을 수행함에 따라 음성 데이터가 입력되면, 동시에 새로운 단어를 포함하는 언어 데이터를 수집할 수 있다. 그리고, 녹음된 음성을 포함하는 음성 데이터를 음성 버퍼(2011)에 저장하면서, 문법 모델 갱신부(2012)는 새로운 단어를 이용하여 문법 모델(2021)의 제2 문법 모델을 갱신할 수 있다. 제2 문법 모델이 갱신되면, 음성 인식기(2022)는 음성 버퍼(2011)에 저장된 음성 데이터를 수신하여 음성 인식을 수행할 수 있다. 음성 인식된 언어는 프론트 엔드 엔진(2010)로 전달되어, 분절 정보(2013)에 기초하여 복원될 수 있다. 프론트 엔드 엔진(2010)은 복원된 단어를 포함하는 음성 인식 결과를 출력할 수 있다.
도 21은 일 실시 예에 의한 디스플레이 장치에서 음성 인식을 수행하는 일 예를 나타낸 블록도이다.
도 21을 참조하면, 디스플레이 장치(2110)는 사용자로부터 음성 데이터를 수신하여 음성 인식 서버(2120)로 전송하고, 음성 인식 서버(2120)로부터 음성 인식 결과를 수신하여 출력할 수 있다. 디스플레이 장치(2110)는 음성 인식 결과에 따른 작업을 수행할 수 있다.
디스플레이 장치(2110)는 음성 인식 서버(2120)에서 음성 인식 데이터를 갱신하기 위한 언어 데이터를 생성하는 언어 데이터 생성부(2114)를 포함할 수 있다. 언어 데이터 생성부(2114)는 현재 디스플레이 상에 표시되어 있는 정보나 현재 디스플레이에 표시된 정보와 관련된 컨텐츠 정보로부터 언어 데이터를 생성하여 음성 인식 서버(2120)로 전송할 수 있다. 예를 들면, 언어 데이터 생성부(2114)는 현재 또는 이전, 이후에 디스플레이될 컨텐츠에 포함된 텍스트(2111) 및 현재 방송 정보(2112)로부터 언어 데이터를 생성할 수 있다. 또한, 언어 데이터 생성부(2114)는 디스플레이 장치(2110)에서 표시된 대화에 관한 정보를 대화 관리부(2113)로부터 수신하고, 수신된 정보를 이용하여 언어 데이터를 생성할 수 있다. 대화 관리부(2113)로부터 수신될 수 있는 정보는 SNS(social network service) 이용시 포함된 텍스트, SMS(short message service), MMS(multimedia message service)에 포함된 텍스트, 디스플레이 장치(2110)와 사용자 간의 대화 정보 등을 포함할 수 있다.
문법 모델 갱신부(2121)는 디스플레이 장치(2110)의 언어 데이터 생성부(2114)로부터 수신된 언어 데이터를 이용하여 문법 모델을 갱신할 수 있다. 그리고, 음성 인식부(2122)는 갱신된 문법 모델에 기초하여 음성 인식을 수행할 수 있다. 텍스트 복원부(2123)는 음성 인식된 언어에 음절 단위의 언어가 포함되어 있는 경우, 일 실시 예에 따라 분절 정보에 기초하여 텍스트 복원을 수행할 수 있다. 음성 인식 서버(2120)는 텍스트 복원된 음성 인식된 언어를 디스플레이 장치(2110)로 전달하고, 디스플레이 장치(2110)는 음성 인식된 언어를 출력할 수 있다.
음성 인식 서버(2120)는 일 실시 예에 의한 새로운 단어를 소정 단위로 분할하여 갱신하는 방법에 따라 음성 인식 데이터 갱신하는 경우, 수 ms 만에 음성 인식 데이터를 갱신할 수 있다. 따라서, 음성 인식 서버(2120)는 현재 디스플레이 장치(2110)에 표시된 텍스트의 새로운 단어를 곧바로 문법 모델에 추가할 수 있다.
사용자는 정해진 명령어뿐만 아니라 현재 방송 중인 방송 프로그램의 이름 또는 현재 디스플레이 화면에 표시되어 있는 텍스트를 발성할 수도 있다. 따라서, 일 실시 예에 의한 음성 인식 서버(2120)는 현재 발성할 가능성이 높은 현재 디스플레이 장치(2110)에 표시되어 있는 텍스트, 또는 디스플레이 장치(2110)에 표시된 컨텐츠와 관련된 정보를 수신할 수 있다. 그리고, 음성 인식 서버(2120)는 수신된 정보에 기초하여 음성 인식 데이터를 갱신할 수 있다. 음성 인식 서버(2120)는 일 실시 예에 의하면, 문법 모델 갱신을 수 ms 내지 수 초만에 수행할 수 있으므로, 현재 발성 가능성이 높은 새로운 단어를 획득하자 마자 인식 가능하도록 처리할 수 있다.
도 22는 일 실시 예에 의한 상황 정보를 고려하여 문법 모델을 갱신하는 일 예를 나타낸 블록도이다.
도 22의 음성 인식 데이터 갱신 디바이스(2220) 및 음성 인식 디바이스(2240)는 도 2 내지 도 17에 개시된 음성 인식 데이터 갱신 디바이스(220, 420 등) 및 음성 인식 디바이스(230, 430 등)와 대응될 수 있다.
도 22를 참조하면, 음성 인식 데이터 갱신 디바이스(2220)는 사용자 디바이스(2210) 또는 서비스 제공 서버(2230)로부터 개인화 정보(2221)를 획득할 수 있다.
음성 인식 데이터 갱신 디바이스(2220)는 사용자 디바이스(2210)로부터 주소록(2211), 설치된 앱 목록(2212), 저장된 앨범 목록(2213) 등을 포함하는 사용자와 관련된 정보를 수신할 수 있다. 이에 한하지 않고, 음성 인식 데이터 갱신 디바이스(2220)는 사용자 디바이스(2210)에 관한 다양한 정보를 사용자 디바이스(2210)로부터 수신할 수 있다.
음성 인식 데이터 갱신 디바이스(2220)는 개별 사용자마다 서로 다른 발화 패턴을 가지고 있는 점에서 개별 사용자 별로 음성 인식을 수행하기 위한 정보를 주기적으로 수신하여 개인화 정보(2221)에 저장해 둘 수 있다. 그리고, 음성 인식 데이터 갱신 디바이스(2220)의 문법 모델 갱신부(2222)는 개별 사용자 별로 개인화 정보(2221)에 기초하여 문법 모델을 갱신할 수 있다. 또한, 음성 인식 데이터 갱신 디바이스(2220)는 서비스 제공 서버(2230)로부터 개별 사용자별로 수집된 서비스 이용에 관한 정보를 수집하여 개인화 정보(2221)에 저장해 둘 수 있다.
서비스 제공 서버(2230)는 각 사용자에 대한 선호 채널 목록(2231), 자주 본 VOD(video on demand)(2232), 대화 이력(2233), 음성 인식 결과 이력(2234) 등을 포함할 수 있다. 즉, 서비스 제공 서버(2230)는 사용자 디바이스(2210)에 제공한 서비스(예를 들면, 방송 프로그램 제공 서비스, VOD 서비스, SNS 서비스, 음성 인식 서비스 등)에 관한 정보들을 저장해둘 수 있다. 상술된 수집될 수 있는 정보는 예시에 불과하며, 이에 한하지 않고, 서비스 제공 서버(2230)는 각 사용자에 대한 다양한 종류의 정보들을 수집하여 음성 인식 데이터 갱신 디바이스(2220)로 전송할 수 있다. 상술된 음성 인식 결과 이력(2234)은 음성 인식 디바이스(2240)에 의해 음성 인식된 결과에 관한 정보를 개별 사용자별로 포함할 수 있다.
자세히 설명하면, 문법 모델 갱신부(2222)는 개별 사용자 별로 대응되는 제2 문법 모델(2223)을 결정할 수 있다. 음성 인식 데이터 갱신 디바이스(2220)에는 개별 사용자 별로 대응될 수 있는 적어도 하나의 제2 문법 모델(2223)이 존재할 수 있다. 각 사용자별로 대응되는 제2 문법 모델(2223)이 존재하지 않는 경우, 문법 모델 갱신부(2222)는 대응되는 제2 문법 모델(2223)을 새롭게 생성할 수 있다. 그리고, 문법 모델 갱신부(2222)는 개인화 정보(2221)에 기초하여 각 사용자에 대한 제2 문법 모델을 갱신할 수 있다. 더 자세히 설명하면, 문법 모델 갱신부(2222)는 개인화 정보(2221)로부터 새로운 단어를 검출하고, 검출된 새로운 단어를 이용하여 각 사용자와 대응되는 제2 문법 모델(2223)을 갱신할 수 있다.
음성 인식 디바이스(2240)의 음성 인식기(2241)는 각 사용자별로 구축된 제2 문법 모델(2223)을 이용하여 음성 인식을 수행할 수 있다. 음성 명령을 포함하는 음성 데이터가 수신되면, 음성 인식기(2241)는 음성 명령을 수행하는 사용자와 대응되는 제2 문법 모델(2223)을 이용하여 음성 인식을 수행할 수 있다.
도 23은 일 실시 예에 의한 어플리케이션 별로 문법 모델을 포함하는 음성 인식 시스템의 일 예를 나타낸 블록도이다.
도 23을 참조하면, 음성 인식 데이터 갱신 디바이스(2320)의 제2 문법 모델(2323)은 사용자 디바이스(2310)에 설치된 적어도 하나의 어플리케이션에 대한 디바이스 정보(2321)에 기초하여 갱신되거나 생성될 수 있다. 따라서, 사용자 디바이스(2310)에 설치된 각각의 어플리케이션에서 자체적으로 음성 인식을 수행하지 않고, 음성 인식을 위한 별도의 플랫폼에서 음성 인식을 수행할 수 있다. 그리고, 음성 인식을 위한 플랫폼에서 음성 인식을 수행한 결과에 기초하여, 적어도 하나의 어플리케이션에 작업을 요청할 수 있다.
사용자 디바이스(2310)는 사용자에 의해 사용될 수 있는 다양한 종류의 단말 장치를 포함할 수 있으며, 적어도 하나의 어플리케이션이 설치될 수 있다. 사용자 디바이스(2310)에 설치된 어플리케이션(2311)은 명령어에 따라 실행될 수 있는 작업에 관한 정보를 포함할 수 있다. 예를 들면, 음악 재생 어플리케이션(2311)은, 명령어인 '재생, 잠깐만, 멈춰'에 대하여 각각 대응되는 작업에 관한 정보로 'Play, Pause, Stop'을 포함할 수 있다. 더하여, 어플리케이션(2311)은 명령 시 포함될 수 있는 텍스트에 관한 정보를 더 포함할 수 있다. 사용자 디바이스(2310)는 어플리케이션(2311)의 명령어에 따라 실행될 수 있는 작업에 관한 정보 및 명령 시 포함될 수 있는 텍스트에 관한 정보 중 적어도 하나를 음성 인식 데이터 갱신 디바이스(2320)로 전송할 수 있다. 음성 인식 데이터 갱신 디바이스(2320)는 사용자 디바이스(2310)로부터 수신한 정보에 기초하여 음성 인식을 수행할 수 있다.
음성 인식 데이터 갱신 디바이스(2320)는 디바이스 정보(2321), 문법 모델 갱신부(2322), 제2 문법 모델(2323), 분절정보(2324)를 포함할 수 있다. 음성 인식 데이터 갱신 디바이스(2320)는 도 2 내지 도 20에 도시된 음성 인식 데이터 갱신 디바이스(220, 420 등)와 대응될 수 있다.
디바이스 정보(2321)는 사용자 디바이스(2310)로부터 수신된 어플리케이션(2311)에 관한 정보를 포함할 수 있다. 음성 인식 데이터 갱신 디바이스(2320)는 사용자 디바이스(2310)로부터 설치된 어플리케이션(2311)의 명령어에 따라 실행될 수 있는 작업에 관한 정보 명령 시 포함될 수 있는 텍스트에 관한 정보 중 적어도 하나를 수신할 수 있다. 음성 인식 데이터 갱신 디바이스(2320)는 사용자 디바이스(2310)로부터 수신한 적어도 하나의 어플리케이션(2311)에 관한 정보를 디바이스 정보(2321)로 저장해둘 수 있다. 음성 인식 데이터 갱신 디바이스(2320)는 각각의 사용자 디바이스(2310)별로 디바이스 정보(2321)를 저장해둘 수 있다.
음성 인식 데이터 갱신 디바이스(2320)는 주기적으로 또는 어플리케이션(2311)에 관한 새로운 이벤트가 발생할 때마다 사용자 디바이스(2310)로부터 어플리케이션(2311)에 관한 정보를 수신할 수 있다. 또는, 음성 인식 디바이스(2330)에서 음성 인식을 수행하기 시작하면, 음성 인식 데이터 갱신 디바이스(2320)는 사용자 디바이스(2310)에 어플리케이션(2311)에 관한 정보를 요청할 수 있다. 그리고, 음성 인식 데이터 갱신 디바이스(2320)는 수신된 정보를 디바이스 정보(2321)로 저장해둘 수 있다. 따라서, 음성 인식 데이터 갱신 디바이스(2320)는 어플리케이션(2311)에 관한 최신 정보를 반영하여 문법 모델을 갱신할 수 있다.
문법 모델 갱신부(2322)는 디바이스 정보(2321)에 기초하여 음성 인식을 수행하는데 이용될 수 있는 문법 모델을 갱신할 수 있다. 디바이스 정보(2321)에 기초하여 갱신될 수 있는 문법 모델은 적어도 하나의 제2 문법 모델(2323) 중 사용자 디바이스(2310)와 대응되는 제2 문법 모델을 포함할 수 있다. 더하여, 디바이스 정보(2321)에 기초하여 갱신될 수 있는 문법 모델은 적어도 하나의 제2 문법 모델(2323) 중 어플리케이션(2311)과 대응되는 제2 문법 모델을 포함할 수 있다.
제2 문법 모델(2323)은 상황 정보에 따라 선택적으로 적용될 수 있는 적어도 하나의 개별적인 문법 모델을 포함할 수 있다. 음성 인식 디바이스(2330)는 제2 문법 모델(2323) 중 상황 정보에 따라 적어도 하나를 선택하고, 선택된 제2 문법 모델(2323)을 이용하여 음성 인식을 수행할 수 있다.
분절 정보(2324)는 일 실시 예에 따라 음성 인식 데이터가 갱신될 때 생성될 수 있는, 새로운 단어의 소정 단위로 분할된 구성 요소에 관한 정보를 포함할 수 있다. 음성 인식 데이터 갱신 디바이스(2320)는 제2 문법 모델(2323)에 실시간으로 새로운 단어를 추가하기 위해 일 실시 예에 따라 새로운 단어를 음절 단위로 분할하여 음성 인식 데이터를 갱신할 수 있다. 따라서, 음절 단위로 분할된 새로운 단어가 음성 인식되는 경우, 음성 인식된 결과는 음절 단위의 언어가 포함될 수 있다. 분절 정보(2324)는 음성 인식 디바이스(2330)에 의해 음성 인식이 수행되는 경우, 음절 단위로 음성 인식된 단어를 원래 단어로 복원하기 위해 이용될 수 있다.
음성 인식 디바이스(2330)는 수신된 음성 명령에 대한 음성 인식을 수행하는 음성 인식부(2331)와 음절 단위로 음성 인식된 단어를 원래 단어로 복원하는 텍스트 복원부(2332)를 포함할 수 있다. 텍스트 복원부(2332)는 음절 단위로 음성 인식된 단어를 원래 단어로 복원한 후, 음성 인식된 최종 결과를 출력할 수 있다.
도 24는 일 실시 예에 의한 사용자 디바이스에서 음성 인식 결과에 따라 작업 수행 요청을 전송하는 일 예를 나타낸 예시도이다. 사용자 디바이스(2410)는 도 18, 도 22 또는 도 21의 사용자 디바이스(1850, 2210, 2310 등)와 대응될 수 있다.
도 24를 참조하면, 사용자 디바이스(2410)가 TV(television)인 경우, 사용자 디바이스(2410)를 통해, 음성 인식된 결과에 의한 명령이 사용자 디바이스(2410)를 포함한 외부 장치, 즉, 에어컨(2420), 청소기(2430), 세탁기(2450)로 전송될 수 있다.
사용자가 a 위치(2440)에서 음성 명령을 내리는 경우, 음성 데이터는 에어컨(2420), 청소기(2430) 및 사용자 디바이스(2410)에 의해 수집될 수 있다. 사용자 디바이스(2410)는 사용자 디바이스(2410)에서 수집된 음성 데이터와, 에어컨(2420)과 청소기(2430)에서 수집된 음성 데이터를 신호 대 잡음비(SNR, signal to noise ratio) 또는 음량 크기 등을 기준으로 비교할 수 있다. 사용자 디바이스(2410)는 비교 결과 음성 데이터의 질이 가장 좋은 것을 선택하여, 음성 인식을 수행하기 위해 선택된 음성 데이터를 음성 인식 디바이스로 전송할 수 있다. 도 24를 참조하면, 사용자는 청소기(2430)와 가장 가까운 위치에 있으므로, 청소기(2430)에 의해 수집된 음성 데이터의 질이 가장 좋을 가능성이 높다.
일 실시 예에 의하면, 복수 개의 장치를 이용하여 음성 데이터를 수집할 수 있으므로, 사용자가 사용자 디바이스(2410)로부터 멀리 떨어져 있는 경우에도 질이 좋은 음성 데이터가 수집될 수 있다. 따라서, 사용자와 사용자 디바이스(2410)간 거리에 따른 음성 명령 성공률 변화가 작아질 수 있다.
또한, 사용자가 사용자 디바이스(2410)가 있는 거실과 멀리 떨어진 세탁실에 위치(2460)하는 경우에도, 세탁기(2450)에 의해 사용자의 음성 명령을 포함하는 음성 데이터가 수집될 수 있다. 세탁기(2450)는 수집된 음성 데이터를 사용자 디바이스(2410)로 전송할 수 있고, 사용자 디바이스(2410)는 수신된 음성 데이터에 기초하여 작업을 수행할 수 있다. 따라서, 사용자는 다양한 장치를 통해 음성 명령을 수행함으로써 사용자 디바이스인 사용자 디바이스(2410)와의 거리와는 관계없이 높은 성공률로 음성 명령을 수행할 수 있다.
이하에서, 사용자별로 음성 인식을 수행하는 방법과 관련하여 더 자세히 설명하기로 한다.
도 25는 일 실시 예에 의한 음성 데이터의 클래스에 대한 개인 선호 컨텐츠 목록을 생성하는 방법을 나타낸 블록도이다.
도 25를 참조하면, 음성 인식 디바이스(230)는 음성 데이터 및 텍스트 데이터(2510)로부터 어쿠스틱 정보(2520)와 컨텐츠 정보(2530)를 획득할 수 있다. 텍스트 데이터와 음성 데이터는 서로 대응될 수 있으며, 텍스트 데이터로부터 컨텐츠 정보(2530)가 획득될 수 있고, 음성 데이터로부터 어쿠스틱 정보(2520)가 획득될 수 있다. 텍스트 데이터는 음성 데이터가 음성 인식된 결과로부터 획득될 수 있다.
어쿠스틱 정보(2520)는 서로 다른 사람의 목소리를 구분할 수 있는 음성의 특징 정보를 포함할 수 있다. 음성 인식 디바이스(230)는 어쿠스틱 정보(2520)에 따라 클래스를 구분할 수 있으며, 동일한 사용자이더라도, 시간대별로 음성 특징이 달라 어쿠스틱 정보(2520)가 상이한 경우, 서로 다른 클래스로 구분될 수 있다. 어쿠스틱 정보(2520)는 음의 높낮이를 나타내는 피치(pitch) 값의 평균, 분산(variance) 값, 지터(jitter, 성대 진동 변화율), 쉼머(shimmer, 음성 파형의 규칙성), 지속 기간(duration), MFCC(Mel Frequency Cepstral Coefficients, 음성 특징 추출) 값의 평균, 분산 값 등의 음성 데이터의 특성 정보를 포함할 수 있다.
컨텐츠 정보(2530)는 텍스트 데이터에 포함된 명칭 정보에 기초하여 획득될 수 있다. 컨텐츠 정보(2530)는 텍스트 데이터에 포함된 명칭 그 자체를 포함할 수 있으며, 더하여, 명칭과 관련된 단어를 더 포함할 수 있다.
예를 들어, 텍스트 데이터에 포함된 명칭이 '날씨'와 '프로 야구 경기 결과'인 경우, '날씨'와 관련된 '날씨 정보', '뉴스' 및 '프로 야구 경기 결과'와 관련된 '스포츠 뉴스', '프로야구 다시보기' 등을 컨텐츠 정보(2540)로 획득할 수 있다.
음성 인식 디바이스(230)는 텍스트 데이터로부터 획득된 어쿠스틱 정보(2520) 및 컨텐츠 정보(2540)를 참조하여, 음성 데이터에 대한 클래스를 결정할 수 있다. 각 클래스는, 각 클래스와 대응되는 어쿠스틱 정보와 개인 선호 컨텐츠 목록을 포함할 수 있다. 음성 인식 디바이스(230)는 각 클래스의 어쿠스틱 정보와 개인 선호 컨텐츠 목록에 기초하여, 음성 데이터에 대한 클래스를 결정할 수 있다.
음성 데이터를 최초로 분류하기 전이나 초기화했을 시에는 개인 선호 컨텐츠 목록이 존재하지 않으므로, 음성 인식 디바이스(230)는 어쿠스틱 정보를 기반으로 음성 데이터를 클래스화할 수 있다. 그리고, 음성 인식 디바이스(230)는 각 클래스화된 음성 데이터와 대응되는 텍스트 데이터로부터 컨텐츠 정보(2540)를 추출하여 각 클래스에 대한 개인 선호 컨텐츠 목록을 생성할 수 있다. 이후 음성 인식을 수행하면서, 개인 선호 컨텐츠 목록에 추출된 컨텐츠 정보(2540)를 추가함으로써 점차적으로 클래스 분류 시 개인 선호 컨텐츠 목록에 적용되는 가중치를 높일 수 있다.
클래스를 갱신하는 방법은 이하 수학식 4에 따라 수행될 수 있다.
Figure pct00004
수학식 4에서, Av와 Wa는 각각 음성 데이터의 어쿠스틱 정보에 기반한 클래스 및 이에 대한 가중치이고, Lv와 Wl은 각각 개인 선호 컨텐츠 목록에 기반한 클래스 및 이에 대한 가중치이다.
최초에는 Wl은 0의 값을 가질 수 있고, 개인 선호 컨텐츠 목록이 갱신됨에 따라 Wl의 값이 증가할 수 있다.
더하여, 음성 인식 디바이스(230)는 각 클래스의 개인 선호 컨텐츠 목록과 음성 인식 이력에 기초하여, 각 클래스와 대응되는 문법 모델을 생성할 수 있다. 또한, 음성 인식 디바이스(230)는 각 클래스와 대응되는 음성 데이터와 글로벌 음향 모델(global acoustic model)에 기초하여, 화자 적응 알고리즘(예를 들면, MLLR(Maximum likelihood linear regression), MAP(Maximum A Posteriori) 등)에 따라 각 클래스 별로 개인화된 음향 모델을 생성할 수 있다.
음성 인식 디바이스(230)는 음성 인식 수행 시에는 음성 데이터로부터 클래스를 식별하고, 식별된 클래스와 대응되는 문법 모델 또는 음향 모델을 결정할 수 있다. 음성 인식 디바이스(230)는 결정된 문법 모델 또는 음향 모델을 이용하여 음성 인식을 수행할 수 있다.
음성 인식을 수행한 이후에는, 음성 인식 데이터 갱신 디바이스(220)는 음성 인식 결과를 이용하여 음성 인식된 음성 데이터 및 텍스트 데이터가 속하는 클래스에 대응되는 문법 모델 및 음향 모델을 갱신할 수 있다.
도 26은 일 실시 예에 의한 음성 데이터의 클래스를 결정하는 일 예를 나타낸 예시도이다.
도 26을 참조하면, 각 음성 데이터는 어쿠스틱 정보와 컨텐츠 정보를 특징으로 가질 수 있다. 어쿠스틱 정보와 컨텐츠 정보를 각각 x, y 값으로 두어 각 음성 데이터가 그래프에 표시될 수 있다. 음성 데이터들은 K-mean 클러스터링 방법에 따라, 어쿠스틱 정보 및 컨텐츠 정보에 기초하여 n 개의 클래스로 분류될 수 있다.
도 27은 일 실시 예에 의한 음성 데이터의 클래스에 따라 음성 인식 데이터를 갱신하는 방법을 나타낸 순서도이다.
도 27을 참조하면, 단계 S2701에서, 음성 인식 데이터 갱신 디바이스(220)는 음성 데이터 및 음성 데이터와 대응되는 텍스트를 획득할 수 있다. 음성 인식 데이터 갱신 디바이스(220)는 음성 인식 디바이스(230)에 의해 음성 인식된 결과로 음성 데이터와 대응되는 텍스트를 획득할 수 있다.
단계 S2703에서, 음성 인식 데이터 갱신 디바이스(220)는 단계 S2701에서 획득된 텍스트 또는 텍스트와 관련된 컨텐츠 정보를 검출할 수 있다. 예를 들면, 컨텐츠 정보는 텍스트와 관련된 단어를 더 포함할 수 있다.
단계 S2705에서, 음성 인식 데이터 갱신 디바이스(220)는 단계 S2701에서 획득된 음성 데이터로부터 어쿠스틱 정보를 검출할 수 있다. 단계 S2705에서 검출될 수 있는 어쿠스틱 정보란, 음성 데이터의 음향적 특징에 관한 정보를 포함할 수 있으며, 상술한 피치 값, 지터, 쉼머 등의 특징 정보를 포함할 수 있다.
단계 S2707에서, 음성 인식 데이터 갱신 디바이스(220)는 단계 S2703 및 단계 S2705에서 검출된 컨텐츠 정보 및 어쿠스틱 정보와 대응되는 클래스를 결정할 수 있다.
단계 S2609에서, 음성 인식 데이터 갱신 디바이스(220)는 단계 S2607에서 결정된 클래스와 대응되는 문법 모델 또는 음향 모델을 컨텐츠 정보와 어쿠스틱 정보에 기초하여 갱신할 수 있다. 음성 인식 데이터 갱신 디바이스(220)은 컨텐츠 정보에 포함된 새로운 단어를 검출함으로써 문법 모델을 갱신할 수 있다. 또한, 음성 인식 데이터 갱신 디바이스(220)는 어쿠스틱 정보와 글로벌 어쿠스틱 모델 및 화자 적응 알고리즘을 이용하여 음향 모델을 갱신할 수 있다.
도 28 및 도 29는 일 실시 예에 의한 클래스에 따라 분류될 수 있는 음성 데이터의 일 예를 도식화한 예시도이다.
도 28을 참조하면, 복수의 사용자들의 음성 데이터들이 하나의 클래스로 분류될 수 있다. 음향적 특성과 선호 컨텐츠가 비슷한 사용자들은 굳이 클래스를 구분할 필요가 없는 점에서 하나의 클래스로 분류될 수 있다.
도 29를 참조하면, 동일한 사용자의 음성 데이터가 각 음성 데이터의 특징에 따라 서로 다른 클래스로 분류될 수 있다. 아침과 저녁 음성이 서로 다른 사용자의 경우, 음성 데이터의 어쿠스틱 정보가 상이하게 검출될 수 있는 점에서, 아침과 저녁 음성에 대한 음성 데이터들은 서로 다른 클래스로 분류될 수 있다.
또한, 음성 데이터의 컨텐츠 정보가 서로 다른 경우에도 다른 클래스로 분류될 수 있다. 예를 들면, 동일한 사용자이나, 아이를 돌보는 중에는 유아 컨텐츠를 사용할 수 있다. 따라서, 각 음성 데이터의 컨텐츠 정보가 다른 경우에는 음성 데이터들은 동일한 사용자의 음성을 포함함에도 다른 클래스로 분류될 수 있다.
일 실시 예에 의하면, 음성 인식 디바이스(230)는 사용자별로 결정된 제2 문법 모델을 이용하여 음성 인식을 수행할 수 있다. 또한, 동일한 디바이스 아이디를 사용함에 따라 디바이스 아이디로 사용자를 구분할 수 없는 경우에도, 음성 데이터의 어쿠스틱 정보와 컨텐츠 정보에 기초하여 클래스로 구분할 수 있다. 음성 인식 디바이스(230)는 구분된 클래스에 따라 음향 모델 또는 문법 모델을 결정하여, 음성 인식을 수행할 수 있다.
또한, 목소리가 비슷하여 어쿠스틱 정보만으로 사용자가 구별될 수 없는 경우, 예를 들면, 형제, 가족 간에도, 음성 인식 디바이스(230)는 컨텐츠 정보를 더 고려하여 클래스를 구분함으로써, 화자에 적응적인 음성인식을 수행할 수 있다.
도 30 및 도 31은 일 실시 예에 의한 개인화된 음성 인식 방법을 수행하는 일 예를 도시한 블록도이다.
도 30 및 도 31을 참조하면, 각 클래스 별로 개인화된 음성 인식을 수행하기 위한 정보는, 개인에 관한 정보를 포함하는 개인화 정보(3021, 3031, 3121, 3131), 개인화 정보(3021, 3031, 3121, 3131)에 기초하여 제2 문법 모델(3023, 3033, 3123, 3133)을 갱신하는 문법 모델 갱신부(3022, 3032, 3122, 3132), 및 제2 문법 모델(3023, 3033, 3123, 3133) 갱신 시 생성될 수 있는 분절 정보(3024, 3034, 3124, 3134)를 포함할 수 있다. 상술된 각 클래스 별로 개인화된 음성 인식을 수행하기 위한 정보는 음성 인식을 수행하는 음성 인식 디바이스(3010) 또는 음성 인식 데이터 갱신 디바이스(220)에 포함될 수 있다.
복수의 사람이 발화하고 있는 상황에서, 음성 인식 디바이스(3010)가 음성 인식을 수행하기 위해 각 개인별 문법 모델을 함께 보간(interpolation)하여 계산할 수 있다.
도 29를 참조하면, 복수 개의 문법 모델을 이용하여 보간하는 방법은 상술한 바 있는 수학식 1 내지 3에 개시된 방법이 이용될 수 있다. 일 예로, 음성 인식 디바이스(3010)는 마이크를 잡고 있는 사람의 언어 모델의 가중치를 높여 적용할 수도 있다. 수학식 1에 따라 복수 개의 문법 모델을 이용하는 경우에는 각 문법 모델에 공통으로 포함된 단어가 큰 확률 값을 가질 수 있고, 수학식 2 및 3에 따른 경우, 각 개인별 문법 모델에 포함된 단어가 단순히 통합되는 것과 같다.
도 30을 참조하면, 개인별로 포함된 문법 모델의 크기가 크지 않은 경우에 여러 명의 문법 모델을 통합한 하나의 문법 모델(3141)에 기초하여 음성 인식이 수행될 수 있다. 문법 모델이 통합됨에 따라 음성 인식 시 구해야 할 확률 값의 양이 줄어들 수 있으나, 문법 모델이 통합되는 경우, 각 확률 값을 재결정하여 통합된 문법 모델을 생성하는 것이 필요하다. 따라서, 개인별 문법 모델의 크기가 작은 경우, 문법 모델을 통합하는 것이 효율적이다. 만약 다수의 개인을 포함하는 그룹을 미리 설정할 수 있는 경우라면, 음성 인식을 수행하는 시점 이전에, 음성 인식 디바이스(3010)는 미리 그룹에 대한 통합 문법 모델을 구해놓을 수 있다.
도 32는 일 실시 예에 의한 음성 인식 데이터 갱신 디바이스의 내부 구성을 도시한 블록도이다. 도 32의 음성 인식 데이터 갱신 디바이스는 상술된 도 2 내지 도 23의 음성 인식 데이터 갱신 디바이스와 대응될 수 있다.
음성 인식 데이터 갱신 디바이스(3200)는, 사용자가 사용할 수 있는 다양한 유형의 장치 또는 네트워크를 통해 사용자 디바이스와 연결될 수 있는 서버 장치를 포함할 수 있다.
도 32를 참조하면, 음성 인식 데이터 갱신 디바이스(3200)는 제어부(3210) 및 메모리(3220)를 포함할 수 있다.
제어부(3210)는 수집된 언어 데이터에 포함된 새로운 단어를 검출하여, 음성 인식 시 이용될 수 있는 문법 모델을 갱신할 수 있다. 구체적으로, 제어부(3210)는 새로운 단어를 발음열로 변환하고, 발음열 각각을 소정 단위로 분할하여, 분할된 발음열의 구성 요소의 출현 확률에 관한 정보를 결정할 수 있다. 그리고, 제어부(3210)는 출현 확률에 관한 정보를 이용하여 문법 모델을 갱신할 수 있다.
메모리(3220)는 제어부(3210)에 의해 갱신된 문법 모델을 저장할 수 있다.
도 33는 일 실시 예에 의한 음성 인식 디바이스의 내부 구성을 도시한 블록도이다. 도 33의 음성 인식 디바이스는 상술된 도 2 내지 도 29의 음성 인식 디바이스와 대응될 수 있다.
음성 인식 디바이스(3300)는, 사용자가 사용할 수 있는 다양한 유형의 장치 또는 네트워크를 통해 사용자 디바이스와 연결될 수 있는 서버 장치를 포함할 수 있다.
도 32를 참조하면, 음성 인식 데이터 갱신 디바이스(3200)는 제어부(3210) 및 메모리(3220)를 포함할 수 있다.
제어부(3210)는 음성 데이터를 이용하여 음성 인식을 수행할 수 있다. 구체적으로, 제어부(3210)는 음성 데이터로부터 적어도 하나의 발음열을 획득하여, 소정 단위로 분할된 발음열의 구성 요소별로 출현 확률 값을 구할 수 있다. 그리고, 제어부(3210)는 출현 확률 값에 기초하여 하나의 발음열을 획득할 수 있고, 획득된 발음열에 대한 분절 정보에 기초하여, 발음열과 대응되는 단어를 음성 인식된 단어로 출력할 수 있다.
통신부(3320)는 사용자의 발성을 포함하는 음성 데이터를 사용자 입력에 따라 수신할 수 있다. 음성 인식 디바이스(3300)가 서버 장치인 경우, 음성 인식 디바이스(3300)는 사용자 디바이스로부터 음성 데이터를 수신할 수 있다. 그리고, 통신부(3320)는 제어부(3310)에 의해 음성 인식된 단어를 사용자 디바이스로 전송할 수 있다.
도 34는 일 실시 예에 의한 사용자 디바이스(3400)의 구성을 설명하기 위한 블록도이다.
도 34에 도시된 바와 같이 사용자 디바이스(3400)는, 예를 들어, 휴대폰, 태블릿 PC, PDA, MP3 플레이어, 키오스크, 전자 액자, 네비게이션 장치, 디지털 TV, 손목 시계(Wrist watch) 또는 HMD(Head-Mounted Display)와 같은 웨어러블 기기(Wearable device) 등과 같은 사용자가 사용할 수 있는 다양한 유형의 장치를 포함할 수 있다.
사용자 디바이스(3400)는 상술된 도 2 내지 도 23의 사용자 디바이스와 대응될 수 있으며, 사용자 발성을 입력 받아 음성 인식 디바이스로 전송하고, 음성 인식 디바이스로부터 음성 인식된 언어를 수신하여 음성 인식된 언어를 출력할 수 있다.
예를 들어, 도 34에 도시된 바와 같이, 일부 실시예에 따른 사용자 디바이스(3400)는, 디스플레이부(3410), 제어부(3470) 이외에, 메모리(3420), GPS 칩(3425), 통신부(3430), 비디오 프로세서(3435), 오디오 프로세서(3440), 사용자 입력부(3445), 마이크부(3450), 촬상부(3455), 스피커부(3460) 및 움직임 감지부(3465) 등을 더 포함할 수도 있다.
이하 상기 구성요소들에 대해 차례로 살펴본다.
디스플레이부(3410)는 표시패널(3411) 및 표시 패널(3411)을 제어하는 컨트롤러(미도시)를 포함할 수 있다. 표시패널(3411)에는 LCD(Liquid Crystal Display), OLED(Organic Light Emitting Diodes) 디스플레이, AM-OLED(Active-Matrix Organic Light-Emitting Diode), PDP(Plasma Display Panel) 등과 같은 다양한 형태의 디스플레이로 구현될 수 있다. 표시패널(3411)은 유연하게(flexible), 투명하게(transparent) 또는 착용할 수 있게(wearable) 구현될 수 있다. 디스플레이부(3410)는 사용자 입력부(3445)의 터치 패널(3447)과 결합되어 터치 스크린으로 제공될 수 있다. 예를 들어, 터치 스크린은 표시 패널(3411)과 터치 패널(3447)이 적층 구조로 결합된 일체형의 모듈을 포함할 수 있다.
일부 실시 예에 의한 디스플레이부(3410)는 제어부(3470)의 제어에 따라 음성 인식된 결과를 표시할 수 있다.
메모리(3420)는 내장 메모리(Internal Memory)(미도시) 및 외장 메모리(External Memory)(미도시) 중 적어도 하나를 포함할 수 있다.
내장 메모리는, 예를 들어, 휘발성 메모리(예를 들면, DRAM(Dynamic RAM), SRAM(Static RAM), SDRAM(Synchronous Dynamic RAM) 등), 비휘발성 메모리(예를 들면, OTPROM(One Time Programmable ROM), PROM(Programmable ROM), EPROM(Erasable and Programmable ROM), EEPROM(Electrically Erasable and Programmable ROM), Mask ROM, Flash ROM 등), 하드 디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SSD) 중 적어도 하나를 포함할 수 있다. 일 실시 예에 따르면, 제어부(3470)는 비휘발성 메모리 또는 다른 구성요소 중 적어도 하나로부터 수신한 명령 또는 데이터를 휘발성 메모리에 로드(load)하여 처리할 수 있다. 또한, 제어부(3470)는 다른 구성요소로부터 수신하거나 생성된 데이터를 비휘발성 메모리에 보존할 수 있다.
외장 메모리는, 예를 들면, CF(Compact Flash), SD(Secure Digital), Micro-SD(Micro Secure Digital), Mini-SD(Mini Secure Digital), xD(extreme Digital) 및 Memory Stick 중 적어도 하나를 포함할 수 있다.
메모리(3420)는 디바이스(3400)의 동작에 사용되는 각종 프로그램 및 데이터를 저장할 수 있다. 예를 들어, 메모리(3420)는 사용자의 발성을 포함하는 음성 데이터 및 음성 데이터의 음성 인식된 결과 데이터 중 적어도 하나를 임시 또는 반영구적으로 저장할 수 있다.
제어부(3470)는 메모리(3420)에 저장된 정보의 일부가 디스플레이부(3410)에 표시되도록 디스플레이부(3410)를 제어할 수 있다. 다시 말하자면, 제어부(3470)는 메모리(3420)에 저장된 음성 인식된 결과를 디스플레이부(3410)에 표시할 수 있다. 또는, 제어부(3470)는 디스플레이부(3410)의 일 영역에서 사용자 제스처가 이루어지면, 사용자의 제스처에 대응되는 제어 동작을 수행할 수 있다.
제어부(3470)는 RAM(3471), ROM(3472), CPU(3473), GPU(Graphic Processing Unit)(3474) 및 버스(3475) 중 적어도 하나를 포함할 수 있다. RAM(3471), ROM(3472), CPU(3473) 및 GPU(3474) 등은 버스(3475)를 통해 서로 연결될 수 있다.
CPU(3473)는 메모리(3420)에 액세스하여, 메모리(3420)에 저장된 O/S를 이용하여 부팅을 수행한다. 그리고, 메모리(3420)에 저장된 각종 프로그램, 컨텐츠, 데이터 등을 이용하여 다양한 동작을 수행한다.
ROM(3472)에는 시스템 부팅을 위한 명령어 세트 등이 저장된다. 예로, 디바이스(3400)는 턴온 명령이 입력되어 전원이 공급되면, CPU(3473)가 ROM(3472)에 저장된 명령어에 따라 메모리(3420)에 저장된 O/S를 RAM(3471)에 복사하고, O/S를 실행시켜 시스템을 부팅시킬 수 있다. 부팅이 완료되면, CPU(3473)는 메모리(3420)에 저장된 각종 프로그램을 RAM(3471)에 복사하고, RAM(3471)에 복사된 프로그램을 실행시켜 각종 동작을 수행한다. GPU(3474)는 사용자 디바이스(3400)의 부팅이 완료되면, 디스플레이부(3410)의 영역에 UI 화면을 디스플레이한다. 구체적으로는, GPU(3474)는 컨텐츠, 아이콘, 메뉴 등과 같은 다양한 객체를 포함하는 전자문서가 표시된 화면을 생성할 수 있다. GPU(3474)는 화면의 레이아웃에 따라 각 객체들이 표시될 좌표값, 형태, 크기, 컬러 등과 같은 속성 값을 연산한다. 그리고, GPU(3474)는 연산된 속성값에 기초하여 객체를 포함하는 다양한 레이아웃의 화면을 생성할 수 있다. GPU(3474)에서 생성된 화면은 디스플레이부(3410)로 제공되어, 디스플레이부(3410)의 각 영역에 각각 표시될 수 있다.
GPS 칩(3425)은 GPS(Grobal Positioning System) 위성으로부터 GPS 신호를 수신하여, 디바이스(3400)의 현재 위치를 산출할 수 있다. 제어부(3470)는 네비게이션 프로그램을 이용할 때나 그 밖에 사용자의 현재 위치가 필요할 경우에, GPS 칩(3425)을 이용하여 사용자 위치를 산출할 수 있다. 예를 들면, 제어부(3470)는 GPS 칩(3425)을 이용하여 산출된 사용자 위치를 포함하는 상황 정보를 음성 인식 디바이스 또는 음성 인식 데이터 갱신 디바이스로 전송할 수 있다. 음성 인식 디바이스 또는 음성 인식 데이터 갱신 디바이스에 의해 상황 정보에 기초하여 문법 모델이 갱신되거나 음성 인식이 수행될 수 있다.
통신부(3430)는 다양한 유형의 통신방식에 따라 다양한 유형의 외부 기기와 통신을 수행할 수 있다. 통신부(3430)는 와이파이칩(3431), 블루투스 칩(3432), 무선 통신 칩(3433), NFC 칩(3434) 중 적어도 하나를 포함할 수 있다. 제어부(3470)는 통신부(3430)를 이용하여 각종 외부 기기와 통신을 수행할 수 있다. 예를 들면, 제어부(3470)는 통신부(3430)를 이용하여 디스플레이부(3410)에 표시된 메모를 제어하기 위한 요청을 외부 기기로부터 수신하고, 수신된 요청에 따른 결과를 외부 기기로 전송할 수 있다.
와이파이 칩(3431), 블루투스 칩(3432)은 각각 WiFi 방식, 블루투스 방식으로 통신을 수행할 수 있다. 와이파이 칩(3431)이나 블루투스 칩(3432)을 이용하는 경우에는 SSID 및 세션 키 등과 같은 각종 연결 정보를 먼저 송수신하여, 이를 이용하여 통신 연결한 후 각종 정보들을 송수신할 수 있다. 무선 통신 칩(3433)은 IEEE, 지그비, 3G(3rd Generation), 3GPP(3rd Generation Partnership Project), LTE(Long Term Evoloution) 등과 같은 다양한 통신 규격에 따라 통신을 수행하는 칩을 의미한다. NFC 칩(3434)은 135kHz, 13.56MHz, 433MHz, 860~960MHz, 2.45GHz 등과 같은 다양한 RF-ID 주파수 대역들 중에서 13.56MHz 대역을 사용하는 NFC(Near Field Communication) 방식으로 동작하는 칩을 의미한다.
비디오 프로세서(3435)는 통신부(3430)를 통해 수신된 컨텐츠 또는, 메모리(3420)에 저장된 컨텐츠에 포함된 비디오 데이터를 처리할 수 있다. 비디오 프로세서(3435)에서는 비디오 데이터에 대한 디코딩, 스케일링, 노이즈 필터링, 프레임 레이트 변환, 해상도 변환 등과 같은 다양한 이미지 처리를 수행할 수 있다.
오디오 프로세서(3440)는 통신부(3430)를 통해 수신된 컨텐츠 또는, 메모리(3420)에 저장된 컨텐츠에 포함된 오디오 데이터를 처리할 수 있다. 오디오 프로세서(3440)에서는 오디오 데이터에 대한 디코딩이나 증폭, 노이즈 필터링 등과 같은 다양한 처리가 수행될 수 있다. 예를 들면, 오디오 프로세서(3440)는 사용자 발성을 포함하는 음성 데이터를 재생할 수 있다.
제어부(3470)는 멀티미디어 컨텐츠에 대한 재생 프로그램이 실행되면 비디오 프로세서(3435) 및 오디오 프로세서(3440)를 구동시켜, 해당 컨텐츠를 재생할 수 있다. 스피커부(3460)는 오디오 프로세서(3440)에서 생성한 오디오 데이터를 출력할 수 있다.
사용자 입력부(3445)는 사용자로부터 다양한 명령어를 입력 받을 수 있다. 사용자 입력부(3445)는 키(3446), 터치 패널(3447) 및 펜 인식 패널(3448) 중 적어도 하나를 포함할 수 있다. 사용자 디바이스(3400)는 키(3446), 터치 패널(3447) 및 펜 인식 패널(3448) 중 적어도 하나로부터 수신된 사용자 입력에 따라서 다양한 컨텐츠 또는 사용자 인터페이스를 표시할 수 있다.
키(3446)는 사용자 디바이스(3400)의 본체 외관의 전면부나 측면부, 배면부 등의 다양한 영역에 형성된 기계적 버튼, 휠 등과 같은 다양한 유형의 키를 포함할 수 있다.
터치 패널(3447)은 사용자의 터치 입력을 감지하고, 감지된 터치 신호에 해당하는 터치 이벤트 값을 출력할 수 있다. 터치 패널(3447)이 표시 패널(3411)과 결합하여 터치 스크린(미도시)을 구성한 경우, 터치 스크린은 정전식이나, 감압식, 압전식 등과 같은 다양한 유형의 터치 센서로 구현될 수 있다. 정전식은 터치 스크린 표면에 코팅된 유전체를 이용하여, 사용자의 신체 일부가 터치 스크린 표면에 터치되었을 때 사용자의 인체로 야기되는 미세 전기를 감지하여 터치 좌표를 산출하는 방식이다. 감압식은 터치 스크린에 내장된 두 개의 전극 판을 포함하여, 사용자가 화면을 터치하였을 경우, 터치된 지점의 상하 판이 접촉되어 전류가 흐르게 되는 것을 감지하여 터치 좌표를 산출하는 방식이다. 터치 스크린에서 발생하는 터치 이벤트는 주로 사람의 손가락에 의하여 생성될 수 있으나, 정전 용량 변화를 가할 수 있는 전도성 재질의 물체에 의해서도 생성될 수 있다.
펜 인식 패널(3448)은 사용자의 터치용 펜(예컨대, 스타일러스 펜(stylus pen), 디지타이저 펜(digitizer pen))의 운용에 따른 펜의 근접 입력 또는 터치 입력을 감지하고 감지된 펜 근접 이벤트 또는 펜 터치 이벤트를 출력할 수 있다. 펜 인식 패널(3448)은, 예로, EMR 방식으로 구현될 수 있으며, 펜의 근접 또는 터치에 의한 전자기장의 세기 변화에 따라 터치 또는 근접 입력을 감지할 수 있다. 상세하게는 펜 인식 패널(3448)은 그리드 구조를 가지는 전자 유도 코일 센서(미도시)와 전자 유도 코일 센서의 각 루프 코일에 순차적으로 소정의 주파수를 가지는 교류 신호를 제공하는 전자 신호 처리부(미도시)를 포함하여 구성될 수 있다. 이러한 펜 인식 패널(3448)의 루프 코일 근방에 공진회로를 내장하는 펜이 존재하면, 해당 루프 코일로부터 송신되는 자계가 펜 내의 공진회로에 상호 전자 유도에 기초한 전류를 발생시킨다. 이 전류를 기초로 하여, 펜 내의 공진 회로를 구성하는 코일로부터 유도 자계가 발생하게 되고, 펜 인식 패널(3448)은 이 유도 자계를 신호 수신 상태에 있는 루프 코일에서 검출하게 되어 펜의 접근 위치 또는 터치 위치가 감지될 수 있다. 펜 인식 패널(3448)은 표시 패널(3411)의 하부에 일정 면적, 예를 들어, 표시 패널(3411)의 표시 영역을 커버할 수 있는 면적을 가지고 마련될 수 있다.
마이크부(3450)는 사용자 음성이나 기타 소리를 입력 받아 오디오 데이터로 변환할 수 있다. 제어부(3470)는 마이크 부(3450)를 통해 입력되는 사용자 음성을 통화 동작에서 이용하거나, 오디오 데이터로 변환하여 메모리(3420)에 저장할 수 있다. 예를 들면, 제어부(3470)는 마이크부(3450)를 통해 입력되는 사용자 음성을 오디오 데이터로 변환하고, 변환된 오디오 데이터를 메모에 포함시켜 저장할 수 있다.
촬상부(3455)는 사용자의 제어에 따라 정지 영상 또는 동영상을 촬상할 수 있다. 촬상부(3455)는 전면 카메라, 후면 카메라와 같이 복수 개로 구현될 수도 있다.
촬상부(3455) 및 마이크부(3450)가 마련된 경우, 제어부(3470)는 마이크부(3450)를 통해 입력되는 사용자 음성이나 촬상부(3455)에 의해 인식되는 사용자 모션에 따라 제어 동작을 수행할 수도 있다. 예컨대, 디바이스(3400)는 모션 제어 모드나 음성 제어 모드로 동작할 수 있다. 모션 제어 모드로 동작하는 경우, 제어부(3470)는 촬상부(3455)를 활성화시켜 사용자를 촬상하고, 사용자의 모션 변화를 추적하여 그에 대응되는 제어 동작을 수행할 수 있다. 예를 들면, 제어부(3470)는 촬상부(3455)에 의해 감지된 사용자의 모션 입력에 따라 메모 또는 전자 문서를 표시할 수 있다. 음성 제어 모드로 동작하는 경우 제어부(3470)는 마이크부(3450)를 통해 입력된 사용자 음성을 분석하고, 분석된 사용자 음성에 따라 제어 동작을 수행하는 음성 인식 모드로 동작할 수 있다.
움직임 감지부(3465)는 사용자 디바이스(3400)의 본체 움직임을 감지할 수 있다. 사용자 디바이스(3400)는 다양한 방향으로 회전되거나 기울어질 수 있다. 이 때, 움직임 감지부(3465)는 지자기 센서, 자이로 센서, 가속도 센서 등과 같은 다양한 센서들 중 적어도 하나를 이용하여 회전 방향 및 각도, 기울기 등과 같은 움직임 특성을 감지할 수 있다. 예를 들면, 움직임 감지부(3465)는 디바이스(3400)의 본체 움직임을 감지함으로써 사용자 입력을 수신하고, 수신된 입력에 따라 메모 또는 전자 문서를 표시할 수 있다.
그 밖에, 도 34에 도시하지는 않았으나, 실시예에는, 사용자 디바이스(3400) 내에 USB 커넥터가 연결될 수 있는 USB 포트나, 헤드셋, 마우스, LAN 등과 같은 다양한 외부 단자와 연결하기 위한 다양한 외부 입력 포트, DMB(Digital Multimedia Broadcasting) 신호를 수신하여 처리하는 DMB 칩, 다양한 센서 등을 더 포함할 수 있다.
전술한 사용자 디바이스(3400)의 구성 요소들의 명칭은 달라질 수 있다. 또한, 본 개시에 따른 사용자 디바이스(3400)는 전술한 구성요소들 중 적어도 하나를 포함하여 구성될 수 있으며, 일부 구성요소가 생략되거나 또는 추가적인 다른 구성요소를 더 포함할 수 있다.
일 실시 예에 의한 방법은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터(정보 처리 기능을 갖는 장치를 모두 포함한다)가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 장치의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장 장치 등이 있다.
비록 상기 설명이 다양한 실시예들에 적용되는 본 발명의 신규한 특징들에 초점을 맞추어 설명되었지만, 본 기술 분야에 숙달된 기술을 가진 사람은 본 발명의 범위를 벗어나지 않으면서도 상기 설명된 장치 및 방법의 형태 및 세부 사항에서 다양한 삭제, 대체, 및 변경이 가능함을 이해할 것이다. 따라서, 본 발명의 범위는 상기 설명에서보다는 첨부된 특허청구범위에 의해 정의된다. 특허청구범위의 균등 범위 안의 모든 변형은 본 발명의 범위에 포섭된다.

Claims (15)

  1. 음성 인식 시 이용되는 문법 모델을 포함하는 음성 인식 데이터를 갱신하는 방법에 있어서,
    적어도 하나의 단어를 포함하는 언어 데이터(langurage data)를 획득하는 단계;
    상기 적어도 하나의 단어 중 상기 문법 모델에 존재하지 않는 단어를 검출하는 단계;
    상기 검출된 단어에 대한 적어도 하나의 발음열(phoneme sequence)을 획득하는 단계;
    상기 적어도 하나의 발음열 각각을 소정 단위로 분할하여, 상기 적어도 하나의 발음열 각각을 구성하는 구성요소를 획득하는 단계;
    상기 적어도 하나의 발음열 각각을 구성하는 구성 요소의 음성 인식 시 출현할 확률에 관한 정보를 결정하는 단계; 및
    상기 결정된 확률 정보에 기초하여 상기 문법 모델을 갱신하는 단계를 포함하는, 방법.
  2. 제1항에 있어서, 상기 문법 모델은
    제1 문법 모델 및 적어도 하나의 문법 모델을 포함하는 제2 문법 모델을 포함하고,
    상기 문법 모델을 갱신하는 단계는
    상기 결정된 확률 정보에 기초하여 상기 제2 문법 모델을 갱신하는 단계를 포함하는, 방법.
  3. 제2항에 있어서,
    상기 제2 문법 모델에 포함된 적어도 하나의 출현 확률에 관한 정보에 기초하여, 상기 제1 문법 모델을 갱신하는 단계; 및
    단어의 발음열에 관한 정보를 포함하는 발음 사전을 상기 검출된 단어의 발음열에 기초하여 갱신하는 단계를 더 포함하는, 방법.
  4. 제1항에 있어서, 상기 출현할 확률에 관한 정보는
    상기 분할된 구성 요소 별로, 단어 또는 다른 구성 요소가 먼저 출현한 경우를 조건으로, 출현할 확률에 관한 정보를 포함하는, 방법.
  5. 제1항에 있어서, 상기 출현할 확률에 관한 정보를 결정하는 단계는
    상기 검출된 단어와 대응되는 주변 상황에 관한 상황 정보를 획득하는 단계;
    상기 상황 정보에 기초하여, 상기 검출된 단어에 대한 확률 정보를 추가할 문법 모델을 결정하는 단계를 포함하는, 방법.
  6. 제5항에 있어서, 상기 문법 모델을 갱신하는 단계는
    상기 결정된 확률 정보에 기초하여 상기 상황 정보와 대응되는 모듈에 대한 제2 문법 모델을 갱신하는 단계를 포함하는, 방법.
  7. 음성 인식을 수행하는 방법에 있어서,
    음성 인식을 수행하고자 하는 음성 데이터를 획득하는 단계;
    적어도 하나의 발음열을 상기 음성 데이터로부터 획득하는 단계;
    상기 적어도 하나의 발음열을 구성하고 소정 단위로 구분된 구성 요소가 출현할 확률에 관한 정보를 획득하는 단계;
    상기 소정 단위로 구분된 구성 요소가 출현할 확률에 관한 정보에 기초하여, 상기 적어도 하나의 발음열 중 하나를 결정하는 단계; 및
    상기 결정된 발음열에 포함된 소정 단위로 분할된 구성 요소를 단어로 변환하기 위한 분절 정보에 기초하여, 상기 결정된 발음열과 대응되는 단어를 획득하는 단계를 포함하는, 방법.
  8. 제7항에 있어서, 상기 발음열을 획득하는 단계는
    단어의 발음열에 관한 정보를 포함하는 발음 사전에, 상기 음성 데이터에 포함된 각 발음열과 대응되는 단어에 대한 정보가 존재하지 않는 발음열을 획득하는 단계를 포함하는, 방법.
  9. 제7항에 있어서, 상기 구성 요소의 출현할 확률에 관한 정보를 획득하는 단계는
    상기 구성 요소의 출현할 확률에 관한 정보를 포함하는 복수 개의 문법 모델을 결정하는 단계;
    상기 결정된 복수 개의 문법 모델에 대하여 가중치를 결정하는 단계;
    상기 구성 요소의 출현할 확률에 관한 정보를 상기 복수 개의 문법 모델로부터 적어도 하나 획득하는 단계;
    상기 획득된 출현 확률에 관한 정보에 상기 결정된 가중치를 각 출현 확률에 관한 정보가 속한 문법 모델에 따라 적용함으로써, 상기 구성 요소의 출현할 확률에 관한 정보를 획득하는 단계를 포함하는, 방법.
  10. 제7항에 있어서, 상기 구성 요소의 출현할 확률에 관한 정보를 획득하는 단계는
    상기 음성 데이터에 대한 상황 정보를 획득하는 단계;
    상기 상황 정보에 따라 적어도 하나의 제2 문법 모델을 결정하는 단계; 및
    상기 결정된 적어도 하나의 제2 문법 모델로부터 상기 구성 요소의 출현할 확률에 관한 정보를 획득하는 단계를 포함하는, 방법.
  11. 제10항에 있어서, 상기 제2 문법 모델은
    모듈 또는 적어도 하나의 모듈을 포함하는 모듈 그룹과 대응되며,
    상기 제2 문법 모델을 결정하는 단계는
    상기 획득된 상황 정보가 모듈의 식별자를 포함하는 경우, 상기 식별자와 대응되는 제2 문법 모델을 결정하는 단계를 포함하는, 방법.
  12. 제10항에 있어서, 상기 상황 정보는
    각 클래스별로 어쿠스틱(acoustic) 정보 및 클래스 별 선호 언어 정보 중 적어도 하나를 포함하는 개인화 모델 정보를 포함하고,
    상기 제2 문법 모델을 결정하는 단계는
    상기 상황 정보에 포함된 상기 어쿠스틱(acoustic) 정보 및 클래스 별 선호 언어 정보 중 적어도 하나에 기초하여 상기 음성 데이터에 대한 클래스를 결정하는 단계; 및
    상기 결정된 클래스에 기초하여, 상기 제2 문법 모델을 결정하는 단계를 포함하는, 방법.
  13. 제10항에 있어서,
    상기 음성 데이터 및 상기 음성 데이터가 음성 인식된 결과인 텍스트 획득;
    상기 텍스트 또는 상기 상황 정보로부터 콘텐츠에 관한 정보를 검출하는 단계;
    상기 음성 데이터로부터 어쿠스틱 정보를 검출하는 단계;
    상기 콘텐츠에 관한 정보 및 어쿠스틱 정보와 대응되는 클래스를 결정하는 단계;
    상기 콘텐츠에 관한 정보 및 상황 정보 중 적어도 하나에 기초하여, 상기 결정된 클래스와 대응되는 문법 모델에 관한 정보를 갱신하는 단계를 더 포함하는, 방법.
  14. 음성 인식 시 각 단어가 출현할 확률에 관한 정보를 포함하는 문법 모델을 갱신하기 위한 디바이스에 있어서,
    적어도 하나의 단어를 포함하는 언어 데이터(langurage data)를 획득하고, 상기 적어도 하나의 단어 중 상기 문법 모델에 존재하지 않는 단어를 검출하고, 상기 검출된 단어에 대한 적어도 하나의 발음열(phoneme sequence)을 획득하고, 상기 적어도 하나의 발음열 각각을 소정 단위로 분할하여, 상기 적어도 하나의 발음열 각각을 구성하는 구성요소를 획득하고, 상기 적어도 하나의 발음열 각각을 구성하는 구성 요소의 음성 인식 시 출현할 확률에 관한 정보를 결정하고, 상기 결정된 확률 정보에 기초하여 상기 문법 모델을 갱신하는 제어부; 및
    상기 갱신된 문법 모델을 저장하는 메모리를 포함하는, 디바이스.
  15. 음성 인식을 수행하는 디바이스에 있어서,
    음성 인식을 수행하고자 하는 음성 데이터를 획득하는 사용자 입력부;
    적어도 하나의 발음열을 상기 음성 데이터로부터 획득하고, 상기 적어도 하나의 발음열을 구성하고 소정 단위로 구분된 구성 요소가 출현할 확률에 관한 정보를 획득하고, 상기 소정 단위로 구분된 구성 요소가 출현할 확률에 관한 정보에 기초하여, 상기 적어도 하나의 발음열 중 하나를 결정하고, 상기 결정된 발음열에 포함된 소정 단위로 분할된 구성 요소를 단어로 변환하기 위한 분절 정보에 기초하여, 상기 결정된 발음열과 대응되는 단어를 획득하는 제어부를 포함하는, 디바이스.
KR1020177009542A 2015-01-16 2015-01-16 문법 모델을 이용하여 음성인식을 수행하는 방법 및 디바이스 KR102389313B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/KR2015/000486 WO2016114428A1 (ko) 2015-01-16 2015-01-16 문법 모델을 이용하여 음성인식을 수행하는 방법 및 디바이스

Publications (2)

Publication Number Publication Date
KR20170106951A true KR20170106951A (ko) 2017-09-22
KR102389313B1 KR102389313B1 (ko) 2022-04-21

Family

ID=56405963

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177009542A KR102389313B1 (ko) 2015-01-16 2015-01-16 문법 모델을 이용하여 음성인식을 수행하는 방법 및 디바이스

Country Status (5)

Country Link
US (4) US10403267B2 (ko)
EP (2) EP3958255A1 (ko)
KR (1) KR102389313B1 (ko)
CN (2) CN113140215A (ko)
WO (1) WO2016114428A1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102175340B1 (ko) 2019-07-31 2020-11-06 안동대학교 산학협력단 컴퓨터로 읽을 수 있는 저장 매체에 저장된 유아를 위한 교육용 ar 어플리케이션 및 그 제공방법
US11074909B2 (en) 2019-06-28 2021-07-27 Samsung Electronics Co., Ltd. Device for recognizing speech input from user and operating method thereof
KR20220136515A (ko) * 2016-12-29 2022-10-07 구글 엘엘씨 모바일 디바이스들에서의 모달리티 학습
US11557286B2 (en) 2019-08-05 2023-01-17 Samsung Electronics Co., Ltd. Speech recognition method and apparatus

Families Citing this family (90)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US20120309363A1 (en) 2011-06-03 2012-12-06 Apple Inc. Triggering notifications associated with tasks items that represent tasks to perform
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
CN113470640B (zh) 2013-02-07 2022-04-26 苹果公司 数字助理的语音触发器
US10652394B2 (en) 2013-03-14 2020-05-12 Apple Inc. System and method for processing voicemail
US10748529B1 (en) 2013-03-15 2020-08-18 Apple Inc. Voice activated device for use with a voice-based digital assistant
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
AU2015266863B2 (en) 2014-05-30 2018-03-15 Apple Inc. Multi-command single utterance input method
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US10403267B2 (en) * 2015-01-16 2019-09-03 Samsung Electronics Co., Ltd Method and device for performing voice recognition using grammar model
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US10460227B2 (en) 2015-05-15 2019-10-29 Apple Inc. Virtual assistant in a communication session
US10200824B2 (en) 2015-05-27 2019-02-05 Apple Inc. Systems and methods for proactively identifying and surfacing relevant content on a touch-sensitive device
US20160378747A1 (en) 2015-06-29 2016-12-29 Apple Inc. Virtual assistant for media playback
US20170018268A1 (en) * 2015-07-14 2017-01-19 Nuance Communications, Inc. Systems and methods for updating a language model based on user input
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US10740384B2 (en) 2015-09-08 2020-08-11 Apple Inc. Intelligent automated assistant for media search and playback
US10331312B2 (en) 2015-09-08 2019-06-25 Apple Inc. Intelligent automated assistant in a media environment
US9653075B1 (en) * 2015-11-06 2017-05-16 Google Inc. Voice commands across devices
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10956666B2 (en) 2015-11-09 2021-03-23 Apple Inc. Unconventional virtual assistant interactions
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US10896681B2 (en) * 2015-12-29 2021-01-19 Google Llc Speech recognition with selective use of dynamic language models
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
US11204787B2 (en) 2017-01-09 2021-12-21 Apple Inc. Application integration with a digital assistant
US11276395B1 (en) * 2017-03-10 2022-03-15 Amazon Technologies, Inc. Voice-based parameter assignment for voice-capturing devices
US10726832B2 (en) 2017-05-11 2020-07-28 Apple Inc. Maintaining privacy of personal information
DK180048B1 (en) 2017-05-11 2020-02-04 Apple Inc. MAINTAINING THE DATA PROTECTION OF PERSONAL INFORMATION
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
DK201770429A1 (en) 2017-05-12 2018-12-14 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
US20180336275A1 (en) 2017-05-16 2018-11-22 Apple Inc. Intelligent automated assistant for media exploration
DK179560B1 (en) 2017-05-16 2019-02-18 Apple Inc. FAR-FIELD EXTENSION FOR DIGITAL ASSISTANT SERVICES
US20180336892A1 (en) 2017-05-16 2018-11-22 Apple Inc. Detecting a trigger of a digital assistant
JP7295839B2 (ja) * 2017-07-10 2023-06-21 エスシーティアイ ホールディングス、インク 音節に基づく自動音声認識
CN107644638B (zh) * 2017-10-17 2019-01-04 北京智能管家科技有限公司 语音识别方法、装置、终端和计算机可读存储介质
CN108198552B (zh) * 2018-01-18 2021-02-02 深圳市大疆创新科技有限公司 一种语音控制方法及视频眼镜
US10572586B2 (en) * 2018-02-27 2020-02-25 International Business Machines Corporation Technique for automatically splitting words
US10818288B2 (en) 2018-03-26 2020-10-27 Apple Inc. Natural assistant interaction
KR20190113130A (ko) * 2018-03-27 2019-10-08 삼성전자주식회사 사용자 음성 입력을 처리하는 장치
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
US10892996B2 (en) 2018-06-01 2021-01-12 Apple Inc. Variable latency device coordination
DK179822B1 (da) 2018-06-01 2019-07-12 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
DK180639B1 (en) 2018-06-01 2021-11-04 Apple Inc DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT
CN110858479B (zh) * 2018-08-08 2022-04-22 Oppo广东移动通信有限公司 语音识别模型更新方法、装置、存储介质及电子设备
US11308939B1 (en) * 2018-09-25 2022-04-19 Amazon Technologies, Inc. Wakeword detection using multi-word model
US11462215B2 (en) 2018-09-28 2022-10-04 Apple Inc. Multi-modal inputs for voice commands
US11475898B2 (en) 2018-10-26 2022-10-18 Apple Inc. Low-latency multi-speaker speech recognition
TWI698857B (zh) * 2018-11-21 2020-07-11 財團法人工業技術研究院 語音辨識系統及其方法、與電腦程式產品
US11638059B2 (en) 2019-01-04 2023-04-25 Apple Inc. Content playback on multiple devices
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
KR20200121603A (ko) * 2019-04-16 2020-10-26 삼성전자주식회사 텍스트를 제공하는 전자 장치 및 그 제어 방법.
US11475884B2 (en) 2019-05-06 2022-10-18 Apple Inc. Reducing digital assistant latency when a language is incorrectly determined
US11423908B2 (en) 2019-05-06 2022-08-23 Apple Inc. Interpreting spoken requests
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
DK201970509A1 (en) 2019-05-06 2021-01-15 Apple Inc Spoken notifications
US11140099B2 (en) 2019-05-21 2021-10-05 Apple Inc. Providing message response suggestions
DK180129B1 (en) 2019-05-31 2020-06-02 Apple Inc. USER ACTIVITY SHORTCUT SUGGESTIONS
DK201970511A1 (en) 2019-05-31 2021-02-15 Apple Inc Voice identification in digital assistant systems
US11289073B2 (en) 2019-05-31 2022-03-29 Apple Inc. Device text to speech
US11496600B2 (en) 2019-05-31 2022-11-08 Apple Inc. Remote execution of machine-learned models
US11468890B2 (en) 2019-06-01 2022-10-11 Apple Inc. Methods and user interfaces for voice-based control of electronic devices
US11360641B2 (en) 2019-06-01 2022-06-14 Apple Inc. Increasing the relevance of new available information
US11217245B2 (en) * 2019-08-29 2022-01-04 Sony Interactive Entertainment Inc. Customizable keyword spotting system with keyword adaptation
WO2021056255A1 (en) 2019-09-25 2021-04-01 Apple Inc. Text detection using global geometry estimators
CN110706692B (zh) * 2019-10-21 2021-12-14 思必驰科技股份有限公司 儿童语音识别模型的训练方法及系统
US11514913B2 (en) * 2019-11-15 2022-11-29 Goto Group, Inc. Collaborative content management
US11373657B2 (en) 2020-05-01 2022-06-28 Raytheon Applied Signal Technology, Inc. System and method for speaker identification in audio data
US11183193B1 (en) 2020-05-11 2021-11-23 Apple Inc. Digital assistant hardware abstraction
US11061543B1 (en) 2020-05-11 2021-07-13 Apple Inc. Providing relevant data items based on context
US11810578B2 (en) 2020-05-11 2023-11-07 Apple Inc. Device arbitration for digital assistant-based intercom systems
US11755276B2 (en) 2020-05-12 2023-09-12 Apple Inc. Reducing description length based on confidence
US11315545B2 (en) * 2020-07-09 2022-04-26 Raytheon Applied Signal Technology, Inc. System and method for language identification in audio data
US11490204B2 (en) 2020-07-20 2022-11-01 Apple Inc. Multi-device audio adjustment coordination
US11438683B2 (en) 2020-07-21 2022-09-06 Apple Inc. User identification using headphones
CN112155485B (zh) * 2020-09-14 2023-02-28 美智纵横科技有限责任公司 一种控制方法、控制装置、清洁机器人及存储介质
US11763809B1 (en) * 2020-12-07 2023-09-19 Amazon Technologies, Inc. Access to multiple virtual assistants
CN112650399B (zh) * 2020-12-22 2023-12-01 科大讯飞股份有限公司 表情推荐方法及装置
CN112599128A (zh) * 2020-12-31 2021-04-02 百果园技术(新加坡)有限公司 一种语音识别方法、装置、设备和存储介质
US20220293109A1 (en) * 2021-03-11 2022-09-15 Google Llc Device arbitration for local execution of automatic speech recognition
KR20220133414A (ko) 2021-03-25 2022-10-05 삼성전자주식회사 음성 어시스턴트 서비스 제공 방법 및 이를 지원하는 전자 장치
CN113707135B (zh) * 2021-10-27 2021-12-31 成都启英泰伦科技有限公司 一种高精度连续语音识别的声学模型训练方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080103781A1 (en) * 2006-10-28 2008-05-01 General Motors Corporation Automatically adapting user guidance in automated speech recognition
US20080140423A1 (en) * 2006-12-08 2008-06-12 Canon Kabushiki Kaisha Information processing apparatus and information processing method

Family Cites Families (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5960395A (en) * 1996-02-09 1999-09-28 Canon Kabushiki Kaisha Pattern matching method, apparatus and computer readable memory medium for speech recognition using dynamic programming
US5963903A (en) * 1996-06-28 1999-10-05 Microsoft Corporation Method and system for dynamically adjusted training for speech recognition
US6856960B1 (en) 1997-04-14 2005-02-15 At & T Corp. System and method for providing remote automatic speech recognition and text-to-speech services via a packet network
US6408272B1 (en) * 1999-04-12 2002-06-18 General Magic, Inc. Distributed voice user interface
US7505905B1 (en) 1999-05-13 2009-03-17 Nuance Communications, Inc. In-the-field adaptation of a large vocabulary automatic speech recognizer (ASR)
US20020193989A1 (en) * 1999-05-21 2002-12-19 Michael Geilhufe Method and apparatus for identifying voice controlled devices
US6415257B1 (en) 1999-08-26 2002-07-02 Matsushita Electric Industrial Co., Ltd. System for identifying and adapting a TV-user profile by means of speech technology
JP3476008B2 (ja) 1999-09-10 2003-12-10 インターナショナル・ビジネス・マシーンズ・コーポレーション 音声情報の登録方法、認識文字列の特定方法、音声認識装置、音声情報の登録のためのソフトウエア・プロダクトを格納した記憶媒体、及び認識文字列の特定のためのソフトウエア・プロダクトを格納した記憶媒体
US7212968B1 (en) * 1999-10-28 2007-05-01 Canon Kabushiki Kaisha Pattern matching method and apparatus
US7310600B1 (en) 1999-10-28 2007-12-18 Canon Kabushiki Kaisha Language recognition using a similarity measure
CN1226717C (zh) * 2000-08-30 2005-11-09 国际商业机器公司 自动新词提取方法和系统
US6973427B2 (en) * 2000-12-26 2005-12-06 Microsoft Corporation Method for adding phonetic descriptions to a speech recognition lexicon
JP2002290859A (ja) 2001-03-26 2002-10-04 Sanyo Electric Co Ltd ディジタル放送受信装置
US6885989B2 (en) * 2001-04-02 2005-04-26 International Business Machines Corporation Method and system for collaborative speech recognition for small-area network
JP2003131683A (ja) * 2001-10-22 2003-05-09 Sony Corp 音声認識装置および音声認識方法、並びにプログラムおよび記録媒体
JP2003202890A (ja) * 2001-12-28 2003-07-18 Canon Inc 音声認識装置及びその方法、プログラム
US7167831B2 (en) 2002-02-04 2007-01-23 Microsoft Corporation Systems and methods for managing multiple grammars in a speech recognition system
US7047193B1 (en) * 2002-09-13 2006-05-16 Apple Computer, Inc. Unsupervised data-driven pronunciation modeling
JP2006308848A (ja) 2005-04-28 2006-11-09 Honda Motor Co Ltd 車両機器制御装置
WO2007027989A2 (en) * 2005-08-31 2007-03-08 Voicebox Technologies, Inc. Dynamic speech sharpening
KR20070030451A (ko) 2005-09-13 2007-03-16 엘지전자 주식회사 텔레매틱스 단말기에서의 음성인식 장치 및 방법
JP2007286174A (ja) 2006-04-13 2007-11-01 Funai Electric Co Ltd 電子機器
US7899673B2 (en) 2006-08-09 2011-03-01 Microsoft Corporation Automatic pruning of grammars in a multi-application speech recognition interface
US11222185B2 (en) 2006-10-26 2022-01-11 Meta Platforms, Inc. Lexicon development via shared translation database
JP4741452B2 (ja) 2006-11-21 2011-08-03 日本放送協会 言語モデル作成装置及び言語モデル作成プログラム並びに音声認識装置及び音声認識プログラム
US20080130699A1 (en) 2006-12-05 2008-06-05 Motorola, Inc. Content selection using speech recognition
KR100883657B1 (ko) 2007-01-26 2009-02-18 삼성전자주식회사 음성 인식 기반의 음악 검색 방법 및 장치
US7822608B2 (en) 2007-02-27 2010-10-26 Nuance Communications, Inc. Disambiguating a speech recognition grammar in a multimodal application
KR100904049B1 (ko) 2007-07-06 2009-06-23 주식회사 예스피치 음성 인식에 대한 통계적 의미 분류 시스템 및 방법
KR101424193B1 (ko) 2007-12-10 2014-07-28 광주과학기술원 타 언어권 화자음성에 대한 음성인식 시스템의 성능 향상을위한 비직접적 데이터 기반 발음변이 모델링 시스템 및방법
US20090234655A1 (en) * 2008-03-13 2009-09-17 Jason Kwon Mobile electronic device with active speech recognition
BRPI0910706A2 (pt) * 2008-04-15 2017-08-01 Mobile Tech Llc método para atualizar o vocabulário de um sistema de tradução de fala
WO2010061507A1 (ja) 2008-11-28 2010-06-03 日本電気株式会社 言語モデル作成装置
KR101558553B1 (ko) * 2009-02-18 2015-10-08 삼성전자 주식회사 아바타 얼굴 표정 제어장치
KR101567603B1 (ko) 2009-05-07 2015-11-20 엘지전자 주식회사 멀티 음성 시스템의 동작 제어 장치 및 방법
KR101587866B1 (ko) 2009-06-03 2016-01-25 삼성전자주식회사 음성 인식용 발음사전 확장 장치 및 방법
KR101289081B1 (ko) 2009-09-10 2013-07-22 한국전자통신연구원 음성 인터페이스를 이용한 iptv 시스템 및 서비스 방법
CN102023995B (zh) * 2009-09-22 2013-01-30 株式会社理光 语音检索设备和语音检索方法
CN101740028A (zh) * 2009-11-20 2010-06-16 四川长虹电器股份有限公司 家电产品语音控制系统
US8296142B2 (en) 2011-01-21 2012-10-23 Google Inc. Speech recognition using dock context
US9547998B2 (en) 2011-04-08 2017-01-17 Wombat Security Technologies, Inc. Context-aware training systems, apparatuses, and methods
KR20130014766A (ko) 2011-08-01 2013-02-12 주식회사 함소아제약 소아비염 치료용 한약 조성물 및 이의 제조방법
US8340975B1 (en) * 2011-10-04 2012-12-25 Theodore Alfred Rosenberger Interactive speech recognition device and system for hands-free building control
US20130238326A1 (en) 2012-03-08 2013-09-12 Lg Electronics Inc. Apparatus and method for multiple device voice control
KR20130104766A (ko) 2012-03-15 2013-09-25 주식회사 예스피치 음성인식 자동응답시스템의 그래마 자동 튜닝 시스템 및 방법
WO2014064324A1 (en) * 2012-10-26 2014-05-01 Nokia Corporation Multi-device speech recognition
CN102968989B (zh) * 2012-12-10 2014-08-13 中国科学院自动化研究所 一种用于语音识别的Ngram模型改进方法
KR20140135349A (ko) * 2013-05-16 2014-11-26 한국전자통신연구원 복수의 마이크로폰을 이용한 비동기 음성인식 장치 및 방법
WO2014210429A1 (en) * 2013-06-28 2014-12-31 Harman International Industries, Inc. Wireless control of linked devices
JP6266372B2 (ja) 2014-02-10 2018-01-24 株式会社東芝 音声合成辞書生成装置、音声合成辞書生成方法およびプログラム
US9632748B2 (en) * 2014-06-24 2017-04-25 Google Inc. Device designation for audio input monitoring
US9552816B2 (en) * 2014-12-19 2017-01-24 Amazon Technologies, Inc. Application focus in speech-based systems
US10403267B2 (en) * 2015-01-16 2019-09-03 Samsung Electronics Co., Ltd Method and device for performing voice recognition using grammar model
US9875081B2 (en) * 2015-09-21 2018-01-23 Amazon Technologies, Inc. Device selection for providing a response
WO2017184587A1 (en) * 2016-04-18 2017-10-26 Google Inc. Automated assistant invocation of appropriate agent

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080103781A1 (en) * 2006-10-28 2008-05-01 General Motors Corporation Automatically adapting user guidance in automated speech recognition
US20080140423A1 (en) * 2006-12-08 2008-06-12 Canon Kabushiki Kaisha Information processing apparatus and information processing method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Korea Electronics and Telecommunications Research Institute, 'Korean/English character-pronunciation conversion technology for voice recognition', Information and Communication Industry Promotion Agency, 2013. 04. 30* *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220136515A (ko) * 2016-12-29 2022-10-07 구글 엘엘씨 모바일 디바이스들에서의 모달리티 학습
US11074909B2 (en) 2019-06-28 2021-07-27 Samsung Electronics Co., Ltd. Device for recognizing speech input from user and operating method thereof
KR102175340B1 (ko) 2019-07-31 2020-11-06 안동대학교 산학협력단 컴퓨터로 읽을 수 있는 저장 매체에 저장된 유아를 위한 교육용 ar 어플리케이션 및 그 제공방법
US11557286B2 (en) 2019-08-05 2023-01-17 Samsung Electronics Co., Ltd. Speech recognition method and apparatus
US11955119B2 (en) 2019-08-05 2024-04-09 Samsung Electronics Co., Ltd. Speech recognition method and apparatus

Also Published As

Publication number Publication date
EP3193328A1 (en) 2017-07-19
US10403267B2 (en) 2019-09-03
US20200219483A1 (en) 2020-07-09
CN107112010A (zh) 2017-08-29
EP3193328A4 (en) 2017-12-06
EP3958255A1 (en) 2022-02-23
US10706838B2 (en) 2020-07-07
US20170365251A1 (en) 2017-12-21
CN113140215A (zh) 2021-07-20
USRE49762E1 (en) 2023-12-19
US10964310B2 (en) 2021-03-30
US20190348022A1 (en) 2019-11-14
WO2016114428A1 (ko) 2016-07-21
CN107112010B (zh) 2021-06-01
KR102389313B1 (ko) 2022-04-21
EP3193328B1 (en) 2022-11-23

Similar Documents

Publication Publication Date Title
KR102389313B1 (ko) 문법 모델을 이용하여 음성인식을 수행하는 방법 및 디바이스
CN107112008B (zh) 基于预测的序列识别
CN104282302B (zh) 用于识别语音和文本的设备和方法
KR101844516B1 (ko) 컨텐츠 분석 방법 및 디바이스
US9720644B2 (en) Information processing apparatus, information processing method, and computer program
US9123341B2 (en) System and method for multi-modal input synchronization and disambiguation
US8290775B2 (en) Pronunciation correction of text-to-speech systems between different spoken languages
KR102443087B1 (ko) 전자 기기 및 그의 음성 인식 방법
US20130090921A1 (en) Pronunciation learning from user correction
JP7328265B2 (ja) 音声インタラクション制御方法、装置、電子機器、記憶媒体及びシステム
US11705106B2 (en) On-device speech synthesis of textual segments for training of on-device speech recognition model
US20140304606A1 (en) Information processing apparatus, information processing method and computer program
WO2015186445A1 (ja) 情報処理装置、情報処理方法、及びプログラム
US20140303975A1 (en) Information processing apparatus, information processing method and computer program
JP5196114B2 (ja) 音声認識装置およびプログラム
CN113220590A (zh) 语音交互应用的自动化测试方法、装置、设备及介质
US20240119930A1 (en) Artificial intelligence device and operating method thereof
JP6509308B1 (ja) 音声認識装置およびシステム

Legal Events

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