[go: up one dir, main page]

KR102851233B1 - 음성 신호 처리 방법 및 장치 - Google Patents

음성 신호 처리 방법 및 장치

Info

Publication number
KR102851233B1
KR102851233B1 KR1020220098806A KR20220098806A KR102851233B1 KR 102851233 B1 KR102851233 B1 KR 102851233B1 KR 1020220098806 A KR1020220098806 A KR 1020220098806A KR 20220098806 A KR20220098806 A KR 20220098806A KR 102851233 B1 KR102851233 B1 KR 102851233B1
Authority
KR
South Korea
Prior art keywords
parameter
hold time
determined
sentence
value
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020220098806A
Other languages
English (en)
Other versions
KR20240020574A (ko
Inventor
정대성
박종세
Original Assignee
주식회사 카카오엔터프라이즈
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 카카오엔터프라이즈 filed Critical 주식회사 카카오엔터프라이즈
Priority to KR1020220098806A priority Critical patent/KR102851233B1/ko
Publication of KR20240020574A publication Critical patent/KR20240020574A/ko
Application granted granted Critical
Publication of KR102851233B1 publication Critical patent/KR102851233B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/93Discriminating between voiced and unvoiced parts of speech signals
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/04Segmentation; Word boundary detection
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/16Speech classification or search using artificial neural networks
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • 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 TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/78Detection of presence or absence of voice signals
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/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
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/221Announcement of recognition results

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Multimedia (AREA)
  • Acoustics & Sound (AREA)
  • Human Computer Interaction (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Evolutionary Computation (AREA)
  • Biophysics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Biomedical Technology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Telephonic Communication Services (AREA)

Abstract

음성 신호 처리 방법 및 장치가 개시된다. 일 실시 예에 따른 음성 신호 처리 방법은 수신된 음성 신호에서 묵음 구간을 검출하는 단계, 수신된 음성 신호의 음성 인식 결과가 종결된 문장인지 여부에 관한 제1 파라미터를 획득하는 단계, 제1 파라미터 및 수신된 음성 신호에 대응하는 서비스의 상태에 관한 제2 파라미터에 기초하여, 묵음 구간의 홀드타임을 결정하는 단계 및 결정된 홀드타임에 기초하여, 수신된 음성 신호에서 발화 구간을 검출하는 단계를 포함할 수 있다.

Description

음성 신호 처리 방법 및 장치{METHOD AND APPARATUS FOR SPEECH SIGNAL PROCESSING}
아래 실시예들은 음성 신호 처리 방법 및 장치에 관한 것이다.
음성 인식(Speech Recognition) 기술은 발화에 의하여 발생한 음성 신호를 텍스트 데이터로 전환하여 처리하는 기술로, STT(Speech-to-Text)라고도 한다. 음성 인식 기술로 인해 음성이 장치의 신규한 입력 방식으로 이용 가능해지면서, 음성을 통한 기기 제어 및 정보 검색 등 다양한 기술 분야에 음성 인식 기술이 응용되고 있다. 최근 음성 인식의 성능을 향상시키기 위한 머신 러닝을 이용한 음성 인식 알고리즘에 대한 연구 및 음성 인식의 속도를 개선하기 위한 기술 등 음성 인식 기술의 응용을 보완하기 위한 연구도 활발히 진행되고 있다.
삭제
공개특허공보 제10-2018-0084394호(2018.07.25.)
아래 실시 예들을 통해 음성 신호에 포함된 발화가 종결된 문장인지 여부에 따라 발화 구간을 검출하기 위한 홀드타임을 가변적으로 결정하는 기술을 제공할 수 있다.
아래 실시 예들을 통해 음성 신호 처리의 속도 및 정확도에 대한 비중이 서로 다른 서비스의 상태에 따라 발화 구간을 검출하기 위한 홀드타임을 가변적으로 결정하는 기술을 제공할 수 있다.
다만, 기술적 과제는 상술한 기술적 과제들로 한정되는 것은 아니며, 또 다른 기술적 과제들이 존재할 수 있다.
일 측에 따른 프로세서에 의해 수행되는 음성 신호 처리 방법은 수신된 음성 신호에서 묵음 구간을 검출하는 단계; 상기 수신된 음성 신호의 음성 인식 결과가 종결된 문장인지 여부에 관한 제1 파라미터를 획득하는 단계; 상기 제1 파라미터 및 상기 수신된 음성 신호에 대응하는 서비스의 상태에 관한 제2 파라미터에 기초하여, 상기 묵음 구간의 홀드타임을 결정하는 단계; 및 상기 결정된 홀드타임에 기초하여, 상기 수신된 음성 신호에서 발화 구간을 검출하는 단계를 포함한다.
상기 제1 파라미터를 획득하는 단계는 문장의 종결 어미를 저장하는 사전에 기초하여, 상기 음성 인식 결과의 마지막 단어가 문장의 종결 어미인지 여부를 판단하는 단계; 및 상기 마지막 단어가 문장의 종결 어미인지 여부의 판단에 기초하여, 상기 제1 파라미터의 값을 결정하는 단계를 포함할 수 있다.
상기 제1 파라미터를 획득하는 단계는 문장의 토큰 단위 별 n-gram 확률에 기초하여, 상기 음성 인식 결과의 마지막 토큰 다음에 문장의 종결을 지시하는 토큰이 올 확률을 획득하는 단계; 및 상기 획득된 확률에 기초하여, 상기 제1 파라미터의 값을 결정하는 단계를 포함할 수 있다.
상기 제1 파라미터를 획득하는 단계는 입력된 문장의 종결 여부를 출력하도록 학습된 뉴럴 네트워크(neural network)에 기초하여, 상기 음성 인식 결과가 종결된 문장일 확률을 획득하는 단계; 및 상기 획득된 확률에 기초하여, 상기 제1 파라미터의 값을 결정하는 단계를 포함할 수 있다.
상기 묵음 구간의 홀드타임을 결정하는 단계는 상기 제2 파라미터에 대응하는 홀드타임 셋(set)을 결정하는 단계; 상기 제1 파라미터의 값이 상기 음성 인식 결과는 종결된 문장임을 지시하는 값으로 결정된 경우, 상기 묵음 구간의 홀드타임을 상기 결정된 홀드타임 셋에 포함된 제1 홀드타임으로 결정하는 단계; 및 상기 제1 파라미터의 값이 상기 음성 인식 결과는 종결된 문장이 아님을 지시하는 값으로 결정된 경우, 상기 묵음 구간의 홀드타임을 상기 결정된 홀드타임 셋에 포함된 제2 홀드타임으로 결정하는 단계를 포함하고, 상기 제1 홀드타임은 상기 제2 홀드타임보다 짧은 기간을 지시할 수 있다.
상기 묵음 구간의 홀드타임을 결정하는 단계는 상기 제2 파라미터에 대응하는 홀드타임의 범위를 결정하는 단계; 및 상기 제1 파라미터의 값이 상기 음성 인식 결과가 종결된 문장일 확률을 지시하는 값으로 결정된 경우, 상기 결정된 홀드타임의 범위 내 상기 제1 파라미터에 기초한 값으로 상기 묵음 구간의 홀드타임을 결정하는 단계를 포함할 수 있다.
상기 제2 파라미터는 상기 서비스의 상태에 대응하여 설정된 음성 신호 처리의 정확도의 가중치 및 음성 신호 처리의 속도의 가중치; 및 상기 서비스의 상태에 대응하여 예측된 상기 음성 신호의 정보량 중 적어도 하나에 기초하여 결정될 수 있다.
상기 발화 구간을 검출하는 단계는 상기 묵음 구간의 지속 시간이 상기 결정된 홀드타임을 초과하는 경우, 상기 수신된 음성 신호에서 발화가 인식된 시점부터 상기 묵음 구간의 시작점까지의 구간을 상기 발화 구간으로 검출하는 단계; 및 상기 묵음 구간의 지속 시간이 상기 결정된 홀드타임을 초과하지 않는 경우, 상기 수신된 음성 신호에 대한 음성 인식을 수행하는 단계를 포함할 수 있다.
상기 음성 신호 처리 방법은 음성 인식 기능의 호출에 반응하여, 상기 음성 신호를 수신하는 단계; 및 상기 수신된 음성 신호에 대한 음성 인식을 수행하는 단계를 더 포함할 수 있다.
상기 음성 신호 처리 방법은 상기 수신된 음성 신호에서 발화가 인식된 시점을 검출 대상인 상기 발화 구간의 시작점으로 식별하는 단계를 더 포함할 수 있다.
일 측에 따른 음성 신호의 처리를 위한 장치는 수신된 음성 신호에서 묵음 구간을 검출하고, 상기 수신된 음성 신호의 음성 인식 결과가 종결된 문장인지 여부에 관한 제1 파라미터를 획득하고, 상기 제1 파라미터 및 상기 수신된 음성 신호에 대응하는 서비스의 상태에 관한 제2 파라미터에 기초하여, 상기 묵음 구간의 홀드타임을 결정하며, 상기 결정된 홀드타임에 기초하여, 상기 수신된 음성 신호에서 발화 구간을 검출하는, 적어도 하나의 프로세서를 포함한다.
상기 프로세서는, 상기 제1 파라미터를 획득함에 있어서, 문장의 종결 어미를 저장하는 사전에 기초하여, 상기 음성 인식 결과의 마지막 단어가 문장의 종결 어미인지 여부를 판단하고, 상기 마지막 단어가 문장의 종결 어미인지 여부의 판단에 기초하여, 상기 제1 파라미터의 값을 결정할 수 있다.
상기 프로세서는, 상기 제1 파라미터를 획득함에 있어서, 문장의 토큰 단위 별 n-gram 확률에 기초하여, 상기 음성 인식 결과의 마지막 토큰 다음에 문장의 종결을 지시하는 토큰이 올 확률을 획득하고, 상기 획득된 확률에 기초하여, 상기 제1 파라미터의 값을 결정할 수 있다.
상기 프로세서는, 상기 제1 파라미터를 획득함에 있어서, 입력된 문장의 종결 여부를 출력하도록 학습된 뉴럴 네트워크(neural network)에 기초하여, 상기 음성 인식 결과가 종결된 문장일 확률을 획득하고, 상기 획득된 확률에 기초하여, 상기 제1 파라미터의 값을 결정할 수 있다.
상기 프로세서는, 상기 묵음 구간의 홀드타임을 결정함에 있어서, 상기 제2 파라미터에 대응하는 홀드타임 셋(set)을 결정하고, 상기 제1 파라미터의 값이 상기 음성 인식 결과는 종결된 문장임을 지시하는 값으로 결정된 경우, 상기 묵음 구간의 홀드타임을 상기 결정된 홀드타임 셋에 포함된 제1 홀드타임으로 결정하고, 상기 제1 파라미터의 값이 상기 음성 인식 결과는 종결된 문장이 아님을 지시하는 값으로 결정된 경우, 상기 묵음 구간의 홀드타임을 상기 결정된 홀드타임 셋에 포함된 제2 홀드타임으로 결정하며, 상기 제1 홀드타임은 상기 제2 홀드타임보다 짧은 기간을 지시할 수 있다.
상기 프로세서는, 상기 묵음 구간의 홀드타임을 결정함에 있어서, 상기 제2 파라미터에 대응하는 홀드타임의 범위를 결정하고, 상기 제1 파라미터의 값이 상기 음성 인식 결과가 종결된 문장일 확률을 지시하는 값으로 결정된 경우, 상기 결정된 홀드타임의 범위 내 상기 제1 파라미터에 기초한 값으로 상기 묵음 구간의 홀드타임을 결정할 수 있다.
상기 제2 파라미터는 상기 서비스의 상태에 대응하여 설정된 음성 신호 처리의 정확도의 가중치 및 음성 신호 처리의 속도의 가중치; 및 상기 서비스의 상태에 대응하여 예측된 상기 음성 신호의 정보량 중 적어도 하나에 기초하여 결정될 수 있다.
상기 프로세서는, 상기 발화 구간을 검출함에 있어서, 상기 묵음 구간의 지속 시간이 상기 결정된 홀드타임을 초과하는 경우, 상기 수신된 음성 신호에서 발화가 인식된 시점부터 상기 묵음 구간의 시작점까지의 구간을 상기 발화 구간으로 검출하고, 상기 묵음 구간의 지속 시간이 상기 결정된 홀드타임을 초과하지 않는 경우, 상기 수신된 음성 신호에 대한 음성 인식을 수행할 수 있다.
상기 프로세서는, 음성 인식 기능의 호출에 반응하여, 상기 음성 신호를 수신하고, 상기 수신된 음성 신호에 대한 음성 인식을 수행할 수 있다.
도 1은 일 실시 예에 따른 음성 신호 처리 방법의 동작 흐름도이다.
도 2a 및 도 2b는 일 실시예에 따른 제1 파라미터 및 제2 파라미터에 기초하여 홀드타임이 결정되는 동작을 설명하기 위한 도면들이다.
도 3a 및 도 3b는 일 실시예에 따른 발화 구간이 검출하는 동작을 설명하기 위한 도면이다.
도 4는 일 실시 예에 따른 사전 기반 문장 종결 예측 모델의 생성 방법을 설명하기 위한 도면이다.
도 5는 일 실시 예에 따른 n-gram 기반 문장 종결 예측 모델의 생성 방법을 설명하기 위한 도면이다.
도 6은 일 실시 예에 따른 학습 기반 문장 종결 예측 모델의 생성 방법을 설명하기 위한 도면이다.
도 7은 일 실시 예에 따른 서비스의 상태에 관한 제2 파라미터가 획득되는 방법을 설명하기 위한 도면이다.
도 8은 일 실시예에 따른 음성 신호의 처리를 위한 장치의 구성의 예시도이다.
실시예들에 대한 특정한 구조적 또는 기능적 설명들은 단지 예시를 위한 목적으로 개시된 것으로서, 다양한 형태로 변경되어 구현될 수 있다. 따라서, 실제 구현되는 형태는 개시된 특정 실시예로만 한정되는 것이 아니며, 본 명세서의 범위는 실시예들로 설명한 기술적 사상에 포함되는 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 해석되어야 한다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 실시예들을 첨부된 도면들을 참조하여 상세하게 설명한다. 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고, 이에 대한 중복되는 설명은 생략하기로 한다.
도 1은 일 실시 예에 따른 음성 신호 처리 방법의 동작 흐름도이다.
도 1을 참조하면, 일 실시 예에 따른 음성 신호 처리 방법은 수신된 음성 신호에서 묵음 구간을 검출하는 단계(110), 수신된 음성 신호의 음성 인식 결과가 종결된 문장인지 여부에 관한 제1 파라미터를 획득하는 단계(120), 제1 파라미터 및 수신된 음성 신호에 대응하는 서비스의 상태에 관한 제2 파라미터에 기초하여, 묵음 구간의 홀드타임을 결정하는 단계(130) 및 결정된 홀드타임에 기초하여, 수신된 음성 신호에서 발화 구간을 검출하는 단계(140)를 포함할 수 있다.
일 실시 예에 따른 음성 신호 처리 방법은 적어도 하나의 프로세서에 의해 수행될 수 있다. 프로세서는 음성 신호의 처리를 위한 장치의 프로세서를 포함할 수 있다. 음성 신호의 처리를 위한 장치는 예를 들어, 단말 및/또는 서버를 포함할 수 있다. 음성 신호의 처리를 위한 장치의 구체적인 하드웨어 구성에 관하여는 이하에서 상술한다.
일 실시 예에 따른 프로세서는 수신된 음성 신호에서 묵음 구간을 검출(110)할 수 있다. 음성 신호는 사용자의 발화를 포함하는 오디오 신호에 해당할 수 있다. 프로세서는 수신된 음성 신호에서 발화 혹은 발화에 해당하는 신호를 인식할 수 있다.
일 실시 예에 따르면, 음성 신호의 일부 구간은 발화를 포함하지 않을 수 있다. 음성 신호의 발화를 포함하지 않는 구간은 묵음 구간으로 지칭될 수 있다. 예를 들어, 발화와 발화 사이에 퍼즈(pause)가 존재하거나, 발화가 일시적으로 중단된 경우, 묵음 구간이 발생할 수 있다.
일 실시 예에 따르면, 프로세서는 수신된 음성 신호에서 발화가 인식되지 않는 구간의 길이가 임계 값을 초과하는 경우, 해당 구간을 묵음 구간으로 검출할 수 있다. 예를 들어, 수신된 음성 신호에서 발화가 인식되지 않는 구간이 0.3초 이상 지속되는 경우, 해당 구간은 묵음 구간으로 검출될 수 있다.
일 실시 예에 따르면, 단계(110)에서 묵음 구간의 검출을 위한 발화가 인식되지 않는 구간의 길이의 임계 값은 단계(130)에서 결정되는 묵음 구간의 홀드타임보다 작은 값으로 설정될 수 있다. 예를 들어, 묵음 구간의 홀드타임이 제1 홀드타임(예: 0.5초) 혹은 제2 홀드타임(예: 1초)로 결정되는 경우, 묵음 구간의 검출을 위한 발화가 인식되지 않는 구간의 길이의 임계 값은 제1 홀드타임 및 제2 홀드타임보다 작은 값(예: 0.3초)으로 설정될 수 있다.
일 예로, 프로세서는 음성 인식 기능의 호출에 반응하여, 음성 신호를 수신할 수 있으며, 수신된 음성 신호에 대한 음성 인식을 수행할 수 있다. 다시 말해, 음성 신호 처리 방법은 음성 인식 기능의 호출에 반응하여, 음성 신호를 수신하는 단계 및 수신된 음성 신호에 대한 음성 인식을 수행하는 단계를 더 포함할 수 있다. 예를 들어, 음성 인식 기능의 호출은 웨이크업(wakeup) 신호의 인식 및/또는 음성 인식 기능의 호출을 요청하는 명령어의 입력을 포함할 수 있다.
음성 인식은 음성 신호를 텍스트로 변환하는 것으로, 프로세서는 HMM(hidden markov model) 모델, DNN(deep neural network) 모델, 시퀀스-투-시퀀스(sequence-to-sequence) 방식의 RNN(recurrent neural network) 모델, CTC(Connectionist Temporal Classification) 모델과 같은 다양한 음성 인식 모델 및/또는 음성 인식 알고리즘을 이용하여 수신된 음성 신호에 대한 음성 인식 결과를 획득할 수 있다. 음성 인식 결과는 음성 신호에 대응하는 텍스트에 해당할 수 있다.
일 실시 예에 따르면, 수신된 음성 신호에 대한 음성 인식은 주기적으로 수행될 수 있다. 예를 들어, 수신된 음성 신호에 대하여, 1초의 주기로 음성 인식이 수행될 수 있다. 혹은 묵음 구간의 검출에 반응하여, 묵음 구간 전에 수신된 음성 신호에 대하여 음성 인식이 수행될 수 있다.
일 실시 예에 따른 프로세서는 수신된 음성 신호의 음성 인식 결과가 종결된 문장인지 여부에 관한 제1 파라미터를 획득(120)할 수 있다. 제1 파라미터는 수신된 음성 신호에 대한 음성 인식 결과가 종결된 문장인지 여부에 관한 값을 갖는 파라미터에 해당할 수 있다.
일 예로, 제1 파라미터는 음성 인식 결과가 종결된 문장인지 여부를 지시하는 값으로 결정될 수 있다. 제1 파라미터는 음성 인식 결과가 종결된 문장임을 지시하는 제1 값(예: 1) 혹은 음성 인식 결과가 종결된 문장이 아님을 지시하는 제2 값(예: 0)으로 결정될 수 있다. 예를 들어, 수신된 음성 신호에 대한 음성 인식 결과가 "엄마한테"인 경우, "엄마한테"는 종결된 문장에 해당하지 않으므로, 제1 파라미터의 값은 제2 값으로 결정될 수 있다. 수신된 음성 신호에 대한 음성 인식 결과가 "메시지 보내"의 경우, "메시지 보내"는 종결된 문장에 해당하므로, 제1 파라미터는 제1 값으로 결정될 수 있다.
또 일 예로, 제1 파라미터는 음성 인식 결과가 종결된 문장일 확률을 지시하는 값으로 결정될 수도 있다. 음성 인식 결과가 종결된 문장일 확률은 음성 인식 결과가 완전한 문장일 확률 혹은 음성 인식 결과의 마지막 단어가 문장의 종결 어미에 해당할 확률을 의미할 수 있다. 예를 들어, 수신된 음성 신호에 대한 음성 인식 결과가 "엄마한테"인 경우, 제1 파라미터의 값은 "엄마한테"가 종결된 문장일 확률로 결정될 수 있다. 수신된 음성 신호에 대한 음성 인식 결과가 "메시지 보내"의 경우, 제1 파라미터의 값은 "메시지 보내"가 종결된 문장일 확률로 결정될 수 있다. "엄마한테"가 종결된 문장일 확률은 "메시지 보내"가 종결된 문장일 확률보다 낮을 것이다. 일 예로, 음성 인식 결과가 종결된 문장일 확률은 0 이상 1 이하의 실수로 결정될 수 있다.
일 실시 예에 따르면, 음성 인식 결과가 종결된 문장인지 여부는 문장 종결 예측 모델에 기초하여 획득될 수 있다. 문장 종결 예측 모델은 사전 기반 문장 종결 예측 모델, n-gram 기반 문장 종결 예측 모델 및 학습 기반 문장 종결 예측 모델 중 적어도 하나를 포함할 수 있다.
일 실시 예에 따르면, 사전 기반 문장 종결 예측 모델은 문장의 종결 어미를 저장하는 사전에 기초하여, 음성 인식 결과의 마지막 단어가 문장의 종결 어미에 해당하는지 여부의 판단 결과를 출력하는 모델에 해당할 수 있다. 구체적으로, 문장의 종결 어미를 저장하는 사전은 문장의 종결 어미인 것으로 판단되는 복수의 단어들을 저장할 수 있다. 음성 인식 결과의 마지막 단어가 사전에 포함된 단어인 경우, 음성 인식 결과의 마지막 단어가 문장의 종결 어미에 해당하는 것으로 판단될 수 있다. 음성 인식 결과의 마지막 단어가 사전에 포함되지 않은 단어인 경우, 음성 인식 결과의 마지막 단어가 문장의 종결 어미에 해당하지 않는 것으로 판단될 수 있다. 사전 기반 문장 종결 예측 모델에 관하여는 이하에서 상술한다.
일 실시 예에 따른 프로세서는 사전 기반 문장 종결 예측 모델에 기초하여, 제1 파라미터를 획득할 수 있다. 다시 말해, 단계(120)는 문장의 종결 어미에 해당하는 단어를 저장하는 사전에 기초하여, 음성 인식 결과의 마지막 단어가 문장의 종결 어미인지 여부를 판단하는 단계 및 마지막 단어가 문장의 종결 어미인지 여부의 판단에 기초하여, 제1 파라미터의 값을 결정하는 단계를 포함할 수 있다. 음성 인식 결과의 마지막 단어는 음성 인식 결과의 가장 마지막에 위치한 어절 혹은 형태소 분석 결과 음성 인식 결과의 가장 마지막에 위치한 형태소를 의미할 수 있다. 제1 파라미터의 값은 음성 인식 결과의 마지막 단어가 문장의 종결 어미인 것으로 판단된 경우, 종결된 문장임을 지시하는 제1 값으로 결정될 수 있다. 제1 파라미터의 값은 음성 인식 결과의 마지막 단어가 문장의 종결 어미가 아닌 것으로 판단된 경우, 종결된 문장이 아님을 지시하는 제2 값으로 결정될 수 있다.
일 실시 예에 따른 n-gram 기반 문장 종결 예측 모델은 문장의 토큰 단위 별 n-gram 확률에 기초하여, 음성 인식 결과의 마지막 단어 다음에 문장의 종결을 지시하는 토큰이 올 확률을 출력하는 모델에 해당할 수 있다. 토큰은 문장을 일정 규칙에 따라 분석하여 분리된 문장의 구성 단위로, 예를 들어 문장의 형태소 분석에 의해 분리된 형태소 단위를 포함할 수 있다. n-gram은 n개의 연속적인 토큰의 나열을 의미한다. n-gram 확률은 n-1개의 토큰 다음에 특정 토큰이 올 확률로, 코퍼스에 저장된 n-gram의 빈도에 기초하여 통계적으로 계산될 수 있다. 토큰은 문장의 시작을 지시하는 토큰(예: <s>) 및 문장의 종결을 지시하는 토큰(예: </s>)을 포함할 수 있다. 음성 인식 결과에 포함된 단어가 문장의 종결 어미에 해당할 확률은 n-gram확률에 기초하여 획득된 음성 인식 결과의 마지막 n-1개의 토큰 다음에 문장의 종결을 지시하는 토큰(예: </s>)이 올 확률에 해당할 수 있다. n-gram 기반 문장 종결 예측 모델에 관하여는 이하에서 상술한다.
일 실시 예에 따른 프로세서는 n-gram 기반 문장 종결 예측 모델에 기초하여, 제1 파라미터를 획득할 수 있다. 다시 말해, 제1 파라미터를 획득하는 단계(120)는 문장의 토큰 단위 별 n-gram 확률에 기초하여, 음성 인식 결과의 마지막 단어 다음에 문장의 종결을 지시하는 토큰이 올 확률을 판단하는 단계 및 판단된 확률에 기초하여, 제1 파라미터의 값을 결정하는 단계를 포함할 수 있다.
일 실시 예에 따른 학습 기반 문장 종결 예측 모델은 입력된 문장의 종결 여부를 출력하도록 학습된 뉴럴 네트워크(neural network)를 포함할 수 있다. 뉴럴 네트워크는 문장의 종결 여부의 정답 데이터가 포함된 문장을 학습 데이터로 하여, 문장의 종결 여부의 판단 결과를 출력하도록 학습될 수 있다. 학습된 뉴럴 네트워크는 입력된 문장이 종결된 문장일 확률을 출력할 수 있다. 학습 기반 문장 종결 예측 모델에 관하여는 이하에서 상술한다.
일 실시 예에 따른 프로세서는 학습 기반 문장 종결 예측 모델에 기초하여, 제1 파라미터를 획득할 수 있다. 다시 말해, 제1 파라미터를 획득하는 단계(120)는 입력된 문장의 종결 여부를 출력하도록 학습된 뉴럴 네트워크(neural network)에 기초하여, 음성 인식 결과의 마지막 단어 다음에 문장의 종결을 지시하는 토큰이 올 확률을 판단하는 단계 및 판단된 확률에 기초하여, 상기 제1 파라미터의 값을 결정하는 단계를 포함할 수 있다.
일 실시 예에 따른 프로세서는 제1 파라미터 및 수신된 음성 신호에 대응하는 서비스의 상태에 관한 제2 파라미터에 기초하여, 묵음 구간의 홀드타임을 결정(130)할 수 있다.
일 실시 예에 따르면, 홀드타임은 발화의 종료를 판단하기 위한 묵음 구간의 지속 시간의 임계 값으로, 묵음 구간의 지속 시간이 홀드타임을 초과하면, 발화가 종료된 것으로 판단될 수 있다. 발화가 종료된 것으로 판단된 경우, 발화가 인식된 시점부터 발화가 종료된 시점까지의 구간이 하나의 발화 구간으로 인식될 수 있다. 예를 들어, 홀드타임이 1초로 설정되었을 때, “엄마한테 집에 가는 중이라고 메시지 보내”를 발화한 음성 신호에서, "보내"의 발화 이후 묵음 구간이 1초 이상 지속되는 경우, 발화가 종료된 것으로 판단될 수 있다. “엄마한테 집에 가는 중이라고 메시지 보내”의 발화를 포함하는 음성 신호는 하나의 발화 구간에 포함될 수 있다. 발화 구간의 검출에 관하여는 이하에서 상술한다.
일 실시 예에 따르면, 홀드타임이 길게 설정되는 경우, 홀드타임이 짧게 설정되는 경우보다 발화 중간에 발화가 종료된 것으로 판단될 확률이 적다. 예를 들어, “엄마한테 집에 가는 중이라고 메시지 보내”를 발화한 음성 신호에서, "엄마한테"의 발화와 "집에"의 발화 사이에 1초의 묵음 구간이 있는 경우, 홀드타임이 1초 이하이면, "엄마한테"의 발화 이후에 발화가 종료된 것으로 판단될 수 있다. "엄마한테"의 발화 이후에 수신된 "집에 가는 중이라고 메시지 보내"의 발화는 "엄마한테"의 발화가 포함된 발화 구간과 구분되는 발화 구간에 포함되는 것으로 인식될 수 있다. 한편, 홀드타임이 1초보다 길게 설정된 경우, "엄마한테"의 발화 이후에 발화가 종료되지 않은 것으로 판단될 수 있다. "엄마한테"의 발화 이후에 묵음 구간이 존재하더라도, 묵음 구간의 전의 발화를 포함하는 구간과 묵음 구간 후의 발화를 포함하는 구간이 서로 다른 발화 구간으로 구분되지 않고, “엄마한테 집에 가는 중이라고 메시지 보내”의 발화가 하나의 발화 구간에 포함되는 것으로 인식될 수 있다.
일 실시 예에 따르면, 제1 파라미터에 기초하여, 홀드타임은 가변적으로 결정될 수 있다. 일 예로, 홀드타임은 제1 파라미터의 값에 매핑된 값으로 결정될 수 있다. 제1 파라미터의 값이 음성 인식 결과가 종결된 문장임을 지시하는 제1 값인 경우 홀드타임은 제1 값에 매핑된 제1 홀드타임으로 결정될 수 있다. 제1 파라미터의 값이 음성 인식 결과가 종결된 문장이 아님을 지시하는 제2 값인 경우 홀드타임은 제2 값에 매핑된 제2 홀드타임으로 결정될 수 있다. 이 때, 제1 홀드타임은 제2 홀드타임보다 더 짧은 기간을 지시하는 값에 해당할 수 있다. 다시 말해, 음성 인식 결과가 종결된 문장으로 판단된 경우, 그렇지 않은 경우보다 홀드타임이 더 짧은 기간을 지시하는 값으로 결정될 수 있다.
예를 들어, 수신된 음성 신호에 대한 음성 인식 결과가 "메시지 보내"의 경우, "메시지 보내"는 종결된 문장에 해당하므로, 제1 파라미터는 제1 값으로 결정될 수 있으며, 홀드타임은 제1 값에 매핑된 제1 홀드타임(예: 1초)로 결정될 수 있다. 한편, 수신된 음성 신호에 대한 음성 인식 결과가 "엄마한테"인 경우, "엄마한테"는 종결된 문장에 해당하지 않으므로, 제1 파라미터의 값은 제2 값으로 결정될 수 있으며, 홀드타임은 제2 값에 매핑된 제2 홀드타임(예: 2초)로 결정될 수 있다.
또 일 예로, 제1 파라미터의 값이 음성 인식 결과가 종결된 문장일 확률을 지시하는 값인 경우, 홀드타임은 종결된 문장일 확률이 클수록 짧은 기간을 지시하는 값으로 결정될 수 있다. 예를 들어, 홀드타임은 미리 정해진 홀드타임의 범위 내에서 종결된 문장일 확률의 1에 대한 보수에 비례하는 값으로 결정될 수 있다. 보다 구체적으로 예를 들면, 미리 정해진 범위가 A초 이상 및 B초 이하의 범위(단, A<B)이고, 종결된 문장일 확률이 X인 경우, 홀드타임은A+(B-A)*(1-X)로 결정될 수 있다.
일 실시 예에 따르면, 홀드타임은 서비스의 상태에 관한 제2 파라미터에 기초하여 가변적으로 결정될 수 있다. 서비스는 음성 신호 처리 방법과 연동된 서비스를 의미할 수 있다. 음성 신호 처리 방법과 연동된 서비스는 음성 신호를 입력 받아, 입력된 음성 신호에 대한 처리 결과를 제공하는 서비스로, 예를 들어 사용자로부터 질의 내용을 포함하는 음성 신호를 입력 받아, 입력된 음성 신호의 처리 결과로 질의에 대한 응답을 제공하는 상담 서비스를 포함할 수 있다.
일 실시 예에 따른 서비스의 상태는 서비스의 유형 및 서비스의 진행 단계 중 적어도 하나에 따라 구분될 수 있다. 홀드타임이 긴 경우, 발화 중간에 끊기지 않는 발화 구간의 검출이 가능하나, 발화 구간이 길게 설정될 수 있다. 발화 구간이 길게 설정되는 경우, 완전한 문장의 발화를 포함하는 발화 구간을 검출할 수 있으므로 음성 신호 처리의 정확도가 높을 수 있으나 단일 발화 구간에 포함된 음성 신호를 처리하는 시간 및/또는 비용이 많이 소요될 수 있다. 즉, 음성 신호 처리 방법이 음성 신호 처리의 속도가 중요한 서비스에 이용되는 경우와 음성 신호 처리의 정확도가 중요한 서비스에 이용되는 경우에 홀드타임이 다르게 결정될 필요가 있다. 또한, 동일한 서비스 내에서도 서비스의 진행 단계마다 요구되는 음성 신호 처리의 정확도 및 속도의 비중이 다를 수 있다. 이에, 홀드타임은 서비스의 유형 및 서비스의 진행 단계 중 적어도 하나에 따라 구분되는 서비스의 상태에 관한 제2 파라미터에 기초하여 가변적으로 결정될 수 있다.
일 실시 예에 따르면, 제2 파라미터는 수신된 음성 신호에 대응하는 서비스의 상태에 관한 값을 갖는 파라미터에 해당할 수 있다. 일 예로, 제2 파라미터는 서비스의 상태에 대응하는 음성 신호 처리의 정확도 및 음성 신호 처리의 속도의 비중에 기초하여 결정될 수 있다. 예를 들어, 제2 파라미터는 음성 신호 처리의 정확도보다 속도의 비중이 높은 서비스의 상태를 지시하는 제3 값 혹은 음성 신호 처리의 속도보다 정확도의 비중이 높은 서비스의 상태를 지시하는 제4 값으로 결정될 수 있다. 제2 파라미터가 제3 값으로 설정된 경우, 제4 값으로 설정된 경우보다 더 짧은 값으로 홀드타임이 결정될 수 있다. 예를 들어, 서비스의 상태는 음성 신호 처리의 정확도보다 속도의 비중이 높은 정도 및/또는 음성 신호 처리의 속도보다 정확도의 비중이 높은 정도에 따른 복수의 상태들을 포함할 수 있다. 이 경우, 제2 파라미터는 각 상태를 지시하는 값으로 결정될 수도 있다.
일 실시 예에 따르면, 서비스의 상태에 대응하는 음성 신호 처리의 정확도 및 음성 신호 처리의 속도의 비중은 서비스의 상태에 대응하여 설정된 음성 신호 처리의 정확도의 가중치 및 음성 신호 처리의 속도의 가중치에 기초하여 결정될 수 있다. 예를 들어, 음성 신호 처리의 정확도의 가중치가 음성 신호 처리의 속도의 가중치보다 큰 값으로 설정된 경우, 음성 신호 처리의 속도보다 정확도의 비중이 높은 것으로 결정될 수 있다. 반대로, 음성 신호 처리의 정확도의 가중치가 음성 신호 처리의 속도의 가중치보다 작은 값으로 설정된 경우, 음성 신호 처리의 정확도보다 속도의 비중이 높은 것으로 결정될 수 있다. 다시 말해, 제2 파라미터는 서비스의 상태에 대응하여 설정된 음성 신호 처리의 정확도의 가중치 및 음성 신호 처리의 속도의 가중치에 기초하여 결정될 수 있다.
일 예로, 제2 파라미터는 서비스의 상태에 대응하여 예측된 음성 신호의 정보량에 기초하여 결정될 수 있다. 예측된 음성 신호의 정보량이 클수록 음성 신호 처리의 속도보다 정확도의 비중이 더 높은 것으로 판단될 수 있다. 일 예로, 서비스의 진행 단계 중 객관식의 대답(예: '예' 혹은 '아니오')을 요구하는 단계는 음성 신호의 정보량이 일정 기준 미만일 것으로 예측되는 서비스의 상태 혹은 음성 신호 처리의 정확도보다 속도의 비중이 높은 서비스의 상태에 해당할 수 있다. 한편, 서비스의 진행 단계 중 주관식의 대답(예: 주소)을 요구하는 단계는 음성 신호의 정보량이 일정 기준 이상일 것으로 예측되는 서비스의 상태 혹은 음성 신호 처리의 속도보다 정확도의 비중이 높은 서비스의 상태에 해당할 수 있다.
예를 들어, 제2 파라미터는 음성 신호의 정보량이 일정 기준 이상일 것으로 예측되는 서비스의 상태를 지시하는 제5 값 혹은 음성 신호의 정보량이 일정 기준 미만일 것으로 예측되는 서비스의 상태를 지시하는 제6값으로 결정될 수 있다. 제2 파라미터가 제5 값으로 설정된 경우, 제6 값으로 설정된 경우보다 홀드타임이 더 긴 기간을 지시하는 값으로 결정될 수 있다.
일 실시 예에 따르면, 제2 파라미터는 서비스의 상태에 대응하는 인식 시간의 임계 값을 포함할 수 있다. 인식 시간의 임계 값은 음성 신호의 수신이 가능한 시간의 최대 값으로, 인식 기능이 호출된 시점부터 인식 시간의 임계 값까지의 기간 동안 음성 신호가 수신될 수 있다. 인식 시간의 임계 값은 서비스의 상태에 대응하여 미리 결정될 수 있다. 예를 들어, 서비스의 상태가 음성 신호 처리의 정확도보다 속도의 비중이 높은 상태인 경우, 제2 파라미터는 제1 임계 값(예: 10초)을 포함할 수 있다. 서비스의 상태가 음성 신호 처리의 속도보다 정확도의 비중이 높은 상태인 경우, 제2 파라미터는 제2 임계 값(예: 15초)을 포함할 수 있다. 제1 임계 값은 제2 임계 값보다 짧은 기간을 지시하는 값에 해당할 수 있다.
일 실시 예에 따르면, 제2 파라미터는 서비스의 상태에 대응하는 디폴트 홀드타임 값을 포함할 수 있다. 디폴트 홀드타임은 제2 파라미터에 대응하여 디폴트로 설정되는 홀드타임에 해당할 수 있다. 홀드타임은 제1 파라미터에 기초하여, 디폴트 홀드타임을 기준으로 결정될 수 있다. 디폴트 홀드타임은 서비스의 상태에 대응하여 미리 결정될 수 있다. 예를 들어, 서비스의 상태가 음성 신호 처리의 정확도보다 속도의 비중이 높은 상태인 경우, 제2 파라미터는 제1 디폴트 홀드타임 값(예: 1초)을 포함할 수 있다. 서비스의 상태가 음성 신호 처리의 속도보다 정확도의 비중이 높은 상태인 경우, 제2 파라미터는 제2 디폴트 홀드타임 값(예: 1.5초)으로 결정될 수 있다. 제1 디폴트 홀드타임 값은 제2 디폴트 홀드타임 값보다 짧은 기간을 지시하는 값에 해당할 수 있다.
일 실시 예에 따르면, 홀드타임은 제1 파라미터 및 제2 파라미터에 기초하여 결정될 수 있다. 일 예로, 묵음 구간의 홀드타임을 결정하는 단계(130)는 제2 파라미터에 대응하는 홀드타임 셋(set)을 결정하는 단계, 제1 파라미터의 값이 음성 인식 결과는 종결된 문장임을 지시하는 값으로 결정된 경우, 묵음 구간의 홀드타임을 결정된 홀드타임 셋에 포함된 제1 홀드타임으로 결정하는 단계 및 제1 파라미터의 값이 음성 인식 결과는 종결된 문장이 아님을 지시하는 값으로 결정된 경우, 묵음 구간의 홀드타임을 결정된 홀드타임 셋에 포함된 제2 홀드타임으로 결정하는 단계를 포함할 수 있다. 제1 홀드타임은 제2 홀드타임보다 짧은 기간을 지시하는 값에 해당할 수 있다.
예를 들어, 도 2a를 참조하면, 제2 파라미터의 값에 따라 set 1(211), set 2(212) 및 set 3(213)을 포함하는 홀드타임 셋(set)들 중 어느 하나의 셋이 선택될 수 있다. 홀드타임 셋들(211, 212, 213)에 포함된 홀드타임들은 서로 다른 값에 해당할 수 있으며, 각 홀드타임 셋은 서로 다른 제2 파라미터의 값에 매핑될 수 있다. 예를 들어, 제2 파라미터의 값이 a인 경우, 제2 파라미터의 값에 set 1(211)이 매핑될 수 있고, 제2 파라미터의 값이 b인 경우, 제2 파라미터의 값에 set 2(212)가 매핑될 수 있으며, 제2 파라미터의 값이 c인 경우, 제2 파라미터의 값에 set 3(213)이 매핑될 수 있다.
일 예로, 제2 파라미터의 값에 따라 set 1(211)이 선택된 경우, 제1 파라미터의 값에 따라 set 1(211)에 포함된 0.5초 및 1초 중 어느 하나로 묵음 구간에 대응하는 홀드타임이 결정될 수 있다. 제1 파라미터가 음성 인식 결과는 종결된 문장임을 지시하는 값으로 결정된 경우, 홀드타임은 set 1(211)에서 더 짧은 기간을 지시하는 값인 0.5초로 결정될 수 있다. 제1 파라미터가 음성 인식 결과는 종결된 문장이 아님을 지시하는 값으로 결정된 경우, 홀드타임은 set 1(211)에서 더 긴 기간을 지시하는 값인 1초로 결정될 수 있다.
또 일 예로, 묵음 구간의 홀드타임을 결정하는 단계(130)는 제2 파라미터에 대응하는 홀드타임의 범위를 결정하는 단계 및 제1 파라미터의 값이 음성 인식 결과가 종결된 문장일 확률을 지시하는 값으로 결정된 경우, 결정된 홀드타임의 범위 내 제1 파라미터에 기초한 값으로 묵음 구간의 홀드타임을 결정하는 단계를 포함할 수 있다.
예를 들어, 도 2b를 참조하면, 제2 파라미터는 서비스의 상태에 대응하는 인식 시간의 임계 값(Tmax)(221)으로 결정될 수 있다. 인식 시간의 임계 값(Tmax)(221)에 기초하여 홀드타임의 범위가 결정될 수 있다. 예를 들어, 홀드타임의 범위는 인식 시간의 임계 값(Tmax)(221)에서 묵음 구간의 시작점(222)에 대응하는 값을 뺀 시간으로 결정될 수 있다. 인식 시간의 임계 값(Tmax)(221)이 10초이고, 묵음 구간의 시작점(222)이 5초인 경우를 가정하면, 홀드타임의 범위는 10-5=5초로 결정될 수 있다.
일 실시 예에 따르면, 홀드타임(223)은 제1 파라미터의 값에 기초하여 홀드타임의 범위 내의 값으로 결정될 수 있다. 예를 들어, 제1 파라미터의 값이 음성 인식 결과가 종결된 문장일 확률을 지시하는 값으로 결정된 경우, 홀드타임(223)은 홀드타임의 범위 내에서 제1 파라미터에 반비례하는 값으로 결정될 수 있다. 혹은 홀드타임(223)은 홀드타임의 범위 내에서 음성 인식 결과가 종결된 문장이 아닐 확률에 비례하는 값으로 결정될 수 있다. 음성 인식 결과가 종결된 문장이 아닐 확률은 제1 파라미터의 값에 기초하여 이 계산될 수 있다. 예를 들어, 음성 인식 결과가 종결된 문장이 아닐 확률은 제1 파라미터의 값의 1에 대한 보수로 계산될 수 있다.
일 실시 예에 따르면, 홀드타임(223)은 제1 파라미터의 값에 기초하여 홀드타임의 범위 내이며, 디폴트 홀드타임(224) 이상의 값으로 결정될 수 있다. 예를 들어, 제1 파라미터의 값이 음성 인식 결과가 종결된 문장일 확률을 지시하는 값으로 결정된 경우, 홀드타임(223)은 홀드타임의 범위 내이고, 디폴트 홀드타임(224) 이상의 값이며, 제1 파라미터에 반비례하는 값으로 결정될 수 있다. 혹은 홀드타임(223)은 홀드타임의 범위 내이고, 디폴트 홀드타임(224) 이상의 값이며, 음성 인식 결과가 종결된 문장이 아닐 확률에 비례하는 값으로 결정될 수 있다.
일 실시 예에 따른 프로세서는 결정된 홀드타임에 기초하여, 수신된 음성 신호에서 발화 구간을 검출(140)할 수 있다. 발화 구간을 검출하는 단계(140)는 묵음 구간의 지속 시간이 결정된 홀드타임을 초과하는 경우, 수신된 음성 신호에서 발화가 인식된 시점부터 묵음 구간의 시작점까지의 구간을 발화 구간으로 검출하는 단계를 포함할 수 있다. 묵음 구간의 지속 시간이 결정된 홀드타임을 초과하는 경우, 발화가 종료된 것으로 판단될 수 있다. 프로세서는 발화가 종료된 것으로 판단된 경우, 발화 시작점과 묵음 구간 시작점 사이를 발화 구간으로 검출할 수 있다.
예를 들어, 도 3a를 참조하면, 묵음 구간의 시작점(303) 이후, 홀드타임(Th)에 대응하는 기간(312) 동안 발화가 인식되지 않는 경우, 묵음 구간의 지속 시간이 홀드타임을 초과하는 것으로 판단될 수 있다. 묵음 구간의 지속 시간이 홀드타임을 초과한 경우, 발화는 종료된 것으로 판단될 수 있다. 수신된 음성 신호에서 발화가 인식된 시점(302)부터 묵음 구간의 시작점(303)까지의 구간(311)이 발화 구간으로 검출될 수 있다. 수신된 음성 신호에서 발화가 인식된 시점(302)은 음성 인식이 시작된 시점(301) 이후에 최초로 발화가 인식된 시점에 해당할 수 있다.
일 실시 예에 따른 발화 구간을 검출하는 단계(140)는 묵음 구간의 지속 시간이 결정된 홀드타임을 초과하지 않는 경우, 수신된 음성 신호에 대한 음성 인식을 수행하는 단계를 포함할 수 있다.
예를 들어, 도 3b를 참조하면, 묵음 구간의 시작점(306) 이후, 홀드타임(Th)에 대응하는 기간(322) 내의 시점(307)에 발화가 인식되는 경우, 묵음 구간의 지속 시간이 홀드타임을 초과하지 않는 것으로 판단될 수 있다. 발화는 수신된 음성 신호에서 발화가 인식된 시점(305)부터 종료되지 않고 지속 중인 것으로 판단될 수 있다. 수신된 음성 신호에 대한 음성 인식이 계속하여 수행될 수 있다. 이 경우, 발화가 인식된 시점(305)부터 묵음 구간의 시작점(306)까지의 구간(321)은 별도의 발화 구간으로 검출되지 않고, 이후 홀드타임을 초과하는 새로운 묵음 구간이 발생하면, 발화가 인식된 시점(305)부터 새로운 묵음 구간의 시작점까지의 구간이 발화 구간으로 검출될 수 있다. 수신된 음성 신호에서 발화가 인식된 시점(305)은 음성 인식이 시작된 시점(304) 이후에 최초로 발화가 인식된 시점에 해당할 수 있다.
일 실시 예에 따른 발화 구간은 음성 신호가 처리되는 단위에 해당할 수 있다. 음성 신호의 처리는 음성 신호에 포함된 발화 내용을 분석하여, 발화 내용에 대응하는 응답을 생성하는 동작에 해당할 수 있다. 음성 신호의 처리는 자연어 처리 알고리즘을 이용하여 수행될 수 있다. 발화 구간에 대응하는 음성 신호의 처리 결과로 발화 내용에 대응하는 응답이 생성될 수 있다. 예를 들어, "엄마한테 메시지 보내"의 발화를 포함하는 음성 신호의 처리 결과로 '엄마'의 식별자에 대응하여 저장된 번호를 수신자로 하는 메시지 전송창을 호출하기 위한 명령어가 생성될 수 있다.
도 4는 일 실시 예에 따른 사전 기반 문장 종결 예측 모델의 생성 방법을 설명하기 위한 도면이다.
상술한 바와 같이, 사전 기반 문장 종결 예측 모델은 문장의 종결 어미에 해당하는 단어를 저장하는 사전(이하, '종결 어미 사전'으로 지칭함)에 기초하여, 음성 인식 결과의 마지막 단어가 문장의 종결 어미에 해당하는지 여부의 판단 결과를 출력하는 모델에 해당할 수 있다.
도 4를 참조하면, 종결 어미 사전(401)은 복수의 문장을 포함하는 코퍼스를 획득하는 단계(410), 코퍼스에 포함된 복수의 문장들 각각에서 종결 어미를 추출하는 단계(420) 및 추출된 종결 어미들 중 고빈도의 종결 어미를 추출하는 단계(430)에 의해 생성될 수 있다.
일 실시 예에 따르면, 단계(410)에서 획득된 코퍼스는 복수의 문장들을 포함할 수 있다. 예를 들어, 코퍼스는 음성 신호 처리 방법이 이용되는 서비스에 관하여 수신된 문장 및/또는 음성 신호 처리 방법이 이용되는 서비스에 관하여 수신될 것으로 예상되는 문장을 포함할 수 있다. 코퍼스는 반드시 문법상 완전한 문장만을 포함하는 것으로 한정되지 않는다. 예를 들어, "오늘 날씨"와 같이 완전하지 않은 형태의 문장을 포함할 수 있다.
일 실시 예에 따르면, 코퍼스에 포함된 문장은 일정 규칙에 따라 일정 단위로 분리될 수 있다. 예를 들어, 코퍼스에 포함된 문장은 공백 문자를 기준으로 어절 단위로 분리될 수 있다. 예를 들어, 코퍼스에 포함된 문장에 대한 형태소 분석이 수행될 수 있으며, 형태소 분석 결과 문장은 형태소 단위로 분리될 수 있다. 이하에서, 코퍼스에 포함된 문장은 형태소 분석에 의해 형태소 단위로 분리되는 경우를 예로 들어 설명한다.
일 실시 예에 따르면, 단계(420)에 따라 형태소 분석에 의해 문장을 형태소로 분리한 결과, 문장의 가장 마지막에 위치한 형태소는 종결 어미로 추출될 수 있다. 추출된 종결 어미는 문법상 종결 어미에 해당하지 않을 수도 있다. 예를 들어, "오늘 날씨"는 형태소 분석 결과 "오늘" 및 "날씨"의 형태소 단위로 분리될 수 있으며, 문장의 가장 마지막에 위치한 "날씨"는 문법상 종결 어미에 해당하지 않으나, 문장의 가장 마지막에 위치하는 형태소에 해당하므로 종결 어미로 추출될 수 있다.
일 실시 예에 따르면, 단계(430)는 추출된 종결 어미들 중 빈도가 높은 순으로 상위 N개의 종결 어미를 추출하는 단계를 포함할 수 있다. 단계(430)에 따라 추출된 고빈도의 상위 N개의 종결 어미는 종결 어미 사전(401)에 저장될 수 있다. 사전 기반 문장 종결 예측 모델에서 종결 어미 사전(401)은 임의의 문장이 종결된 문장인지 여부를 판단하기 위해 이용될 수 있다. 예를 들어, 문장의 가장 마지막에 위치한 형태소가 종결 어미 사전(401)에 저장된 경우, 해당 문장은 종결 어미로 완결된 문장에 해당하므로 종결된 문장으로 판단될 수 있다.
도 5는 일 실시 예에 따른 n-gram 기반 문장 종결 예측 모델의 생성 방법을 설명하기 위한 도면이다.
상술한 바와 같이, n-gram 기반 문장 종결 예측 모델은 문장의 토큰 단위 별 n-gram 확률에 기초하여, 음성 인식 결과의 마지막 토큰 다음에 문장의 종결을 지시하는 토큰이 올 확률을 출력하는 모델에 해당할 수 있다. n-gram 확률은 n-1개의 토큰 다음에 특정 토큰이 올 확률로, 코퍼스에 저장된 n-gram의 빈도에 기초하여 통계적으로 계산될 수 있다.
도 5를 참조하면, n-gram 빈도(501)는 복수의 문장을 포함하는 코퍼스를 획득하는 단계(510), 코퍼스에 포함된 복수의 문장들 각각에 대한 형태소 분석을 수행하는 단계(520) 및 형태소 분석 결과에 기초하여, n-gram을 생성하는 단계(530)에 의해 생성될 수 있다.
일 실시 예에 따르면, 단계(510)에서 획득된 코퍼스는 복수의 문장들을 포함할 수 있다. 예를 들어, 코퍼스는 음성 신호 처리 방법과 연동된 서비스에 관하여 수신된 문장 및/또는 음성 신호 처리 방법과 연동된 서비스에 관하여 수신될 것으로 예상되는 문장을 포함할 수 있다. 코퍼스는 반드시 문법상 완전한 문장만을 포함하는 것으로 한정되지 않는다. 예를 들어, "오늘 날씨"와 같이 완전하지 않은 형태의 문장을 포함할 수 있다.
일 실시 예에 따른 단계(520)는 코퍼스에 포함된 복수의 문장들 각각에 대하여, 형태소 분석을 수행하는 단계를 포함할 수 있다. 복수의 문장들 각각은 형태소 분석에 의해 형태소 단위로 분리될 수 있다.
일 실시 예에 따른 단계(530)는 형태소 단위로 분리된 문장에서 n개의 연속적인 토큰의 나열을 획득하는 단계를 포함할 수 있다. n-gram은 n개의 연속적인 토큰의 나열로, 토큰은 형태소 단위를 포함할 수 있다. n-gram은 토큰 단위로 분리된 문장의 시작 부분에 문장의 시작을 지시하는 토큰(예: <s>)이 추가되고, 문장의 끝 부분에 문장의 종결을 지시하는 토큰(예: </s>)이 추가된 문장에 포함된 n개의 토큰의 나열을 포함할 수 있다. 예를 들어 "오늘 날씨"의 문장의 시작과 끝에 문장의 시작을 지시하는 토큰(예: <s>) 및 문장의 종결을 지시하는 토큰(예: </s>)이 추가되어, "오늘 날씨"의 문장은 "<s>/오늘/날씨/</s>"와 같이 토큰 단위로 분리될 수 있다. n이 3인 경우, "<s>/오늘/날씨/</s>"에서 3개의 토큰의 나열인 "<s>-오늘-날씨" 및 "오늘-날씨-</s>"의 2개의 n-gram이 생성될 수 있다.
일 실시 예에 따르면, n-gram 빈도(501)는 단계(530)에 따라 생성된 각 n-gram의 빈도 데이터를 포함할 수 있다. n-gram 빈도(501)는 n-1개의 토큰 다음에 특정 토큰이 올 확률인 n-gram 확률 계산에 이용될 수 있다.
예를 들어, n-1개의 토큰 t1-t2--tn-1 다음에 토큰 x가 올 확률은 P(x|t1-t2--tn-1 )로 표시할 수 있으며, P(x|t1-t2--tn-1 )은 t1-t2--tn-1-x 의 빈도수 /t1-t2--tn-1의 빈도수로 계산될 수 있다. t1-t2--tn-1 의 빈도수는 마지막 n번째 토큰의 종류에 상관없이 t1-t2--tn-1 을 포함하는 n-gram의 빈도수를 의미할 수 있다.
일 실시 예에 따르면, 임의의 문장이 종결된 문장일 확률은 해당 문장에 포함된 마지막 n-1개의 토큰 다음에 문장의 종결을 지시하는 토큰(예: </s>)이 올 확률에 해당할 수 있다. n-gram 기반 문장 종결 예측 모델은 n-gram 빈도(501)에 기초하여, 음성 인식 결과의 마지막 n-1개의 토큰의 나열 다음에 문장의 종결을 지시하는 토큰 </s>이 올 확률을 계산할 수 있다.
예를 들어, "엄마한테”의 문장이 종결된 문장일 확률은 아래의 수학식 1과 같이 계산될 수 있다.
[수학식 1]
예를 들어, “노래 틀어”의 문장이 종결된 문장일 확률은 아래의 수학식 2와 같이 계산될 수 있다.
[수학식 2]
도 6은 일 실시 예에 따른 학습 기반 문장 종결 예측 모델의 생성 방법을 설명하기 위한 도면이다.
상술한 바와 같이, 학습 기반 문장 종결 예측 모델은 입력된 문장의 종결 여부를 출력하도록 학습된 뉴럴 네트워크를 포함할 수 있다.
도 6을 참조하면, 뉴럴 네트워크(603)는 문장의 종결 여부의 정답 데이터(602)가 포함된 문장(601)을 학습 데이터로 하여, 문장의 종결 여부의 판단 결과를 출력하도록 학습될 수 있다. 학습 데이터에 포함된 문장(601)은 뉴럴 네트워크(603)에 입력되기 위하여 단어-벡터열 변환(610) 동작에 의해 벡터열로 변환될 수 있다. 변환된 벡터열은 뉴럴 네트워크(603)에 입력될 수 있으며, 뉴럴 네트워크(603)는 종결 여부에 관한 정답 데이터를 출력하도록 학습될 수 있다.
일 실시 예에 따른 학습된 뉴럴 네트워크(603)는 입력된 문장이 종결된 문장일 확률을 출력할 수 있다. 예를 들어, 학습된 뉴럴 네트워크(603)는 종결되지 않은 문장이 입력된 경우, 0에 가까운 값을, 종결된 문장이 입력된 경우 1에 가까운 값을 출력할 수 있다.
도 7은 일 실시 예에 따른 서비스의 상태에 관한 제2 파라미터가 획득되는 방법을 설명하기 위한 도면이다.
도 7을 참조하면, 음성 인식 시스템(710)은 도 1을 통해 상술한 음성 신호 처리 방법을 수행하는 시스템에 해당할 수 있다. 대화 시스템(720)은 음성 신호를 입력 받아, 입력된 음성 신호에 대한 처리 결과를 제공하는 서비스를 수행하는 시스템을 포함할 수 있다. 대화 시스템(720)의 서비스는 음성 신호 처리 방법과 연동될 수 있다. 일 예로, 대화 시스템(720)은 음성 인식 시스템(710)의 음성 신호 처리 방법을 이용하여 입력된 음성 신호에 대한 처리 결과를 제공할 수 있다.
일 실시 예에 따르면, 대화 시스템(720)과 음성 인식 시스템(710)은 동일한 장치에서 동작할 수도 있고, 서로 다른 장치에서 동작할 수도 있다. 일 예로, 대화 시스템(720)과 음성 인식 시스템(710)은 음성 신호의 입력 장치를 포함하는 단말에서 동작할 수 있다. 또 일 예로, 대화 시스템(720)은 단말에서 동작할 수 있으며, 음성 인식 시스템(710)은 대화 시스템(720)이 실행되는 단말과 통신하는 서버에서 동작할 수 있다.
일 실시 예에 따른 음성 인식 시스템(710)은 대화 시스템(720)으로부터 서비스의 상태에 관한 제2 파라미터를 수신할 수 있다. 예를 들어, 대화 시스템(720)은 서비스의 진행 단계에 따른 제2 파라미터를 음성 인식 시스템(710)에 제공할 수 있다. 도 7은 제2 파라미터가 디폴트 홀드타임 및 인식 시간의 임계 값을 포함하는 것으로 가정한다.
예를 들어, 대화 시스템(720)의 서비스의 진행 단계는 본인 확인 단계(721), 주소 인식 단계(722) 및 최종 확인 단계(723)를 포함할 수 있다. 본인 확인 단계(721) 및 최종 확인 단계(723)에서 대화 시스템(720)은 [디폴트 홀드타임 = 0.5초, 인식 시간의 임계 값 = 10초]의 값을 갖는 제2 파라미터를 음성 인식 시스템(710)에 제공할 수 있다. 음성 인식 시스템(710)은 제1 파라미터 및 제2 파라미터에 기초하여, 묵음 구간의 홀드타임을 결정할 수 있다. 제1 파라미터는 각 서비스의 진행 단계(예: 본인 확인 단계(721) 혹은 최종 확인 단계(723))에서 수신된 음성 신호의 음성 인식 결과가 종결된 문장인지 여부에 기초하여 결정될 수 있다. 일 예로, 대화 시스템(720)은 각 서비스의 진행 단계에서 수신된 음성 신호를 음성 인식 시스템(710)에 전송할 수 있다.
예를 들어, 주소 인식 단계(722)에서 대화 시스템(720)은 [디폴트 홀드타임 = 1.0초, 인식 시간의 임계 값 = 30초]의 값을 갖는 제2 파라미터를 음성 인식 시스템(710)에 제공할 수 있다. 음성 인식 시스템(710)은 제1 파라미터 및 제2 파라미터에 기초하여, 묵음 구간의 홀드타임을 결정할 수 있다. 제1 파라미터는 주소 인식 단계(722)에서 수신된 음성 신호의 음성 인식 결과가 종결된 문장인지 여부에 기초하여 결정될 수 있다.
일 실시 예에 따르면, 본인 확인 단계(721) 및 최종 확인 단계(723)는 주소 인식 단계(722)에 비해 정보량이 적은 음성 신호가 수신될 것임이 예측될 수 있다. 혹은 본인 확인 단계(721) 및 최종 확인 단계(723)는 주소 인식 단계(722)에 비해 음성 신호 처리의 속도에 비중이 더 높은 단계에 해당할 수 있다. 이에, 제1 파라미터의 값이 동일하더라도, 제2 파라미터에 의해 본인 확인 단계(721) 및 최종 확인 단계(723)에 대응하여 결정된 묵음 구간의 홀드타임 값은 주소 인식 단계(722)에 대응하여 결정된 묵음 구간의 홀드타임 값보다 작은 값으로 결정될 수 있다.
도 8은 일 실시예에 따른 음성 신호의 처리를 위한 장치의 구성의 예시도이다.
도 8을 참조하면, 음성 신호의 처리를 위한 장치(800)는 프로세서(801), 메모리(803) 및 입출력 장치(805)를 포함한다. 일 실시 예에 따른 장치(800)는 도 1을 통하여 전술한 음성 신호 처리 방법을 수행하는 장치를 포함할 수 있다. 예를 들어, 장치(800)는 단말(예: 휴대폰, 스마트폰, 퍼스널 pc, 태블릿, 웨어러블 디바이스 등) 및/또는 서버를 포함할 수 있다.
일 실시 예에 따른 프로세서(801)는 도 1을 통하여 전술한 음성 신호 처리 방법의 적어도 하나의 동작을 수행할 수 있다. 예를 들어, 프로세서(801)는 도 1에 도시된 수신된 음성 신호에서 묵음 구간을 검출하는 단계(110), 수신된 음성 신호의 음성 인식 결과가 종결된 문장인지 여부에 관한 제1 파라미터를 획득하는 단계(120), 제1 파라미터 및 수신된 음성 신호에 대응하는 서비스의 상태에 관한 제2 파라미터에 기초하여, 묵음 구간의 홀드타임을 결정하는 단계(130) 및 결정된 홀드타임에 기초하여, 수신된 음성 신호에서 발화 구간을 검출하는 단계(140)의 동작 중 적어도 하나를 수행할 수 있다.
일 실시 예에 따른 메모리(803)는 휘발성 메모리 또는 비휘발성 메모리일 수 있으며, 도 1을 통하여 전술한 음성 신호 처리 방법에 관한 데이터를 저장할 수 있다. 일 예로, 메모리(803)는 음성 신호 처리 방법의 수행 과정에서 발생한 데이터 혹은 음성 신호 처리 방법을 수행하기 위하여 필요한 데이터를 저장할 수 있다. 예를 들어, 메모리(803)는 음성 인식 결과가 종결된 문장인지 여부를 판단하기 위한 문장 종결 예측 모델을 저장할 수 있으며, 제1 파라미터 및 제2 파라미터에 매핑된 홀드타임의 값을 저장할 수 있다.
일 실시 예에 따르면, 메모리(803)는 도 1을 통하여 전술한 음성 신호 처리 방법이 구현된 프로그램을 저장할 수 있다. 프로세서(801)는 메모리(803)에 저장된 프로그램을 실행하고, 장치(800)를 제어할 수 있다. 프로세서(801)에 의하여 실행되는 프로그램의 코드는 메모리(803)에 저장될 수 있다.
일 측에 따른 장치(800)는 입출력 장치(805)를 통하여 외부 장치(예를 들어, 퍼스널 컴퓨터 또는 네트워크)에 연결되고, 데이터를 교환할 수 있다. 예를 들어, 장치(800)는 입출력 장치(805)를 통해 음성 신호를 수신할 수 있으며, 음성 신호의 처리 결과를 출력할 수 있다.
일 실시 예에 따른 장치(800)는 도시되지 않은 다른 구성 요소들을 더 포함할 수 있다. 예를 들어, 장치(800)는 다른 장치와 통신을 위한 통신 모듈을 더 포함할 수 있다. 통신 모듈은 네트워크를 통해 장치(800)가 다른 전자 기기 또는 다른 서버와 통신하기 위한 기능을 제공할 수 있다. 예를 들어, 장치(800)는 통신 모듈을 통해 음성 신호 처리 방법과 연동된 서비스를 제공하는 다른 장치(예: 도 7의 대화 시스템(720))와 데이터를 송수신할 수 있다. 또 예를 들어, 장치(800)는 트랜시버(transceiver), 각종 센서, 데이터베이스 등과 같은 다른 구성 요소들을 더 포함할 수도 있다.
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 저장할 수 있으며 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
위에서 설명한 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 또는 복수의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 이를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (20)

  1. 프로세서에 의해 수행되는 음성 신호 처리 방법에 있어서,
    수신된 음성 신호에서 묵음 구간을 검출하는 단계;
    상기 수신된 음성 신호의 음성 인식 결과가 종결된 문장인지 여부에 관한 제1 파라미터를 획득하는 단계;
    상기 수신된 음성 신호에 대응하는 서비스의 상태에 설정된 음성 신호 처리의 정확도와 속도의 비중에 기초하여, 제2 파라미터를 획득하는 단계;
    상기 제1 파라미터 및 상기 제2 파라미터에 기초하여, 상기 묵음 구간의 홀드타임을 결정하는 단계; 및
    상기 결정된 홀드타임에 기초하여, 상기 수신된 음성 신호에서 발화 구간을 검출하는 단계
    를 포함하고,
    상기 홀드타임은 발화의 종료를 판단하기 위한 상기 묵음 구간의 지속 시간의 임계 값에 해당하는,
    음성 신호 처리 방법.
  2. 제1항에 있어서,
    상기 제1 파라미터를 획득하는 단계는
    문장의 종결 어미를 저장하는 사전에 기초하여, 상기 음성 인식 결과의 마지막 단어가 문장의 종결 어미인지 여부를 판단하는 단계; 및
    상기 마지막 단어가 문장의 종결 어미인지 여부의 판단에 기초하여, 상기 제1 파라미터의 값을 결정하는 단계
    를 포함하는,
    음성 신호 처리 방법.
  3. 제1항에 있어서,
    상기 제1 파라미터를 획득하는 단계는
    문장의 토큰 단위 별 n-gram 확률에 기초하여, 상기 음성 인식 결과의 마지막 토큰 다음에 문장의 종결을 지시하는 토큰이 올 확률을 획득하는 단계; 및
    상기 획득된 확률에 기초하여, 상기 제1 파라미터의 값을 결정하는 단계
    를 포함하는,
    음성 신호 처리 방법.
  4. 제1항에 있어서,
    상기 제1 파라미터를 획득하는 단계는
    입력된 문장의 종결 여부를 출력하도록 학습된 뉴럴 네트워크(neural network)에 기초하여, 상기 음성 인식 결과가 종결된 문장일 확률을 획득하는 단계; 및
    상기 획득된 확률에 기초하여, 상기 제1 파라미터의 값을 결정하는 단계
    를 포함하는,
    음성 신호 처리 방법.
  5. 제1항에 있어서,
    상기 묵음 구간의 홀드타임을 결정하는 단계는
    상기 제2 파라미터에 대응하는 홀드타임 셋(set)을 결정하는 단계;
    상기 제1 파라미터의 값이 상기 음성 인식 결과는 종결된 문장임을 지시하는 값으로 결정된 경우, 상기 묵음 구간의 홀드타임을 상기 결정된 홀드타임 셋에 포함된 제1 홀드타임으로 결정하는 단계; 및
    상기 제1 파라미터의 값이 상기 음성 인식 결과는 종결된 문장이 아님을 지시하는 값으로 결정된 경우, 상기 묵음 구간의 홀드타임을 상기 결정된 홀드타임 셋에 포함된 제2 홀드타임으로 결정하는 단계
    를 포함하고,
    상기 제1 홀드타임은 상기 제2 홀드타임보다 짧은 기간을 지시하는,
    음성 신호 처리 방법.
  6. 제1항에 있어서,
    상기 묵음 구간의 홀드타임을 결정하는 단계는
    상기 제2 파라미터에 대응하는 홀드타임의 범위를 결정하는 단계; 및
    상기 제1 파라미터의 값이 상기 음성 인식 결과가 종결된 문장일 확률을 지시하는 값으로 결정된 경우, 상기 결정된 홀드타임의 범위 내 상기 제1 파라미터에 기초한 값으로 상기 묵음 구간의 홀드타임을 결정하는 단계
    를 포함하는,
    음성 신호 처리 방법.
  7. 제1항에 있어서,
    상기 서비스의 상태에 대응하여 설정된 상기 음성 신호 처리의 정확도의 비중이 상기 음성 신호 처리의 속도의 비중보다 큰 경우, 상기 제2 파라미터는 제1 값으로 결정되고,
    상기 서비스의 상태에 대응하여 설정된 상기 음성 신호 처리의 속도의 비중이 상기 음성 신호 처리의 정확도의 비중보다 큰 경우, 상기 제2 파라미터는 제2 값으로 결정되며,
    상기 제1 값으로 결정된 상기 제2 파라미터 및 상기 제1 파라미터에 기초하여 결정된 홀드타임은, 상기 제2 값으로 결정된 상기 제2 파라미터 및 상기 제1 파라미터에 기초하여 결정된 홀드타임보다 긴 기간을 지시하는,
    음성 신호 처리 방법.
  8. 제1항에 있어서,
    상기 발화 구간을 검출하는 단계는
    상기 묵음 구간의 지속 시간이 상기 결정된 홀드타임을 초과하는 경우, 상기 수신된 음성 신호에서 발화가 인식된 시점부터 상기 묵음 구간의 시작점까지의 구간을 상기 발화 구간으로 검출하는 단계; 및
    상기 묵음 구간의 지속 시간이 상기 결정된 홀드타임을 초과하지 않는 경우, 상기 수신된 음성 신호에 대한 음성 인식을 수행하는 단계
    를 포함하는,
    음성 신호 처리 방법.
  9. 제1항에 있어서,
    음성 인식 기능의 호출에 반응하여, 상기 음성 신호를 수신하는 단계; 및
    상기 수신된 음성 신호에 대한 음성 인식을 수행하는 단계
    를 더 포함하는,
    음성 신호 처리 방법.
  10. 제1항에 있어서,
    상기 수신된 음성 신호에서 발화가 인식된 시점을 검출 대상인 상기 발화 구간의 시작점으로 식별하는 단계
    를 더 포함하는,
    음성 신호 처리 방법.
  11. 하드웨어와 결합되어 제1항 내지 제10항 중 어느 하나의 항의 방법을 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램.
  12. 음성 신호의 처리를 위한 장치에 있어서,
    수신된 음성 신호에서 묵음 구간을 검출하고,
    상기 수신된 음성 신호의 음성 인식 결과가 종결된 문장인지 여부에 관한 제1 파라미터를 획득하고,
    상기 수신된 음성 신호에 대응하는 서비스의 상태에 설정된 음성 신호 처리의 정확도와 속도의 비중에 기초하여, 제2 파라미터를 획득하고,
    상기 제1 파라미터 및 상기 수신된 음성 신호에 대응하는 서비스의 상태에 관한 제2 파라미터에 기초하여, 상기 묵음 구간의 홀드타임을 결정하며,
    상기 결정된 홀드타임에 기초하여, 상기 수신된 음성 신호에서 발화 구간을 검출하는,
    적어도 하나의 프로세서
    를 포함하고,
    상기 홀드타임은 발화의 종료를 판단하기 위한 상기 묵음 구간의 지속 시간의 임계 값에 해당하는,
    장치.
  13. 제12항에 있어서,
    상기 프로세서는,
    상기 제1 파라미터를 획득함에 있어서,
    문장의 종결 어미를 저장하는 사전에 기초하여, 상기 음성 인식 결과의 마지막 단어가 문장의 종결 어미인지 여부를 판단하고,
    상기 마지막 단어가 문장의 종결 어미인지 여부의 판단에 기초하여, 상기 제1 파라미터의 값을 결정하는,
    장치.
  14. 제12항에 있어서,
    상기 프로세서는,
    상기 제1 파라미터를 획득함에 있어서,
    문장의 토큰 단위 별 n-gram 확률에 기초하여, 상기 음성 인식 결과의 마지막 토큰 다음에 문장의 종결을 지시하는 토큰이 올 확률을 획득하고,
    상기 획득된 확률에 기초하여, 상기 제1 파라미터의 값을 결정하는,
    장치.
  15. 제12항에 있어서,
    상기 프로세서는,
    상기 제1 파라미터를 획득함에 있어서,
    입력된 문장의 종결 여부를 출력하도록 학습된 뉴럴 네트워크(neural network)에 기초하여, 상기 음성 인식 결과가 종결된 문장일 확률을 획득하고,
    상기 획득된 확률에 기초하여, 상기 제1 파라미터의 값을 결정하는,
    장치.
  16. 제12항에 있어서,
    상기 프로세서는,
    상기 묵음 구간의 홀드타임을 결정함에 있어서,
    상기 제2 파라미터에 대응하는 홀드타임 셋(set)을 결정하고,
    상기 제1 파라미터의 값이 상기 음성 인식 결과는 종결된 문장임을 지시하는 값으로 결정된 경우, 상기 묵음 구간의 홀드타임을 상기 결정된 홀드타임 셋에 포함된 제1 홀드타임으로 결정하고,
    상기 제1 파라미터의 값이 상기 음성 인식 결과는 종결된 문장이 아님을 지시하는 값으로 결정된 경우, 상기 묵음 구간의 홀드타임을 상기 결정된 홀드타임 셋에 포함된 제2 홀드타임으로 결정하며,
    상기 제1 홀드타임은 상기 제2 홀드타임보다 짧은 기간을 지시하는,
    장치.
  17. 제12항에 있어서,
    상기 프로세서는,
    상기 묵음 구간의 홀드타임을 결정함에 있어서,
    상기 제2 파라미터에 대응하는 홀드타임의 범위를 결정하고,
    상기 제1 파라미터의 값이 상기 음성 인식 결과가 종결된 문장일 확률을 지시하는 값으로 결정된 경우, 상기 결정된 홀드타임의 범위 내 상기 제1 파라미터에 기초한 값으로 상기 묵음 구간의 홀드타임을 결정하는,
    장치.
  18. 제12항에 있어서,
    상기 서비스의 상태에 대응하여 설정된 상기 음성 신호 처리의 정확도의 비중이 상기 음성 신호 처리의 속도의 비중보다 큰 경우, 상기 제2 파라미터는 제1 값으로 결정되고,
    상기 서비스의 상태에 대응하여 설정된 상기 음성 신호 처리의 속도의 비중이 상기 음성 신호 처리의 정확도의 비중보다 큰 경우, 상기 제2 파라미터는 제2 값으로 결정되며,
    상기 제1 값으로 결정된 상기 제2 파라미터 및 상기 제1 파라미터에 기초하여 결정된 홀드타임은, 상기 제2 값으로 결정된 상기 제2 파라미터 및 상기 제1 파라미터에 기초하여 결정된 홀드타임보다 긴 기간을 지시하는,
    장치.
  19. 제12항에 있어서,
    상기 프로세서는,
    상기 발화 구간을 검출함에 있어서,
    상기 묵음 구간의 지속 시간이 상기 결정된 홀드타임을 초과하는 경우, 상기 수신된 음성 신호에서 발화가 인식된 시점부터 상기 묵음 구간의 시작점까지의 구간을 상기 발화 구간으로 검출하고,
    상기 묵음 구간의 지속 시간이 상기 결정된 홀드타임을 초과하지 않는 경우, 상기 수신된 음성 신호에 대한 음성 인식을 수행하는,
    장치.
  20. 제12항에 있어서,
    상기 프로세서는,
    음성 인식 기능의 호출에 반응하여, 상기 음성 신호를 수신하고,
    상기 수신된 음성 신호에 대한 음성 인식을 수행하는,
    장치.



KR1020220098806A 2022-08-08 2022-08-08 음성 신호 처리 방법 및 장치 Active KR102851233B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220098806A KR102851233B1 (ko) 2022-08-08 2022-08-08 음성 신호 처리 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220098806A KR102851233B1 (ko) 2022-08-08 2022-08-08 음성 신호 처리 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20240020574A KR20240020574A (ko) 2024-02-15
KR102851233B1 true KR102851233B1 (ko) 2025-08-27

Family

ID=89899119

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220098806A Active KR102851233B1 (ko) 2022-08-08 2022-08-08 음성 신호 처리 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102851233B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101697651B1 (ko) 2012-12-13 2017-01-18 한국전자통신연구원 음성 신호의 검출 방법 및 장치
KR102359216B1 (ko) * 2016-10-26 2022-02-07 딥마인드 테크놀로지스 리미티드 신경망을 이용한 텍스트 시퀀스 처리

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101943381B1 (ko) * 2016-08-22 2019-01-29 에스케이텔레콤 주식회사 심층 신경망을 이용한 음성 끝점 검출 방법 및 이를 위한 끝점 검출 장치
KR102847032B1 (ko) 2017-01-17 2025-08-20 삼성전자주식회사 발화 완료 감지 방법 및 이를 구현한 전자 장치
KR20180084392A (ko) * 2017-01-17 2018-07-25 삼성전자주식회사 전자 장치 및 그의 동작 방법
KR20210026872A (ko) * 2019-09-02 2021-03-10 한국전자통신연구원 자동 통역 장치 및 그의 통역 단위 문자열 구성 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101697651B1 (ko) 2012-12-13 2017-01-18 한국전자통신연구원 음성 신호의 검출 방법 및 장치
KR102359216B1 (ko) * 2016-10-26 2022-02-07 딥마인드 테크놀로지스 리미티드 신경망을 이용한 텍스트 시퀀스 처리

Also Published As

Publication number Publication date
KR20240020574A (ko) 2024-02-15

Similar Documents

Publication Publication Date Title
CN111933129B (zh) 音频处理方法、语言模型的训练方法、装置及计算机设备
KR102222317B1 (ko) 음성 인식 방법, 전자 디바이스, 및 컴퓨터 저장 매체
US12142271B2 (en) Cross-device voiceprint recognition
CN111402891B (zh) 语音识别方法、装置、设备和存储介质
CN109686383B (zh) 一种语音分析方法、装置及存储介质
CN112825248B (zh) 语音处理方法、模型训练方法、界面显示方法及设备
US20250201267A1 (en) Method and apparatus for emotion recognition in real-time based on multimodal
US10224030B1 (en) Dynamic gazetteers for personalized entity recognition
CN114155839B (zh) 一种语音端点检测方法、装置、设备及存储介质
KR20210047709A (ko) 음성 인식 방법 및 음성 인식 장치
US11276403B2 (en) Natural language speech processing application selection
US11615787B2 (en) Dialogue system and method of controlling the same
US12087305B2 (en) Speech processing
CN112037772B (zh) 基于多模态的响应义务检测方法、系统及装置
CN115132170B (zh) 语种分类方法、装置及计算机可读存储介质
US20220020361A1 (en) Systems and methods for fast filtering of audio keyword search
CN112002349A (zh) 一种语音端点检测方法及装置
CN112669842A (zh) 人机对话控制方法、装置、计算机设备及存储介质
CN110853669B (zh) 音频识别方法、装置及设备
KR20210081166A (ko) 다국어 음성 환경에서의 언어 식별 장치 및 방법
CN111816164B (zh) 用于语音识别的方法及设备
US11551666B1 (en) Natural language processing
KR102851233B1 (ko) 음성 신호 처리 방법 및 장치
KR102076212B1 (ko) 스피치 인식 장치의 동작 방법
CN114203159B (zh) 语音情感识别方法、终端设备及计算机可读存储介质

Legal Events

Date Code Title Description
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

D13-X000 Search requested

St.27 status event code: A-1-2-D10-D13-srh-X000

D14-X000 Search report completed

St.27 status event code: A-1-2-D10-D14-srh-X000

R18-X000 Changes to party contact information recorded

St.27 status event code: A-3-3-R10-R18-oth-X000

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

P22-X000 Classification modified

St.27 status event code: A-2-2-P10-P22-nap-X000

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U11-oth-PR1002

Fee payment year number: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601