KR102579130B1 - 다중경로 ctc 정렬 기반의 음성 인식 및 본인 검증을 지원하는 시스템 및 방법 - Google Patents

다중경로 ctc 정렬 기반의 음성 인식 및 본인 검증을 지원하는 시스템 및 방법 Download PDF

Info

Publication number
KR102579130B1
KR102579130B1 KR1020230011977A KR20230011977A KR102579130B1 KR 102579130 B1 KR102579130 B1 KR 102579130B1 KR 1020230011977 A KR1020230011977 A KR 1020230011977A KR 20230011977 A KR20230011977 A KR 20230011977A KR 102579130 B1 KR102579130 B1 KR 102579130B1
Authority
KR
South Korea
Prior art keywords
symbol
phonetic
phonetic symbol
ctc
path
Prior art date
Application number
KR1020230011977A
Other languages
English (en)
Inventor
전하린
김도현
강병진
주경돈
정지원
Original Assignee
주식회사 퍼즐에이아이
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 퍼즐에이아이 filed Critical 주식회사 퍼즐에이아이
Priority to KR1020230011977A priority Critical patent/KR102579130B1/ko
Application granted granted Critical
Publication of KR102579130B1 publication Critical patent/KR102579130B1/ko

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L17/00Speaker identification or verification
    • G10L17/22Interactive procedures; Man-machine interfaces
    • G10L17/24Interactive procedures; Man-machine interfaces the user being prompted to utter a password or a predefined phrase
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/32User authentication using biometric data, e.g. fingerprints, iris scans or voiceprints
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/04Segmentation; Word boundary detection
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L17/00Speaker identification or verification
    • G10L17/06Decision making techniques; Pattern matching strategies
    • G10L17/14Use of phonemic categorisation or speech recognition prior to speaker recognition or verification
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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

Abstract

본 발명의 일 실시예에 따른 다중경로 CTC 정렬 기반의 음성 인식 및 본인 검증을 지원하는 시스템은 API에서 제시된 화자검증 키워드 문장을 발화한 발화정보를 제공하는 사용자 단말; 및 상기 사용자 단말로 상기 화자검증 키워드 문장을 제공하고, 상기 발화정보를 다중 경로 CTC(Connectionist Temporal Classification) 정렬 알고리즘에 적용하여 발음기호로 정렬한 후, 상기 화자검증 키워드 문장 내에 포함된 적어도 2개 이상의 개인 키워드의 발음기호가 기 등록된 발음기호와 일치하면, 사용자의 본인인증을 확인하는 API 서버를 포함한다.

Description

다중경로 CTC 정렬 기반의 음성 인식 및 본인 검증을 지원하는 시스템 및 방법{System and method that support voice recognition and identity verification based on multi-path CTC alignment}
본 발명은 다중경로 CTC 정렬 기반의 음성 인식 및 본인 검증을 지원하는 시스템 및 방법에 관한 것이다.
오늘날 인터넷의 발달에 힘입어 다양한 종류의 온라인 서비스가 제공되고 있다. 대부분의 온라인 서비스 시스템들은 인터넷을 통해 해당 시스템에 접근하는 클라이언트 컴퓨터 장치가 해당 온라인 서비스를 이용할 자격을 가지는 지 여부를 인증한다.
가장 보편적으로 사용되는 사용자 인증방법은 사용자 식별자(ID)와 비밀번호를 이용한 인증방법으로서, 사용자가 온라인 서비스 시스템에 회원으로 가입할 때 사용자 식별자와 비밀번호를 등록하고, 추후 해당 사용자가 해당 시스템에 접속하고자 할 때 기 등록한 사용자 식별자와 비밀번호를 입력받아 그 사용자의 본인 여부를 검증한다.
그러나, 이러한 사용자 식별자와 비밀번호를 이용한 인증방법은 인증정보(사용자 식별자와 비밀번호)가 도용되거나 해킹되기 쉬우며, 인증 정보가 노출될 악의적인 접근 시도를 차단할 수 없다는 문제점이 있다.
온라인 서비스 시스템에는 다양한 개인 정보들이 관리되고 있고, 최근 인터넷 뱅킹 서비스, 온라인 주식 거래 서비스 등을 통해 실질적인 금전 거래가 온라인에서 이루어지고 있으며, 온라인 서비스 시스템을 통한 무형의 자산이 증가함에 따라 온라인 서비스 시스템을 이용하는 사용자에 대해 보다 강력한 본인 인증방법들이 요구되고 있다.
이러한 요구에 따라 사용자의 스마트 단말을 이용한 일회용 인증키 기반 인증방법이 사용되고 있다. 이 일회용 인증키 기반 인증방식은 통상 다음과 같은 절차로 진행된다.
먼저, 온라인 서비스 시스템은 사용자 식별자와 비밀번호를 확인하고, 인증서버에게 사용자 인증을 요청한다. 인증서버는 기등록된 사용자의 이동통신단말기에 일회용 인증키가 포함된 문자메시지(SMS)를 발송한다. 온라인 서비스 시스템은 사용자의 컴퓨터장치를 통해 그 일회용 인증키를 입력받아 인증서버에게 전달한다. 그러면 인증서버는 사용자의 이동통신단말기에 발송한 일회용 인증키와 온라인 서비스 시스템을 통해 입력받은 일회용 인증키가 동일한 지를 검증한다.
이러한 일회용 인증키 기반 인증방식은 본인 인증 보안 강도를 어느 정도 강화시킬 수는 있으나, 다양한 해킹에 의한 취약점이 여전히 존재하는 문제점이 있다. 또한, 하나의 사용자 식별자와 비밀번호를 여럿의 지인이 공유하여 다중 로그인을 함으로써, 온라인 서비스 시스템의 리소스가 부당하게 점유되는 문제점이 있다.
공개특허공보 제10-2014-0035164호
본 발명이 해결하고자 하는 과제는 종래의 문제점을 해결할 수 있는 다중경로 CTC 정렬을 이용한 개인키워드 음성 검증 시스템 및 방법을 제공하는 데 그 목적이 있다.
상기 과제를 해결하기 위한 본 발명의 일 실시예에 따른 다중경로 CTC 정렬 기반의 음성 인식 및 본인 검증을 지원하는 시스템은 API에서 제시된 화자검증 키워드 문장을 발화한 발화정보를 제공하는 사용자 단말; 및 상기 사용자 단말로 상기 화자검증 키워드 문장을 제공하고, 상기 발화정보를 다중 경로 CTC(Connectionist Temporal Classification) 정렬 알고리즘에 적용하여 발음기호로 정렬한 후, 상기 화자검증 키워드 문장 내에 포함된 적어도 2개 이상의 개인 키워드의 발음기호가 기 등록된 발음기호와 일치하면, 사용자의 본인인증을 확인하는 API 서버를 포함하고, 상기 API 서버는 상기 발화정보를 발음기호 배열로 변환 시, 상기 화자 검증 키워드에 해당하는 발음기호를 '[ ]' 기호 내에 삽입하여 식별하고, 상기 발화정보를 발음기호 배열로 변환 시, 상기 화자 검증 키워드에 해당하는 발음기호의 유사발음에 대한 후보지 발음기호를 '[ ]' 기호 내에 삽입하여 식별하고, 발음기호 정렬정보 내의 포함된 적어도 하나 이상의 후보 단어의 발음기호가 매칭되면 다음 차례의 발음기호로 넘어가고, 발음기호가 오인식 되더라도, 다음 차례의 발음기호가 인식되어 단어로 판단되면, 다중 경로 단어 인식으로 판단하는 것을 특징으로 한다.
상기 과제를 해결하기 위한 본 발명의 일 실시예에 따른 다중경로 CTC 정렬 기반의 음성 인식 및 본인 검증을 지원하는 방법은 API가 실행된 사용자 단말에서 사용자 ID를 제공하는 단계; 상기 API에서 화자 검증 키워드가 포함된 텍스트를 사용자에게 제시하는 단계; 상기 API에서 상기 텍스트를 발화한 발화정보를 입력받아 API 서버로 제공하는 단계; 상기 API 서버에서 상기 발화정보를 다중 경로 CTC(Connectionist Temporal Classification) 정렬 알고리즘에 적용하여 상기 발화정보를 발음기호 배열로 변환하는 단계; 상기 API 서버에서 정렬된 발음기호 정렬정보와 표준발음기호 정렬정보(ref) 간의 발음기호 매칭을 통해 발화정보의 음성인식 정확성을 검증하는 단계; 및 상기 음성인식에 대한 정확성 검증이 완료되면, 상기 발음기호 정렬정보 내에 인식된 복수의 다중 경로 단어가 상기 화자 검증 키워드에 해당할 경우, 사용자 본인임을 검증한 본인인증결과를 상기 사용자 단말로 제공하는 단계를 포함하고, 상기 발화정보를 발음기호 배열로 변환하는 단계는 상기 발화정보를 발음기호 배열로 변환 시, 상기 화자 검증 키워드에 해당하는 발음기호를 '[ ]' 기호 내에 삽입하여 식별하고, 상기 발화정보를 발음기호 배열로 변환 시, 상기 화자 검증 키워드에 해당하는 발음기호의 유사발음에 대한 후보지 발음기호를 '[ ]' 기호 내에 삽입하여 식별하는 단계이고, 상기 발화정보의 음성인식 정확성을 검증하는 단계는 발음기호 정렬정보 내의 포함된 적어도 하나 이상의 후보 단어의 발음기호가 매칭되면 다음 차례의 발음기호로 넘어가고, 발음기호가 오인식 되더라도, 다음 차례의 발음기호가 인식되어 단어로 판단되면, 다중 경로 단어 인식으로 판단하는 단계인 것을 특징으로 한다.
본 발명의 일 실시예에 따른 다중경로 CTC 정렬 기반의 음성 인식 및 본인 검증을 지원하는 시스템 및 방법을 이용하면, 화자의 음성 및 본인 인증 절차를 통해 화자를 정확하게 식별할 수 있으므로, 화자 오인식이나 목소리 도용으로 인한 오동작의 우려 없이 화자의 본인인증을 안전하고 정확하게 실행할 수 있다는 이점이 있다.
도 1은 본 발명의 일 실시예에 따른 다중경로 CTC 정렬을 이용한 개인키워드 음성 검증 시스템의 네트워크 구성도이다.
도 2 및 도 3은 본원에서 제시하는 API의 실행화면의 예시도이다.
도 4는 도 1에 도시된 API 서버의 세부 구성도이다.
도 5는 도 4에 도시된 발음기호 정력 및 확률맵 생성부에서 발화정보를 발음기호 정렬하는 과정을 설명하기 위한 예시도이다.
도 6은 도 4에 도시된 음성 인식 검증부의 검증 과정을 설명하기 위한 예시도이다.
도 7은 본 발명의 일 실시예에 따른 다중경로 CTC 정렬 기반의 음성 인식 및 본인 검증을 지원하는 방법을 설명한 흐름도이다.
도 8은 본 명세서에 개진된 하나 이상의 실시예가 구현될 수 있는 예시적인 컴퓨팅 환경을 도시한 도이다.
이하, 본 명세서의 실시예가 첨부된 도면을 참조하여 기재된다. 그러나, 이는 본 명세서에 기재된 기술을 특정한 실시 형태에 대해 한정하는 것이 아니며, 본 명세서의 실시예의 다양한 변경(modifications), 균등물(equivalents), 및/또는 대체물(alternatives)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 본 명세서에서, "가진다", "가질 수 있다", "포함한다" 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
본 명세서에서, "A 또는 B", "A 또는/및 B 중 적어도 하나" 또는 "A 또는/및 B 중 하나 또는 그 이상"등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. 예를 들면, "A 또는 B", "A 및 B 중 적어도 하나", 또는 "A 또는 B 중 적어도 하나"는, (1) 적어도 하나의 A를 포함, (2) 적어도 하나의 B를 포함, 또는 (3) 적어도 하나의 A 및 적어도 하나의 B 모두를 포함하는 경우를 모두 지칭할 수 있다.
본 명세서에서 사용된 "제 1," "제 2," "첫째," 또는 "둘째,"등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다. 예를 들면, 제 1 사용자 기기와 제 2 사용자 기기는, 순서 또는 중요도와 무관하게, 서로 다른 사용자 기기를 나타낼 수 있다. 예를 들면, 본 명세서에 기재된 권리 범위를 벗어나지 않으면서 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 바꾸어 명명될 수 있다.
어떤 구성요소(예: 제 1 구성요소)가 다른 구성요소(예: 제 2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제 3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소(예: 제 1 구성요소)가 다른 구성요소(예: 제 2 구성요소)에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 다른 구성요소(예: 제 3 구성요소)가 존재하지 않는 것으로 이해될 수 있다.
본 명세서에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합한(suitable for)," "~하는 능력을 가지는(having the capacity to)," "~하도록 설계된(designed to)," "~하도록 변경된(adapted to)," "~하도록 만들어진(made to)," 또는 "~를 할 수 있는(capable of)"과 바꾸어 사용될 수 있다. 용어 "~하도록 구성된(또는 설정된)"은 하드웨어적으로 "특별히 설계된(specifically designed to)" 것만을 반드시 의미하지 않을 수 있다. 대신, 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다.
예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용프로세서(generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다.
본 명세서에서 사용된 용어들은 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 다른 실시예의 범위를 한정하려는 의도가 아닐 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 용어들은 본 명세서에 기재된 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다. 본 명세서에 사용된 용어들 중 일반적인 사전에 정의된 용어들은, 관련 기술의 문맥상 가지는 의미와 동일 또는 유사한 의미로 해석될 수 있으며, 본 명세서에서 명백하게 정의되지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 경우에 따라서, 본 명세서에서 정의된 용어일지라도 본 명세서의 실시예들을 배제하도록 해석될 수 없다
이하, 첨부된 도면들에 기초하여 본 발명의 일 실시예에 따른 다중경로 CTC 정렬 기반의 음성 인식 및 본인 검증을 지원하는 시스템 및 방법을 보다 상세하게 설명하도록 한다.
도 1은 본 발명의 일 실시예에 따른 다중경로 CTC 정렬을 이용한 개인키워드 음성 검증 시스템의 네트워크 구성도이고, 도 2 및 도 3은 본원에서 제시하는 API의 실행화면의 예시도이고, 도 4는 도 1에 도시된 API 서버의 세부 구성도이고, 도 5는 도 4에 도시된 발음기호 정력 및 확률맵 생성부에서 발화정보를 발음기호 정렬하는 과정을 설명하기 위한 예시도이고, 도 6은 도 4에 도시된 음성 인식 검증부의 검증 과정을 설명하기 위한 예시도이다.
먼저, 본 발명의 일 실시예에 따른 다중경로 CTC 정렬 기반의 음성 인식 및 본인 검증을 지원하는 시스템(100)은 음성기반으로 본인인증을 수행하기 위한 시스템으로, 사용자 단말(200)로 제시된 텍스트에 맞게 사용자가 음성으로 정확하게 따라 읽었는지 확인하기 위한 용도로, CTC 기술을 이용한다.
또한, 제시된 텍스트(text)를 발음기호 배열로 변환해 두고, 현재까지의 정확히 읽힌 발음기호 배열을 기준으로 다음 발음기호들이 출현할 확률맵(probability map)을 CTC 알고리즘을 기반으로 연산하고, 새롭게 출현한 음성이 어떤 발음기호에 해당하는지 확률을 CNN, RNN-T 등으로 구현하여 계산하고자 하는 발명이다.
또한, 새로운 발음기호가 CTC 알고리즘을 통해 나올 확률이 한계점(threshold) 보다 높으면 해당 발음기호를 인식결과로써 도출하고자 하는 발명이다.
한편, 본원에서 언급하는 CTC(Connectionist Temporal Classification) 알고리즘은 기존의 음소 인식에서 많이 사용하던 HMM-GMM 모델이나 하이브리드 모델(DNN-HMM/GMM 모델)의 문제점인, 강제 정렬된 음성 말뭉치가 있어야 학습이 가능하여, 강제정렬 말뭉치를 만들기 위해서 모든 오디오 파일들의 구간을 나눠 음소 레이블을 붙이는 수작업 및 이러한 수작업으로 인한 시간 비용의 낭비에 대한 문제점을 해결하기 위하여 제작된 알고리즘이다.
CTC 알고리즘은 강제정렬 되지 않은 말뭉치로도 시계열 학습을 수행할 수 있도록 제작된 알고리즘으로, CTC 알고리즘을 사용하게 되면 학습 과정에서 나뉘어진 시간 레이블(Temporal Label) 각각에 대해 확률분포에 기반한 음소 예측이 가능해지게 된다.
이렇듯 각각의 시간 레이블마다 가장 등장 확률이 높은 음소를 할당하는 식으로 학습이 이루어지게 되면, 기존처럼 미리 강제정렬된 음소 정보를 가지고 학습을 진행하지 않게 된다.
따라서 음성 데이터와 전사 자료만 있으면 강제정렬 데이터가 없어 학습에 사용하지 못했던 음성 데이터로도 학습을 수행할 수 있다.
CTC의 구조는 입력 신호 X에 대해 신호 배열 X로부터 체인룰(Chain Rule) 로 연결된 배열 Y를 찾는 형태로, 수식은 다음의 식 1과 같다.
음소 인식의 경우 입력 신호 X는 음성 데이터가 되며, 배열 Y는 음성 데이터에 대한 음소 인식 결과가 된다.
[식 1]
CTC는 입력 신호 배열 X와 길이가 같은 시간 레이블(Temporal Label)을 가진다.
이때, Y의 레이블의 총 유형 개수는 K개의 유형에 1개의 공백 레이블이 더해진 (K+1)개이다.
여기서 공백 레이블은 특정 시간 레이블에 대해서 K개의 유형에 대한 확률값이 주어진 한계점(threshold)에 이르지 못했을 경우 부여되게 된다.
CTC가 진행된 뒤에는 CTC-디코딩이 수행된다. CTC-디코딩은 CTC를 통해 얻은 시간 레이블 배열을 음소 배열 Y로 변환시켜 주는 과정을 의미하며, CTC-디코딩 과정은 시간 레이블에 포함되어 있는 중복 레이블을 제거한 뒤, 공백 레이블을 제거하는 순서로 진행된다.
보다 구체적으로, 도 1을 참조, 본 발명의 일 실시예에 따른 다중경로 CTC 정렬을 이용한 개인키워드 음성 검증 시스템(100)은 사용자 단말(200) 및 API 서버(300)를 포함한다.
상기 각 구성은 네트워크로 통신하며, 상기 네트워크는 단말 및 서버와 같은 각각의 노드 상호 간에 정보 교환이 가능한 연결 구조를 의미하는 것으로, 이러한 네트워크의 일 예는, PAN(personal area network), LAN(local area network), CAN(campus area network), MAN(metropolitan area network), WAN(wide area network), BBN(broadband network), 인터넷 등의 네트워크 중 하나 이상의 임의의 네트워크를 포함할 수 있다. 네트워크는 버스 네트워크, 스타 네트워크, 링 네트워크, 메쉬 네트워크, 스타-버스 네트워크, 트리 또는 계층적(hierarchical) 네트워크 등을 포함하는 네트워크 토폴로지 중 임의의 하나 이상을 포함할 수 있으나, 이에 제한되지 않는다.
상기 사용자 단말(200)은 API(10)를 이용하여 음성 기반의 사용자 음성검증 및 본인 인증절차를 수행하는 단말일 수 있다.
상기 사용자 단말(200)은 API(10)에서 제시된 본인인증을 확인하기 위하여 제시된 텍스트를 낭독한 화자의 발화정보인 음성정보를 입력받고, 입력된 화자의 발화정보가 텍스트의 내용과 일치하는지 및 등록된 화자인지를 검증요청하고, 검증요청한 검증결과를 제공받는 단말일 수 있다.
또한, 사용자 단말(200)은 API(10)를 이용하여 적어도 하나 이상의 화자 검증 키워드를 등록 및 설정할 수 있고, 적어도 하나 이상의 화자 검증 키워드가 포함된 화자 검증 키워드 문장인 텍스트를 제공받는 단말일 수 있다.
상기 사용자 단말(200)은 예를 들어, 휴대성과 이동성이 보장되는 무선 통신 장치로서, 네비게이션, PCS(Personal Communication System), GSM(Global System for Mobile communications), PDC(Personal Digital Cellular), PHS(Personal Handyphone System), PDA(Personal Digital Assistant), IMT(International Mobile Telecommunication)-2000, CDMA(Code Division Multiple Access)-2000, W-CDMA(W-Code Division Multiple Access), Wibro(Wireless Broadband Internet) 단말, 스마트폰(smartphone), 스마트 패드(smartpad), 타블렛 PC(Tablet PC) 등과 같은 모든 종류의 핸드헬드(Handheld) 기반의 무선 통신 장치를 포함할 수 있다
또한, 사용자 단말(200)에서 실행되는 API는 네트워크를 통하여 사용자 단말에 설치 또는 구동되는 애플리케이션, 프로그램, 웹 페이지 등을 포함할 수 있다.
여기서, 상기 웹 브라우저는 웹(WWW: World Wide Web) 서비스를 이용할 수 있게 하는 프로그램으로 HTML(hyper text mark-up languge)로 서술된 하이퍼 텍스트를 받아서 보여주는 프로그램을 의미하며, 예를 들어 넷스케이프(Netscape), 익스플로러(Explorer), 크롬(chrome) 등을 포함한다.
또한, 애플리케이션은 단말 상의 응용프로그램(application)을 의미하며, 예를 들어, 모바일 단말(스마트폰)에서 실행되는 앱(app)을 포함한다. 앱(app)은 모바일 콘텐츠를 자유롭게 사고 파는 가상의 장터인 애플리케이션 마켓에서 다운로드 받아서 설치할 수 있다
다음으로, API 서버(300)는 사용자 단말(200)로부터 사용자 ID를 수신하면, 기 등록된 사용자 화자 인증 특징 키워드를 데이터베이스로부터 호출하여 수신한 후, 사용자 단말(200)로 화자 검증 키워드가 포함된 텍스트를 사용자 단말(200)로 제공하는 구성일 수 있다.
또한, API 서버(300)는 상기 사용자 단말(200)로 텍스트인 화자검증 키워드 문장을 제공하고, 상기 발화정보를 다중 경로 CTC(Connectionist Temporal Classification) 정렬 알고리즘에 적용하여 발음기호로 정렬한 후, 상기 화자검증 키워드 문장 내에 포함된 적어도 2개 이상의 개인 키워드의 발음기호가 기 등록된 발음기호와 일치하면, 사용자의 본인인증을 확인하는 구성일 수 있다.
또한, API 서버(300)는 사용자 단말(200)로 제시된 텍스트(text)를 발음기호 배열로 변환해 두고, 순차적으로 정확히 읽힌 발음기호 배열을 기준으로 다음 발음기호들이 출현할 확률맵(probability map)을 CTC 알고리즘을 기반으로 연산하고, 새롭게 출현한 음성이 어떤 발음기호에 해당하는지에 대한 확률을 CNN, RNN 모델을 이용하여 산출하며, 새로운 발음기호가 CTC 알고리즘을 통해 나올 확률이 한계점(threshold) 보다 높으면 해당 발음기호를 인식결과로써 도출하고자 하는 발명이다.
또한, API 서버(300)는 발화정보에서 화자 특징 벡터를 추출하고, 기 등록된 화자 특징 벡터 간의 유사도를 계산하고, 유사도가 기준치 이상일 경우, 화자 본인인증에 대한 검증결과를 제공하는 구성일 수 있다.
보다 구체적으로, 상기 API 서버(300)는 사용자 ID 확인부(310), 화자 검증 키워드 등록 및 제공부(320), 발음기호 정렬 및 확률맵 생성부(330), 음성 인식 검증부(340) 및 화자 검증부(350)를 포함한다.
상기 사용자 ID 확인부(310)는 본원에서 제시하는 API를 이용하여 본인인증 확인 서비스를 이용하는 사용자의 ID 및 비번을 등록 및 관리하는 구성일 수 있다.
상기 화자 검증 키워드 등록 및 제공부(320)는 사용자 단말(200)에서 입력한 적어도 하나 이상의 화자 검증 키워드를 제공받아 데이터베이스에 등록하며, 사용자 ID 확인부(310)에서 사용자 ID가 확인되면, 해당 ID를 사용하는 사용자가 등록한 적어도 2개 이상의 화자 검증 키워드가 포함된 텍스트(화자 검증 키워드 문장)을 상기 사용자 단말(200)로 제공하는 구성일 수 있다.
또한, 상기 화자 검증 키워드 제공부(320)는 후술하는 음성 인식 검증부(340)로 화자 검증 키워드 문장을 표준발음기호로 정렬한 표준발음기호 정렬정보(ref)를 제공하는 구성일 수 있다.
추가적으로, 상기 화자 검증 키워드 등록 및 제공부(320)는 상기 후술하는 음성 인식 검증부(340)로 표준발음기호 정렬정보(ref)를 제공시, 발화 검증 키워드가 적어도 하나 이상의 유사발음이 존재할 경우, 표준발음기호와 유사한 유사발음기호를 표준발음기호 정렬정보(ref)에 포함시켜 제공할 수 있다.
일 예로, 상기 화자 검증 키워드가 “김밥”, “우동”일 경우, 사용자 단말(200)로 제시된 화자 검증 키워드 문장은 “나는 오늘 김밥과 우동을 점심으로 먹었다”일 수 있다.
상술한 화자 검증 키워드 문장은 사용자가 등록한 화자 검증 키워드가 적용가능 하거나 연결가능한 문장어구일 수 있다.
다음으로, 발음기호 정렬 및 확률맵 생성부(330)는 사용자 단말(200)에서 입력된 화자 검증 키워드 문장을 발화한 발화정보를 다중 경로 CTC(Connectionist Temporal Classification) 정렬 알고리즘에 적용하여 상기 발화정보를 발음기호 배열로 변환하는 구성일 수 있다.
또한, 발음기호 정렬 및 확률맵 생성부(330)는 발화정보 내에 단어가 유사발음기호를 포함하는 단어일 경우, 특수기호 내에 변환된 발음기호와 유사발음기호를 함께 정렬하는 구성일 수 있다.
일 예로, 발화정보가 “나는 오늘 오후 김밥을 저녁으로 먹었다”라고 할 경우, 발화정보의 발음기호 배열은 “n a n u n _ o n u l _ o h u _ [g i m b a p u l] _ [j eo n yeo g r o] _ m eo g eo t d a”와 같이 변환되어 정렬된다.
다른 예로, 발화정보가 “오늘 3시 점심 메뉴는 짜장면, 짬뽕, 볶음밥입니다.”라고 할 경우, 발화정보의 발음기호 배열은 “[오늘] [세시,새시] [점심] [메뉴는] [짜장면,짬뽕,보끔밥] [임니다]”로 변환되어 정렬될 수 있고, 유사발음기호(세시, 새시)를 함께 정렬하여 제공할 수 있다.
한편, 발음기호 정렬 및 확률맵 생성부(330)는 발화정보를 발음기호로 정렬 시에, 특수 기호('_”)를 통해 단어 간의 띄어쓰기, 발화정보 내의 묵음 구간을 식별하기 위한 용도로 사용되도록 발음기호 정렬 시에 적용하는 구성일 수 있다.
또한, 발음기호 정렬 및 확률맵 생성부(330)는 순차적으로 정확히 읽힌 발음기호 배열을 기준으로 다음 발음기호들이 출현할 확률맵(probability map)을 CTC 알고리즘을 기반으로 연산하고, 새롭게 출현한 음성이 어떤 발음기호에 해당하는지에 대한 확률을 CNN, RNN-T 모델을 이용하여 산출하며, 새로운 발음기호가 CTC 알고리즘을 통해 나올 확률이 한계점(threshold) 보다 높으면 해당 발음기호를 인식결과로써 도출하는 구성일 수 있다.
다음으로, 음성 인식 검증부(340)는 발음기호 정렬 및 확률맵 생성부(330)에서 정렬된 발음기호 정렬정보와 표준발음기호 정렬정보(ref) 간의 발음기호 매칭을 통해 발화정보의 정확성인 음성 인식 검증을 수행하는 구성일 수 있다.
상기 음성 인식 검증부(340)는 발음기호 정렬정보를 블록단위로 분류한 후, 표준발음기호 정렬정보(ref)의 블록단위와 매칭을 진행하며, 복수 개의 유사발음기호 중 하나라도 매칭되면, 다음 순번의 블록 간을 매칭하는 방식으로 발화정보의 정확성인 음성 인식 검증을 수행할 수 있다.
예를 들어, 발음기호 정렬 및 확률맵 생성부(330)에서 제공한 발화기호 정렬정보가 “[오늘] [세시,새시] [점심] [메뉴는] [짜장면,짬뽕,보끔밥] [임니다]”라고 가정할 경우, 기 설정된 블록단위로 발화기호 정렬정보를 분할한다. 본 발명의 예에서는 8개의 블록으로 분류하여 설명한다.
제1 블록은 “오”, 제2 블록은 “늘세”, 제3 블록은 “시점” 제4 블록은 “심메뉴”, 제5 블록은 “는”, 제6 블록은 “짜장”, 제7 블록은 “면 입”, 제8 블록은 “니 다”일 수 있다.
제1 블록에서 인식해야 하는 발음기호는 “오”이며, “오”가 인식되면, 제2 블록에서 인식해야 하는 발음기호는 “늘”이다. 여기서, 제2 블록의 발음기호 “늘”이 인식되면, 다중 경로 단어 인식으로 판단한다.
이후, 제2 블록의 “세”와 제3 블록의 “시”가 인식되면, 다중 경로 단어 인식으로 판단되며, 상술한 방식으로 블록과 블록 간의 발음기호가 인식되어 단어가 완성되면 다중 경로 단어 인식으로 확인하는 과정을 진행한다.
여기서, 제2 블록의 “세”가 “새”로 오인식되더라도, 제3 블록의 “시”가 인식되면 다중 경로 단어 인식으로 판단한다.
즉, 발음기호 정렬정보 내의 포함된 적어도 하나 이상의 후보 단어가 매칭되면 다음 차례의 발음기호로 넘어가고, 발음기호가 오인식 되더라도, 다음 차례의 발음기호가 인식되어 단어로 판단되면, 다중 경로 단어 인식으로 판단한다.
다음으로, 화자 검증부(350)는 발음기호 정렬부(330)에서 변환한 발화정보의 발음기호 배열정보로 인식한 다중 경로 단어가 사용자가 등록한 화자 검증 키워드와 일치할 경우, 발화자가 본인임을 검증한 검증결과를 사용자 단말(200)로 제공하는 구성일 수 있다.
일 예로, 화자 검증 키워드 문장이 “장미 희망 신기루 사계 [ ] 극장”이라고 하고, 블랭크([ ]) 내에 들어갈 단어 중 화자 검증 키워드(예, 신한은행 또는 국민은행 또는 기업은행)가 포함되면, 사용자 본인임을 검증한 검증결과를 제공한다.
여기서, 일정 횟수 이상 인증에 활용한 단어는 활용 횟수를 기록해두었다가 자동으로 만료시킬 수 있고, 화자 검증부(350)는 음성 인식 검증이 완료되고 난 후, 진행된다.
추가로, 화자 검증부(350)는 사용자 단말(200)에서 등록한 화자 검증 키워드의 특징 벡터와 기 등록된 화자 검증 키워드의 특징 벡터 간의 유사도를 비교하여 화자 본인인증을 검증하는 구성일 수 있다.
도 7은 본 발명의 일 실시예에 따른 다중경로 CTC 정렬 기반의 음성 인식 및 본인 검증을 지원하는 방법을 설명한 흐름도이다.
도 7를 참조하면, 본 발명의 일 실시예에 따른 다중경로 CTC 정렬 기반의 음성 인식 및 본인 검증을 지원하는 방법(S700)은 API(10)가 실행된 사용자 단말(200)에서 사용자 ID를 제공(S710)하면, 상기 API(10)에서 화자 검증 키워드가 포함된 텍스트를 사용자에게 제시(S720)한다.
이후, 상기 API(10)에서 상기 텍스트를 발화한 발화정보를 입력받아 API 서버(300)로 제공(S730)하고, 상기 API 서버(300)에서 상기 발화정보를 다중 경로 CTC(Connectionist Temporal Classification) 정렬 알고리즘에 적용하여 상기 발화정보를 발음기호 배열로 변환한다(S740).
상기 S740 과정은 발음기호 정렬 및 확률맵 생성부(330)에서 수행하는 과정으로, 발화정보 내에 단어가 유사발음기호를 포함하는 단어일 경우, 특수기호 내에 변환된 발음기호와 유사발음기호를 함께 정렬하는 단계일 수 있다.
일 예로, 발화정보가 “나는 오늘 오후 김밥을 저녁으로 먹었다”라고 할 경우, 발화정보의 발음기호 배열은 “n a n u n _ o n u l _ o h u _ [g i m b a p u l] _ [j eo n yeo g r o] _ m eo g eo t d a”와 같이 변환되어 정렬된다.
다른 예로, 발화정보가 “오늘 3시 점심 메뉴는 짜장면, 짬뽕, 볶음밥입니다.”라고 할 경우, 발화정보의 발음기호 배열은 “[오늘] [세시,새시] [점심] [메뉴는] [짜장면,짬뽕,보끔밥] [임니다]”로 변환되어 정렬될 수 있고, 유사발음기호(세시, 새시)를 함께 정렬하여 제공하는 단계일 수 있다.
또한, 발화정보를 발음기호로 정렬 시에, 특수 기호('_”)를 통해 단어 간의 띄어쓰기, 발화정보 내의 묵음 구간을 식별하기 위한 용도로 사용되도록 발음기호 정렬 시에 적용하고, 순차적으로 정확히 읽힌 발음기호 배열을 기준으로 다음 발음기호들이 출현할 확률맵(probability map)을 CTC 알고리즘을 기반으로 연산하고, 새롭게 출현한 음성이 어떤 발음기호에 해당하는지에 대한 확률을 CNN, RNN-T 모델을 이용하여 산출하며, 새로운 발음기호가 CTC 알고리즘을 통해 나올 확률이 한계점(threshold) 보다 높으면 해당 발음기호를 인식결과로써 도출하는 단계를 포함할 수 있다.
상기 S740 과정이 완료되면, 상기 API 서버(300)에서 정렬된 발음기호 정렬정보와 표준발음기호 정렬정보(ref) 간의 발음기호 매칭을 통해 발화정보의 음성인식 정확성을 검증(S750)하고, 상기 음성인식에 대한 정확성 검증이 완료되면, 상기 발음기호 정렬정보 내에 인식된 복수의 다중 경로 단어가 상기 화자 검증 키워드에 해당할 경우, 사용자 본인임을 검증한 본인인증결과를 상기 사용자 단말로 제공(S760)한다.
상기 S750 과정은 발음기호 정렬정보를 블록단위로 분류한 후, 표준발음기호 정렬정보(ref)의 블록단위와 매칭을 진행하며, 복수 개의 유사발음기호 중 하나라도 매칭되면, 다음 순번의 블록 간을 매칭하는 방식으로 발화정보의 정확성인 음성 인식 검증을 수행하는 단계일 수 있다.
예를 들어, 발음기호 정렬 및 확률맵 생성부(330)에서 제공한 발화기호 정렬정보가 “[오늘] [세시,새시] [점심] [메뉴는] [짜장면,짬뽕,보끔밥] [임니다]”라고 가정할 경우, 기 설정된 블록단위로 발화기호 정렬정보를 분할한다. 본 발명의 예에서는 8개의 블록으로 분류하여 설명한다.
제1 블록은 “오”, 제2 블록은 “늘세”, 제3 블록은 “시점” 제4 블록은 “심메뉴”, 제5 블록은 “는”, 제6 블록은 “짜장”, 제7 블록은 “면 입”, 제8 블록은 “니 다”일 수 있다.
제1 블록에서 인식해야 하는 발음기호는 “오”이며, “오”가 인식되면, 제2 블록에서 인식해야 하는 발음기호는 “늘”이다. 여기서, 제2 블록의 발음기호 “늘”이 인식되면, 다중 경로 단어 인식으로 판단한다.
이후, 제2 블록의 “세”와 제3 블록의 “시”가 인식되면, 다중 경로 단어 인식으로 판단되며, 상술한 방식으로 블록과 블록 간의 발음기호가 인식되어 단어가 완성되면 다중 경로 단어 인식으로 확인하는 과정을 진행한다.
여기서, 제2 블록의 “세”가 “새”로 오인식되더라도, 제3 블록의 “시”가 인식되면 다중 경로 단어 인식으로 판단한다.
즉, 발음기호 정렬정보 내의 포함된 적어도 하나 이상의 후보 단어가 매칭되면 다음 차례의 발음기호로 넘어가고, 발음기호가 오인식 되더라도, 다음 차례의 발음기호가 인식되어 단어로 판단되면, 다중 경로 단어 인식으로 판단하는 단계일 수 있다.
도 8은 본 명세서에 개진된 하나 이상의 실시예가 구현될 수 있는 예시적인 컴퓨팅 환경을 도시하는 도면으로, 상술한 하나 이상의 실시예를 구현하도록 구성된 컴퓨팅 디바이스(1100)를 포함하는 시스템(1000)의 예시를 도시한다. 예를 들어, 컴퓨팅 디바이스(1100)는 개인 컴퓨터, 서버 컴퓨터, 핸드헬드 또는 랩탑 디바이스, 모바일 디바이스(모바일폰, PDA, 미디어 플레이어 등), 멀티프로세서 시스템, 소비자 전자기기, 미니 컴퓨터, 메인프레임 컴퓨터, 임의의 전술된 시스템 또는 디바이스를 포함하는 분산 컴퓨팅 환경 등을 포함하지만, 이것으로 한정되는 것은 아니다.
컴퓨팅 디바이스(1100)는 적어도 하나의 프로세싱 유닛(1110) 및 메모리(1120)를 포함할 수 있다. 여기서, 프로세싱 유닛(1110)은 예를 들어 중앙처리장치(CPU), 그래픽처리장치(GPU), 마이크로프로세서, 주문형 반도체(Application Specific Integrated Circuit, ASIC), Field Programmable Gate Arrays(FPGA) 등을 포함할 수 있으며, 복수의 코어를 가질 수 있다. 메모리(1120)는 휘발성 메모리(예를 들어, RAM 등), 비휘발성 메모리(예를 들어, ROM, 플래시 메모리 등) 또는 이들의 조합일 수 있다. 또한, 컴퓨팅 디바이스(1100)는 추가적인 스토리지(1130)를 포함할 수 있다. 스토리지(1130)는 자기 스토리지, 광학 스토리지 등을 포함하지만 이것으로 한정되지 않는다.
스토리지(1130)에는 본 명세서에 개진된 하나 이상의 실시예를 구현하기 위한 컴퓨터 판독 가능한 명령이 저장될 수 있고, 운영 시스템, 애플리케이션 프로그램 등을 구현하기 위한 다른 컴퓨터 판독 가능한 명령도 저장될 수 있다. 스토리지(1130)에 저장된 컴퓨터 판독 가능한 명령은 프로세싱 유닛(1110)에 의해 실행되기 위해 메모리(1120)에 로딩될 수 있다. 또한, 컴퓨팅 디바이스(1100)는 입력 디바이스(들)(1140) 및 출력 디바이스(들)(1150)을 포함할 수 있다.
여기서, 입력 디바이스(들)(1140)은 예를 들어 키보드, 마우스, 펜, 음성 입력 디바이스, 터치 입력 디바이스, 적외선 카메라, 비디오 입력 디바이스 또는 임의의 다른 입력 디바이스 등을 포함할 수 있다. 또한, 출력 디바이스(들)(1150)은 예를 들어 하나 이상의 디스플레이, 스피커, 프린터 또는 임의의 다른 출력 디바이스 등을 포함할 수 있다. 또한, 컴퓨팅 디바이스(1100)는 다른 컴퓨팅 디바이스에 구비된 입력 디바이스 또는 출력 디바이스를 입력 디바이스(들)(1140) 또는 출력 디바이스(들)(1150)로서 사용할 수도 있다. 또한, 컴퓨팅 디바이스(1100)는 컴퓨팅 디바이스(1100)가 다른 디바이스(예를 들어, 컴퓨팅 디바이스(1300))와 통신할 수 있게 하는 통신접속(들)(1160)을 포함할 수 있다.
여기서, 통신 접속(들)(1160)은 모뎀, 네트워크 인터페이스 카드(NIC), 통합 네트워크 인터페이스, 무선 주파수 송신기/수신기, 적외선 포트, USB 접속 또는 컴퓨팅 디바이스(1100)를 다른 컴퓨팅 디바이스에 접속시키기 위한 다른 인터페이스를 포함할 수 있다. 또한, 통신 접속(들)(1160)은 유선 접속 또는 무선 접속을 포함할 수 있다. 상술한 컴퓨팅 디바이스(1100)의 각 구성요소는 버스 등의 다양한 상호접속(예를 들어, 주변 구성요소 상호접속(PCI), USB, 펌웨어(IEEE 1394), 광학적 버스 구조 등)에 의해 접속될 수도 있고, 네트워크(1200)에 의해 상호접속될 수도 있다. 본 명세서에서 사용되는 "구성요소", "시스템" 등과 같은 용어들은 일반적으로 하드웨어, 하드웨어와 소프트웨어의 조합, 소프트웨어, 또는 실행중인 소프트웨어인 컴퓨터 관련 엔티티를 지칭하는 것이다.
예를 들어, 구성요소는 프로세서 상에서 실행중인 프로세스, 프로세서, 객체, 실행 가능물(executable), 실행 스레드, 프로그램 및/또는 컴퓨터일 수 있지만, 이것으로 한정되는 것은 아니다. 예를 들어, 컨트롤러 상에서 구동중인 애플리케이션 및 컨트롤러 모두가 구성요소일 수 있다. 하나 이상의 구성요소는 프로세스 및/또는 실행의 스레드 내에 존재할 수 있으며, 구성요소는 하나의 컴퓨터 상에서 로컬화될 수 있고, 둘 이상의 컴퓨터 사이에서 분산될 수도 있다.
이상에서 설명한 실시 예들은 그 일 예로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시 예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시 예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
100: 다중경로 CTC 정렬을 이용한 개인키워드 음성 및 본인 검증 시스템
200: 사용자 단말
300: API 서버
310: 사용자 ID 확인부
320: 화자 검증 키워드 등록 및 제공부
330: 발음기호 정렬 및 확률맵 생성부
340: 음성 인식 검증부
350: 화자 검증부

Claims (11)

  1. API에서 제시된 화자검증 키워드 문장을 발화한 발화정보를 제공하는 사용자 단말; 및
    상기 사용자 단말로 상기 화자검증 키워드 문장을 제공하고, 상기 발화정보를 다중 경로 CTC(Connectionist Temporal Classification) 정렬 알고리즘에 적용하여 발음기호로 정렬한 후, 상기 화자검증 키워드 문장 내에 포함된 적어도 2개 이상의 개인 키워드의 발음기호가 기 등록된 발음기호와 일치하면, 사용자의 본인인증을 확인하는 API 서버를 포함하고,
    상기 API 서버는
    상기 발화정보를 발음기호 배열로 변환 시, 상기 화자 검증 키워드에 해당하는 발음기호를 '[ ]' 기호 내에 삽입하여 식별하고,
    상기 발화정보를 발음기호 배열로 변환 시, 상기 화자 검증 키워드에 해당하는 발음기호의 유사발음에 대한 후보지 발음기호를 '[ ]' 기호 내에 삽입하여 식별하고,
    발음기호 정렬정보 내의 포함된 적어도 하나 이상의 후보 단어의 발음기호가 매칭되면 다음 차례의 발음기호로 넘어가고, 발음기호가 오인식 되더라도, 다음 차례의 발음기호가 인식되어 단어로 판단되면, 다중 경로 단어 인식으로 판단하는 것을 특징으로 하는 다중경로 CTC 정렬 기반의 음성 인식 및 본인 검증을 지원하는 시스템.
  2. 제1항에 있어서,
    상기 API 서버는
    본인인증을 위하여 상기 사용자 단말에서 등록한 적어도 2개 이상의 개인 키워드가 포함된 화자 검증 키워드 문장을 제공하는 다중경로 CTC 정렬 기반의 음성 인식 및 본인 검증을 지원하는 시스템.
  3. 제2항에 있어서,
    상기 API 서버는
    다중 경로 CTC(Connectionist Temporal Classification) 정렬 알고리즘을 이용하여 상기 발화정보를 발음기호 배열로 변환한 후, 순차적으로 발음기호의 정확도를 판단하고,
    해당 발음기호가 정확하면, 다음 순번의 출현가능한 발음기호의 확률맵을 연산하는 것을 특징으로 하는 다중경로 CTC 정렬 기반의 음성 인식 및 본인 검증을 지원하는 시스템.
  4. 삭제
  5. 제1항에 있어서,
    상기 API 서버는
    상기 발화정보를 발음기호 배열로 변환 시, 블랭크 기호인 '_'를 이용하여 띄어쓰기, 묵음 구간을 탐지하는 것을 특징으로 하는 다중경로 CTC 정렬 기반의 음성 인식 및 본인 검증을 지원하는 시스템.
  6. 삭제
  7. 제1항에 있어서,
    상기 API 서버는
    순차적으로 정확히 읽힌 발음기호 배열을 기준으로 다음 발음기호들이 출현할 확률맵(probability map)을 CTC 알고리즘을 기반으로 연산하고, 새롭게 출현한 음성이 어떤 발음기호에 해당하는지에 대한 확률을 CNN, RNN-T 모델을 이용하여 산출하며, 새로운 발음기호가 CTC 알고리즘을 통해 나올 확률이 한계점(threshold) 보다 높으면 해당 발음기호를 인식결과로써 도출하는 것을 특징으로 하는 다중경로 CTC 정렬 기반의 음성 인식 및 본인 검증을 지원하는 시스템.
  8. API가 실행된 사용자 단말에서 사용자 ID를 제공하는 단계;
    상기 API에서 화자 검증 키워드가 포함된 텍스트를 사용자에게 제시하는 단계;
    상기 API에서 상기 텍스트를 발화한 발화정보를 입력받아 API 서버로 제공하는 단계;
    상기 API 서버에서 상기 발화정보를 다중 경로 CTC(Connectionist Temporal Classification) 정렬 알고리즘에 적용하여 상기 발화정보를 발음기호 배열로 변환하는 단계;
    상기 API 서버에서 정렬된 발음기호 정렬정보와 표준발음기호 정렬정보(ref) 간의 발음기호 매칭을 통해 발화정보의 음성인식 정확성을 검증하는 단계; 및
    상기 음성인식에 대한 정확성 검증이 완료되면, 상기 발음기호 정렬정보 내에 인식된 복수의 다중 경로 단어가 상기 화자 검증 키워드에 해당할 경우, 사용자 본인임을 검증한 본인인증결과를 상기 사용자 단말로 제공하는 단계를 포함하고,
    상기 발화정보를 발음기호 배열로 변환하는 단계는
    상기 발화정보를 발음기호 배열로 변환 시, 상기 화자 검증 키워드에 해당하는 발음기호를 '[ ]' 기호 내에 삽입하여 식별하고,
    상기 발화정보를 발음기호 배열로 변환 시, 상기 화자 검증 키워드에 해당하는 발음기호의 유사발음에 대한 후보지 발음기호를 '[ ]' 기호 내에 삽입하여 식별하고,
    상기 발화정보의 음성인식 정확성을 검증하는 단계는
    발음기호 정렬정보 내의 포함된 적어도 하나 이상의 후보 단어의 발음기호가 매칭되면 다음 차례의 발음기호로 넘어가고, 발음기호가 오인식 되더라도, 다음 차례의 발음기호가 인식되어 단어로 판단되면, 다중 경로 단어 인식으로 판단하는 단계인 다중경로 CTC 정렬 기반의 음성 인식 및 본인 검증을 지원하는 방법.
  9. 삭제
  10. 제8항에 있어서,
    상기 발화정보를 발음기호 배열로 변환하는 단계는
    상기 발화정보를 발음기호 배열로 변환 시, 블랭크 기호인 '_'를 이용하여 띄어쓰기, 묵음 구간을 탐지하는 것을 특징으로 하는 다중경로 CTC 정렬 기반의 음성 인식 및 본인 검증을 지원하는 방법.

  11. 삭제
KR1020230011977A 2023-01-30 2023-01-30 다중경로 ctc 정렬 기반의 음성 인식 및 본인 검증을 지원하는 시스템 및 방법 KR102579130B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230011977A KR102579130B1 (ko) 2023-01-30 2023-01-30 다중경로 ctc 정렬 기반의 음성 인식 및 본인 검증을 지원하는 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230011977A KR102579130B1 (ko) 2023-01-30 2023-01-30 다중경로 ctc 정렬 기반의 음성 인식 및 본인 검증을 지원하는 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR102579130B1 true KR102579130B1 (ko) 2023-09-18

Family

ID=88196292

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230011977A KR102579130B1 (ko) 2023-01-30 2023-01-30 다중경로 ctc 정렬 기반의 음성 인식 및 본인 검증을 지원하는 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR102579130B1 (ko)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1020883A (ja) * 1996-07-02 1998-01-23 Fujitsu Ltd ユーザ認証装置
US20100131272A1 (en) * 2008-11-25 2010-05-27 Institute For Information Industry Apparatus and method for generating and verifying a voice signature of a message and computer readable medium thereof
KR20140035164A (ko) 2012-09-13 2014-03-21 한국전자통신연구원 음성인식시스템의 동작방법
JP2021189402A (ja) * 2020-06-04 2021-12-13 株式会社 ディー・エヌ・エー 音声処理プログラム、音声処理装置及び音声処理方法
KR102344218B1 (ko) * 2020-08-26 2021-12-28 주식회사 카카오엔터프라이즈 음성 인식 시스템 및 음성 인식 시스템의 학습 방법
JP2022545557A (ja) * 2019-08-29 2022-10-27 株式会社ソニー・インタラクティブエンタテインメント キーワード適合を伴うカスタマイズ可能なキーワードスポッティングシステム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1020883A (ja) * 1996-07-02 1998-01-23 Fujitsu Ltd ユーザ認証装置
US20100131272A1 (en) * 2008-11-25 2010-05-27 Institute For Information Industry Apparatus and method for generating and verifying a voice signature of a message and computer readable medium thereof
KR20140035164A (ko) 2012-09-13 2014-03-21 한국전자통신연구원 음성인식시스템의 동작방법
JP2022545557A (ja) * 2019-08-29 2022-10-27 株式会社ソニー・インタラクティブエンタテインメント キーワード適合を伴うカスタマイズ可能なキーワードスポッティングシステム
JP2021189402A (ja) * 2020-06-04 2021-12-13 株式会社 ディー・エヌ・エー 音声処理プログラム、音声処理装置及び音声処理方法
KR102344218B1 (ko) * 2020-08-26 2021-12-28 주식회사 카카오엔터프라이즈 음성 인식 시스템 및 음성 인식 시스템의 학습 방법

Similar Documents

Publication Publication Date Title
JP7110292B2 (ja) 話者検証のためのニューラルネットワーク
US7689418B2 (en) Method and system for non-intrusive speaker verification using behavior models
US6490560B1 (en) Method and system for non-intrusive speaker verification using behavior models
WO2020232861A1 (zh) 命名实体识别方法、电子装置及存储介质
CN109428719B (zh) 一种身份验证方法、装置及设备
Liu et al. An MFCC‐based text‐independent speaker identification system for access control
EP2784710A2 (en) Method and system for validating personalized account identifiers using biometric authentication and self-learning algorithms
KR20160011709A (ko) 지불 확인을 위한 방법, 장치 및 시스템
CN102223367B (zh) 移动用户访问网站的方法、设备及系统
US10607601B2 (en) Speech recognition by selecting and refining hot words
CN109462482B (zh) 声纹识别方法、装置、电子设备及计算机可读存储介质
CN106649253B (zh) 基于后验证的辅助控制方法及系统
KR20190000776A (ko) 정보 입력 방법
CN112084752A (zh) 基于自然语言的语句标注方法、装置、设备及存储介质
CN112468658A (zh) 语音质量检测方法、装置、计算机设备及存储介质
CN112395391A (zh) 概念图谱构建方法、装置、计算机设备及存储介质
EP1470549B1 (en) Method and system for non-intrusive speaker verification using behavior models
CN113449089A (zh) 一种查询语句的意图识别方法、问答方法及计算设备
KR102579130B1 (ko) 다중경로 ctc 정렬 기반의 음성 인식 및 본인 검증을 지원하는 시스템 및 방법
CN113204613B (zh) 地址生成方法、装置、设备和存储介质
US11361761B2 (en) Pattern-based statement attribution
CN113505595A (zh) 文本短语抽取方法、装置、计算机设备及存储介质
CN112037772A (zh) 基于多模态的响应义务检测方法、系统及装置
CN114218356A (zh) 基于人工智能的语义识别方法、装置、设备及存储介质
KR100373989B1 (ko) 음절 인식을 이용한 사용자 인증 방법 및 사용자 인증시스템

Legal Events

Date Code Title Description
AMND Amendment
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant