KR102588212B1 - Zero UI 기반 자동 통역 시스템 및 방법 - Google Patents
Zero UI 기반 자동 통역 시스템 및 방법 Download PDFInfo
- Publication number
- KR102588212B1 KR102588212B1 KR1020210117156A KR20210117156A KR102588212B1 KR 102588212 B1 KR102588212 B1 KR 102588212B1 KR 1020210117156 A KR1020210117156 A KR 1020210117156A KR 20210117156 A KR20210117156 A KR 20210117156A KR 102588212 B1 KR102588212 B1 KR 102588212B1
- Authority
- KR
- South Korea
- Prior art keywords
- voice
- automatic interpretation
- automatic
- speaker
- noise
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 125
- 238000013519 translation Methods 0.000 title claims abstract description 57
- 230000008569 process Effects 0.000 claims abstract description 30
- 230000003595 spectral effect Effects 0.000 claims abstract description 13
- 239000013598 vector Substances 0.000 claims description 54
- 238000004422 calculation algorithm Methods 0.000 claims description 39
- 230000006870 function Effects 0.000 claims description 37
- 238000001514 detection method Methods 0.000 claims description 30
- 238000004891 communication Methods 0.000 claims description 27
- 238000001228 spectrum Methods 0.000 claims description 21
- 239000000284 extract Substances 0.000 claims description 17
- 238000012937 correction Methods 0.000 claims description 15
- 238000003062 neural network model Methods 0.000 claims description 10
- 238000006243 chemical reaction Methods 0.000 claims description 2
- 230000001755 vocal effect Effects 0.000 claims 1
- 230000007257 malfunction Effects 0.000 abstract description 2
- 238000012545 processing Methods 0.000 description 21
- 238000005516 engineering process Methods 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 8
- 238000010801 machine learning Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 4
- 230000007613 environmental effect Effects 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000001186 cumulative effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000007774 longterm Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/40—Processing or translation of natural language
- G06F40/58—Use of machine translation, e.g. for multi-lingual retrieval, for server-side translation for client devices or for real-time translation
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L17/00—Speaker identification or verification techniques
- G10L17/02—Preprocessing operations, e.g. segment selection; Pattern representation or modelling, e.g. based on linear discriminant analysis [LDA] or principal components; Feature selection or extraction
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L21/00—Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
- G10L21/02—Speech enhancement, e.g. noise reduction or echo cancellation
- G10L21/0208—Noise filtering
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L25/00—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
- G10L25/78—Detection of presence or absence of voice signals
- G10L25/87—Detection of discrete points within a voice signal
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Acoustics & Sound (AREA)
- Computational Linguistics (AREA)
- Human Computer Interaction (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Quality & Reliability (AREA)
- Telephonic Communication Services (AREA)
Abstract
본 발명은 Zero UI 기반 자동 통역 시스템 및 방법에 관한 것이다. 본 발명에 따른 자동 통역 시스템 및 방법은, 언어가 서로 다른 두 명 이상 사용자의 면대면 대화 시 Zero UI 기반 자동 통역 서비스로 기존 음성 신호를 입력하는 절차 상 불편함과 크로스톡으로 인한 음성 인식 오작동 문제를 해소한다. 각 사용자 단말은 자동 통역 서버와 연결된 후 자동 통역 서버로 원시 음성 신호를 전송하며, 자동 통역 서버는 복수의 원시 음성 신호에 대한 시간 지연 보상과 잡음 제거를 수행하고 자동으로 발화의 시작과 끝을 검출하며, 전력 스펙트럼 밀도의 차이와 화자 특징 값을 이용하여 발화자의 음성 신호를 결정한다. 자동 통역 서버는 결정된 음성 신호를 음성 인식 및 자동 번역 과정을 거쳐서 타겟 언어로 변환하고, 이를 자막 또는 음성의 형태로 사용자의 단말로 전송하며, 각 사용자 단말은 전송받은 자막 또는 음성을 출력한다.
본 발명에 따른 Zero UI 기반 자동 통역 시스템은 자동 통역 서비스에 연결된 각 사용자 단말에서 전송받은 복수 개의 음성 신호에서 발화자의 음성 신호를 선택하며, 상기 발화자의 음성 신호를 타겟 언어로 번역한 결과를 하기 상대 단말에 전송하는 자동 통역 서버; 상기 발화자의 음성 신호를 입력받아 상기 자동 통역 서버로 전송하는 발화자 단말; 및 상기 번역한 결과를 타겟 언어로 된 문자나 음성의 형태로 출력하는 상대 단말;을 포함한다.
본 발명에 따른 Zero UI 기반 자동 통역 시스템은 자동 통역 서비스에 연결된 각 사용자 단말에서 전송받은 복수 개의 음성 신호에서 발화자의 음성 신호를 선택하며, 상기 발화자의 음성 신호를 타겟 언어로 번역한 결과를 하기 상대 단말에 전송하는 자동 통역 서버; 상기 발화자의 음성 신호를 입력받아 상기 자동 통역 서버로 전송하는 발화자 단말; 및 상기 번역한 결과를 타겟 언어로 된 문자나 음성의 형태로 출력하는 상대 단말;을 포함한다.
Description
본 발명은 Zero UI 기반 자동 통역 시스템 및 방법에 관한 것이다. 더욱 상세하게는, 발화자가 발화 시마다 개인용 자동 통역 단말기에 터치 또는 버튼 클릭 등의 입력을 통해 직접 음성 구간을 결정할 필요 없이, 신호의 특징을 이용하여 잡음을 제거하고, 자동으로 음성을 검출하며, 음성 인식과 자동 번역을 통해 결과를 출력하는 자동 통역 시스템 및 방법에 관한 것이다.
자동 통역 기술(automatic speech translation technology)은 발화자에 의해 어떤 특정 언어로 발화된 음성을 음성 인식, 자동 번역 등의 과정을 거쳐서 다른 특정 언어로 변환하고, 이를 자막(텍스트), 음성 또는 합성음으로 출력하는 기술을 의미한다.
최근 들어, 음성 인식 및 자동 번역 그리고 음성 합성 기술이 발달함에 따라 자동 통역 기술도 널리 확산되어 자동 통역과 관련된 다양한 앱이 출시되어 서비스 되고 있다. 종래의 자동 통역 기술은, 발화자가 개인용 자동 통역 단말기(이하, '발화자 단말'이라 함)의 화면을 터치 또는 버튼을 클릭하고 단말기 혹은 음성 입력 장치를 입 근처에 가져와 음성을 입력하면, 이를 타겟 언어로 자동 번역하여, 상대방 자동 통역 단말기(이하, '상대방 단말'이라 함) 화면에 보여주거나 합성음을 들려주는 방식이 일반적이다.
이러한 방식을 따를 때, 매 발화를 위해 발화자가 스마트 폰 화면을 터치 또는 클릭, 단말기 혹은 음성 입력 장치를 입 가까이에 가져가는 동작을 반복해야 한다. 통상의 대화는 면대면 대화가 대부분인데, 상술한 방식에 따를 경우 자연스러운 대화가 어렵다. 또한, 가장 큰 문제는 단거리 대화 시 사용자가 발화하였을 때 발화자 단말기 뿐만 아니라 상대방 단말기 또는 상대방의 음성 입력 장치에도 음성이 입력되어 쌍방의 자동 통역기가 동시에 동작하는 크로스톡(cross-talk) 현상이다. 크로스톡 현상을 방지하고자 골도마이크, 귓속마이크 등을 사용할 경우 사람의 얼굴 형태(귓구멍 크기, 피부 형상)의 편차로 인해 자동 통역기가 불안정하게 동작할 수 있다는 문제점이 있다. 또한 자동 이득 조절(automatic gain control) 등의 방식으로 음성을 사전 처리할 경우 원시 음성이 왜곡되어 정확한 음성 인식 및 자동 번역 성능을 저해할 수 있다는 문제점이 있다.
본 발명은 상술한 문제점을 해소하기 위해 Zero UI 기반의 자동 통역 서비스로 화면 터치 및 버튼 클릭 없이 상대방 단말기로 통역 결과를 출력하는 시스템 및 방법을 제공하는데 목적이 있다.
종래의 음성 인식을 활용한 앱은 화면 터치나 버튼 클릭을 통해 음성 입력을 시작하며, 동일하게 화면 터치 및 버튼 클릭을 하거나 자동으로 음성의 끝을 검출하게 되면 음성 입력을 종료한다.
그러나, 두 명 이상이 참여하는 대화의 경우, 참여자 간의 발화와 이해가 실시간, 연속적으로 이루어지기 때문에 상술한 방법은 자연스러운 대화를 행하는데 적합하지 않다. 또한, 면대면 대화는 통상 근거리에서 이루어지기 때문에, 발화자의 음성이 발화자 및 상대방의 입력 장치에 동시에 입력되는 크로스톡 현상으로 의도치 않은 자동 통역이 수행되는 경우, 자동 통역 시스템을 활용한 대화에 방해가 될 수 있다. 즉, 크로스톡 현상으로 인해 자동 통역 시스템을 활용한 대화가 부자연스러워질 수 있다.
본 발명은 대화 대상자들의 음성 신호를 연속적으로 입력 받아 신호의 특징을 이용하여 잡음을 제거하고, 자동으로 정확하게 음성 구간을 검출하며, 실제 발화한 사용자의 음성 신호를 선택하고, 음성 인식 결과를 자동 번역하여 결과를 출력함으로써, 불필요한 단말기 화면 터치 혹은 버튼 클릭을 해소하고, 실시간 처리에 특화된 구현을 통해 원활한 자동 통역을 가능하게 하는 시스템 및 방법을 제공하는 데 목적이 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 Zero UI 기반 자동 통역 시스템은, 자동 통역 서비스에 연결된 각 사용자 단말에서 전송받은 복수 개의 음성 신호에서 발화자의 음성 신호를 선택하며, 상기 발화자의 음성 신호를 타겟 언어로 번역한 결과를 하기 상대 단말에 전송하는 자동 통역 서버; 상기 발화자의 음성 신호를 입력받아 상기 자동 통역 서버로 전송하는 발화자 단말; 및 상기 번역한 결과를 타겟 언어로 된 문자나 음성의 형태로 출력하는 상대 단말;을 포함한다.
상기 자동 통역 서버는 상기 복수 개의 음성 신호 간 발생하는 시간 차이를 위상 기반 상호 상관(phase-based cross-correlation)을 통해 보정할 수 있다.
또한, 상기 자동 통역 서버는 에너지 비율(power level ratio) 기반 알고리즘을 통해 상기 각 사용자 단말에서 전송받은 음성 신호의 잡음을 제거할 수 있다.
또한, 상기 자동 통역 서버는 신경망 모델을 이용하여 사용자 단말에서 전송받은 음성 신호에서 실제 발화가 존재하는 구간을 검출할 수 있다. 상기 신경망 모델은 음성 신호를 입력받아 음성 존재 확률을 산출하도록 학습된 것을 특징으로 한다.
또한, 상기 자동 통역 서버는, 에너지 기반 음성 신호 선택 알고리즘과 화자 특징 벡터를 이용하여 발화자의 음성 신호를 선택할 수 있다.
그리고, 본 발명의 일 실시예에 따른 Zero UI 기반 자동 통역 서버는, 자동 통역 서비스에 연결된 각 사용자 단말에서 복수 개의 음성 신호를 전송받고, 상기 음성 신호 중 발화자의 음성 신호를 번역한 결과를 타겟 언어를 구사하는 사용자의 단말에 전송하는 통신 모듈; 상기 발화자의 음성 신호에 대해 음성 인식을 수행하여 음성 인식 결과를 획득하는 음성 인식기; 및 상기 음성 인식 결과에 대해 번역을 수행하여 번역 결과를 획득하는 자동 번역기;를 포함한다.
상기 자동 통역 서버는, 상기 자동 통역 서버의 자동 통역 프로세스의 수행을 위해 상기 자동 통역 서버에 포함된 구성 요소를 제어하는 제어기; 상기 복수 개의 음성 신호 간 발생하는 시간 차이를 위상 기반 상호 상관(phase-based cross-correlation)을 통해 보정하는 시간 보정기; 에너지 비율(power level ratio) 기반 알고리즘을 통해 상기 위상 기반 상호 상관을 통해 보정된 음성 신호의 잡음을 제거하는 잡음 제거기; 상기 잡음이 제거된 음성 신호에서 실제 발화가 존재하는 음성 구간을 자동으로 검출하는 자동 음성 검출기; 상기 잡음이 제거된 복수 개의 음성 신호의 프레임별 에너지 평균값의 차이를 계산하는 전력 레벨 차이 계산기; 상기 실제 발화가 존재하는 음성 구간과 상기 프레임별 에너지 평균값의 차이를 기초로 실제 발화자의 음성 신호를 선택하는 음성 신호 선택기; 및 상기 선택된 음성 신호를 기초로 화자 특징 벡터를 추출하고, 사전에 등록된 화자 특징 벡터와 유사도를 비교하여 발화자 일치 여부를 검증하는 화자 특징 벡터 추출기;를 더 포함할 수 있다.
상기 시간 보정기는 상기 복수 개의 음성 신호를 시간-주파수 관계의 스펙트럼으로 표현하였을 때 획득할 수 있는 위상 정보를 이용하여 상호 상관(cross-correlation)을 도출할 수 있다.
상기 잡음 제거기는, 복수 개의 음성 신호의 전력 스펙트럼 밀도로 비율을 도출해내고, 이득 함수(gain function)를 적용하여 잡음을 제거하는 알고리즘을 통해 상기 보정된 음성신호의 잡음을 제거할 수 있다.
상기 자동 음성 검출기는, 신경망 모델을 이용하여 상기 잡음이 제거된 음성 신호에서 실제 발화가 존재하는 구간을 검출할 수 있다. 상기 신경망 모델은 음성 신호를 입력받아 음성 존재 확률을 산출하도록 학습된 것을 특징으로 한다.
상기 음성 신호 선택기는, 상기 실제 발화가 존재하는 음성 구간 정보와 상기 프레임별 에너지 평균값의 차이 정보를 기초로, 상기 잡음이 제거된 복수 개의 음성 신호에서 실제 음성 프레임 개수를 산출하고, 상기 실제 음성 프레임 개수가 소정 기준치 이상일 경우에 한해 실제 발화자의 음성 신호를 선택할 수 있다.
상기 화자 특징 벡터는, 발화 구간의 음성 신호를 일정 차원의 벡터로 변환한 것이다.
상기 제어기는 상기 번역 결과를 타겟 언어로 된 문자나 음성 중 적어도 하나로 변환할 수 있다. 이때 상기 통신 모듈은, 상기 변환 결과를 타겟 언어를 구사하는 사용자의 단말에 전송한다.
그리고, 본 발명의 일 실시예에 따른 Zero UI 기반 자동 통역 방법은, 자동 통역 서비스를 제공받는 각 사용자 단말에서 복수 개의 음성 신호를 전송받는 단계; 에너지 기반 음성 신호 선택 알고리즘에 따라 상기 복수 개의 음성 신호 중 발화자의 음성 신호를 선택하는 단계; 상기 선택한 음성 신호에 대한 음성 인식 결과를 획득하는 단계; 상기 음성 인식 결과에 대해 타겟 언어로 번역한 결과를 획득하는 단계; 및 상기 번역한 결과를 타겟 언어의 사용자 단말로 전송하는 단계;를 포함한다.
상기 복수 개의 음성 신호를 전송받는 단계 이후에, 상기 복수 개의 음성 신호 간 시간의 차이를 위상 기반 상호 상관을 통해 보정하는 시간 차이 보정 단계; 에너지 비율 기반 알고리즘을 통해 상기 보정된 복수 개의 음성 신호에 존재하는 잡음을 제거하는 잡음 제거 단계; 상기 잡음이 제거된 복수 개의 음성 신호에서 실제 발화가 존재하는 음성 구간을 자동으로 검출하는 발화 구간 자동 검출 단계; 및 상기 잡음이 제거된 복수 개의 음성 신호의 프레임별 에너지 평균값의 차이를 계산하는 단계;를 더 포함할 수 있다.
상기 발화자의 음성 신호를 선택하는 단계 이후에, 화자 특징 벡터를 이용하여 선택한 음성 신호가 타겟 화자의 음성인지 검증하는 단계;를 더 포함할 수 있다.
상기 시간 차이 보정 단계는, 상기 복수 개의 음성 신호를 시간-주파수 관계의 스펙트럼으로 표현하였을 때 획득할 수 있는 위상 정보를 이용하여 상호 상관(cross-correlation)을 도출하는 것일 수 있다.
상기 잡음 제거 단계는, 복수 개의 음성 신호의 전력 스펙트럼 밀도로 비율을 도출해내고, 이득 함수 (gain function)를 적용하여 잡음을 제거하는 알고리즘을 통해 상기 보정된 복수 개의 음성 신호에 존재하는 잡음을 제거하는 것일 수 있다.
상기 발화 구간 자동 검출 단계는, 음성 신호를 입력받아 음성 존재 확률을 산출하도록 학습된 신경망 모델을 이용하여 상기 잡음이 제거된 복수 개의 음성 신호에서 실제 발화가 존재하는 구간을 검출하는 것일 수 있다.
상기 발화자의 음성 신호를 선택하는 단계는, 상기 실제 발화가 존재하는 음성 구간과 상기 프레임별 에너지 평균값의 차이를 기초로 실제 발화자의 음성 신호를 선택하는 것일 수 있다.
본 발명의 일 실시예에 따르면, 자동 음성 검출기가 음성 구간을 자동으로 결정하므로 사용자가 단말 터치 및 버튼 클릭을 통해 직접 음성 구간을 결정하지 않아도 된다. 즉, 본 발명의 일 실시예에 따르면 자동 통역 절차 상의 불편함이 해소되며, 사용 언어가 다른 대화자들 간에도 자연스러운 대화가 이루어지는 효과가 있다.
또한, 본 발명의 일 실시예에 따르면, 근거리 대화에서 발생하는 크로스톡 현상으로 인한 음성 인식기의 오작동을 방지할 수 있다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 Zero UI 기반 자동 통역 시스템의 구성을 나타낸 블록도.
도 2는 본 발명의 일 실시예에 따른 자동 통역 서버의 구성을 나타낸 블록도.
도 3은 본 발명의 일 실시예에 따른 Zero UI 기반 자동 통역 시스템의 자동 통역 방법을 설명하기 위한 흐름도.
도 4는 본 발명의 일 실시예에 따른 자동 통역 서버가 수행하는 자동 통역 서비스 제공 방법을 설명하기 위한 흐름도.
도 5는 본 발명의 일 실시예에 따른, 자동 통역 서버가 음성 신호 간 시간 차이를 보정하는 방법을 설명하기 위한 흐름도.
도 6은 본 발명의 일 실시예에 따른, 자동 통역 서버가 사용자 주변 환경에 존재하는 잡음을 제거하는 방법을 설명하기 위한 흐름도.
도 7은 본 발명의 일 실시예에 따른, 자동 통역 서버가 입력 받은 음성 신호 중의 실제 발화 구간을 자동으로 검출하는 방법을 설명하기 위한 흐름도.
도 8은 본 발명의 일 실시예에 따른 자동 통역 서버의 전력 레벨 차이 계산 방법을 설명하기 위한 흐름도.
도 9는 본 발명의 일 실시예에 따른 자동 통역 서버의 발화자 음성 선택 방법을 설명하기 위한 흐름도.
도 10은 본 발명의 일 실시예에 따른, 자동 통역 서버가 음성 인식과 자동 번역을 수행하여 최종 결과를 사용자 단말에 전송하는 방법을 설명하기 위한 흐름도.
도 2는 본 발명의 일 실시예에 따른 자동 통역 서버의 구성을 나타낸 블록도.
도 3은 본 발명의 일 실시예에 따른 Zero UI 기반 자동 통역 시스템의 자동 통역 방법을 설명하기 위한 흐름도.
도 4는 본 발명의 일 실시예에 따른 자동 통역 서버가 수행하는 자동 통역 서비스 제공 방법을 설명하기 위한 흐름도.
도 5는 본 발명의 일 실시예에 따른, 자동 통역 서버가 음성 신호 간 시간 차이를 보정하는 방법을 설명하기 위한 흐름도.
도 6은 본 발명의 일 실시예에 따른, 자동 통역 서버가 사용자 주변 환경에 존재하는 잡음을 제거하는 방법을 설명하기 위한 흐름도.
도 7은 본 발명의 일 실시예에 따른, 자동 통역 서버가 입력 받은 음성 신호 중의 실제 발화 구간을 자동으로 검출하는 방법을 설명하기 위한 흐름도.
도 8은 본 발명의 일 실시예에 따른 자동 통역 서버의 전력 레벨 차이 계산 방법을 설명하기 위한 흐름도.
도 9는 본 발명의 일 실시예에 따른 자동 통역 서버의 발화자 음성 선택 방법을 설명하기 위한 흐름도.
도 10은 본 발명의 일 실시예에 따른, 자동 통역 서버가 음성 인식과 자동 번역을 수행하여 최종 결과를 사용자 단말에 전송하는 방법을 설명하기 위한 흐름도.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 한편, 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성소자, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성소자, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
이하, 본 발명의 실시예를 첨부한 도면들을 참조하여 상세히 설명한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면 번호에 상관없이 동일한 수단에 대해서는 동일한 참조 번호를 사용하기로 한다.
본 발명은 Zero UI 기반 자동 통역 시스템 및 방법에 관한 것이다.
본 발명은 [발명의 배경이 되는 기술]에서 기술(記述)한 문제점을 해소하기 위해, Zero UI 기반의 자동 통역 서비스로 화면 터치 및 버튼 클릭 없이 상대방 단말기로 통역 결과를 출력하는 시스템 및 방법을 제공한다. 본 발명의 일 실시예에 따른 Zero UI 기반 자동 통역 시스템(10)에 포함되는 자동 통역 서버(100), 발화자 단말(200), 상대 단말(300)의 동작을 통해 자동 통역 상황에서 사용자의 자연스러운 대화가 가능하다.
도 1은 본 발명의 일 실시예에 따른 Zero UI 기반 자동 통역 시스템(10)의 구성을 나타낸 블록도이다.
본 발명의 일 실시예에 따른 Zero UI 기반 자동 통역 시스템(10)은 Zero UI 기반 자동 통역 서버(100, 이하 '자동 통역 서버'라고 함), 발화자 단말(200) 및 상대 단말(300)을 포함하여 구성될 수 있다. 다만, 도 1에 의해 본 발명의 Zero UI 기반 자동 통역 시스템(10)이 한정 해석되는 것은 아니며, 본 발명의 다양한 실시예들에 따라 도 1과 다르게 구성될 수 있다.
본 발명의 일 실시예에 따른 Zero UI 기반 자동 통역 시스템(10)에서 사용자들은 자동 통역 서버(100) 및 상대방의 단말과 통신할 수 있고 각 사용자들의 음성을 입력받을 수 있는 장치(도 1에서 발화자 단말(200)과 상대 단말(300)에 해당)를 착용 또는 휴대하고 있다고 전제한다. 예를 들어, 사용자들은 이어폰 등의 웨어러블 장비를 착용하거나 스마트폰을 소지할 수 있다. 이들이 서로 만나면 무선 데이터 통신망을 이용하여 각 사용자의 단말과 자동 통역 서버(100)의 연결이 이루어지고, 각 사용자들은 Zero UI 기반 자동 통역 서비스를 이용할 수 있다.
본 발명의 일 실시예에 따른 Zero UI 기반 자동 통역 시스템(10)의 자동 통역 서버(100)는 자동 통역 서비스를 제공받는 각 사용자 단말(발화자 단말(200), 상대 단말(300) 등)의 연결 요청을 수락함으로써 각 사용자 단말과 연결을 형성한다. 자동 통역 서버(100)와 각 사용자 단말의 연결이 형성되면, 자동 통역 서버(100)와 각 사용자 단말은 자동 통역 서비스 제공을 위한 신호/데이터를 교환한다. 자동 통역 서버(100)는 화자 정보를 사전 등록한 후 자동 통역 서비스를 시작한다. 자동 통역 서버(100)는 각 사용자 단말에서 전송하는 복수 개의 음성 신호를 입력받고, 복수 개의 음성 신호 간에 발생한 시간 차이를 보정하며, 음성 신호에 존재하는 환경 잡음을 제거하고, 음성 신호에서 실제 발화가 존재하는 음성 구간을 검출한다. 또한 자동 통역 서버(100)는 검출한 음성 구간에서 발화자의 실제 음성 신호를 선택하여 음성 인식하고, 타겟 언어로 자동으로 번역하여, 자동 번역 결과를 사용자 단말에 전송한다. 자동 통역 서버(100)에서 자동 번역 결과를 전송받은 사용자 단말은 실시예에 따라 달라질 수 있다. 예를 들어, 자동 통역 서버(100)은 자동 통역 서비스를 제공받는 사용자 단말 전체에 자동 번역 결과를 전송할 수도 있고, 번역의 타겟 언어를 구사하는 사용자의 단말에 한해 자동 번역 결과를 전송할 수도 있다.
본 발명의 일 실시예에 따른 Zero UI 기반 자동 통역 시스템(10)의 발화자 단말(200)과 상대 단말(300)은 자동 통역 서비스를 자동 통역 서버(100)에서 제공받기 위해 자동 통역 서버(100)에 연결을 요청하고, 자동 통역 서버(100)가 이 연결을 수락하여 연결이 형성되면, 자동 통역 서버(100)와 자동 통역 서비스를 제공받기 위해 신호/데이터를 교환한다. 발화자 단말(200)은 발화자의 음성 신호를 입력받아 자동 통역 서버(100)에 전송한다. 발화자 단말(200)과 상대 단말(300)은 자동 통역 서버(100)에서 상기 음성 신호에 대한 자동 번역 결과를 전송받고, 자동 번역 결과를 단말기 사용자의 타겟 언어에 따른 문자(예를 들어 자막)나 음성(기 녹음된 음성 또는 합성음)의 형태로 출력한다.
한편, 도 1에서 발화자 단말(200)과 상대 단말(300) 등 두 개의 단말이 자동 통역 서버(100)에 연결되는 것으로 예시하였다. 그러나 본 발명의 일 실시예에 따른 Zero UI 기반 자동 통역 시스템(10)에서 단말의 개수는 이에 한정되지 않는다. 즉, 2개 이상의 단말이 자동 통역 서버(100)에 연결될 수 있다.
도 1에는 도시되지 않았으나, 발화자 단말(200)과 상대 단말(300)에서 음성을 입력받기 위해 단말에 기 장착된 음성 입력 장치나 이어폰 등 웨어러블 장비와 같은 외부 음성 입력 장치가 사용될 수 있다.
도 1에는 도시되지 않았으나, 자동 이득 조절, 음향 반향 취소 등 오디오 사전 처리 효과가 신뢰도 높은 서비스를 제공하는데 방해 요인이 되므로 해당 기능들을 사용하지 않는 음성 입력 장치를 사용하거나 해당 기능을 끄는 것이 바람직하다.
도 2는 본 발명의 일 실시예에 따른 자동 통역 서버(100)의 구성을 나타낸 블록도이다.
도 2에 도시한 바와 같이, 본 발명의 일 실시예에 따른 자동 통역 서버(100)는 통신 모듈(101), 제어기(102), 시간 보정기(103), 잡음 제거기(104), 자동 음성 검출기(105), 전력 레벨 차이 계산기(106), 음성 신호 선택기(107), 화자 특징 벡터 추출기(108), 음성 인식기(109) 및 자동 번역기(110)를 포함하여 구성될 수 있다.
통신 모듈(101)은 자동 통역 서비스를 제공받는 각 사용자 단말과 연결 요청과 수락 과정을 통해 연결을 형성한다. 또한 통신 모듈(101)은 각 사용자 단말에서 음성 신호를 전송받아 제어기(102)에 전달한다. 또한 통신 모듈(101)은 제어기(102)에서 발화자의 음성 신호의 번역 결과 또는 번역 결과를 변환하여 생성한 매체(예를 들면 자막이나 음성)를 각 사용자 단말에 전송한다. 자동 통역 서버(100)에서 자동 번역 결과 또는 상기 매체를 전송받은 사용자 단말은 실시예에 따라 달라질 수 있다. 예를 들어, 통신 모듈(101)은 자동 통역 서비스를 제공받는 사용자 단말 전체에 자동 번역 결과를 전송할 수도 있고, 번역의 타겟 언어를 구사하는 사용자의 단말에 한해 자동 번역 결과를 전송할 수도 있다.
제어기(102)는 자동 통역 서버(100)의 자동 통역 프로세스의 수행을 위해 자동 통역 서버(100)에 포함된 구성 요소를 제어한다. 상기 자동 통역 프로세스는 자동 통역 서버(100)가 자동 통역 서비스를 제공받는 사용자 단말과 연결을 형성하고, 상기 사용자 단말에서 음성 신호를 전송받는 작업(task)에서 번역 결과를 상기 사용자 단말에 전송하는 작업(task)까지 자동 통역 서버(100)에서 진행되는 과정을 말한다. 제어기(102)는 필요에 따라 자동 통역 서버(100) 내의 다른 구성요소와 음성 신호, 가공된 음성 신호, 계산 결과 및 판단 결과를 교환하고, 자동 통역 서버(100)내 버퍼에 데이터를 저장하고 추출한다.
제어기(102)는 시간 보정을 위해 필요한 음성 신호의 길이를 정할 수 있다. 제어기(102)는 통신 모듈(101)이 자동 통역 서비스를 제공받는 각 사용자 단말에서 획득한 음성 신호를 버퍼에 저장하고, 모든 음성 신호를 시간 보정기(103)로 전송한다. 시간 보정기(103)가 도착 시간 지연이 보정된 음성 신호를 제어기(102)에 전송하면, 제어기(102)는 보정된 음성 신호를 자동 통역 서버(100) 내 음성 신호 버퍼에 저장한다.
제어기(102)는 잡음 제거기(104)로 보정된 음성 신호를 전송하고, 잡음 제거기(104)에서 잡음이 제거된 음성 신호(변환된 음성 신호)를 전달받는다.
제어기(102)는 자동 음성 검출기(105)가 생성하는 자동 음성 검출 결과를 저장할 버퍼를 생성한다. 버퍼는 제어기(102)가 음성 인식기(109)에 음성 검출 결과를 순차적으로 넣어주기 위한 임시 저장 공간이다.
또한 제어기(102)는 잡음을 제거한 음성 신호를 자동 음성 검출기(105)로 전송한다. 이 때, 제어기(102)는 자동 음성 검출기(105)으로 전송되는 음성 신호의 길이를 실시간 처리에 적합한 길이(예를 들면 0.1초)로 정한다. 자동 음성 검출기(105)가 음성 신호에서 음성 시작점과 끝점(음성 구간)을 검출한 결과를 제어기(102)로 전송하면, 제어기(102)는 자동 음성 검출 결과를 버퍼에 저장한다.
제어기(102)는 잡음이 제거된 음성 신호를 전력 레벨 차이 계산기(106)에 전송한다. 제어기(102)는 실시간 처리에 적합한 길이(예를 들면 0.1초)의 음성 신호를 전력 레벨 차이 계산기(106)에 전송한다. 자동 음성 검출기(105)와 전력 레벨 차이 계산기(106)가 받는 음성 신호(잡음이 제거되고 백색 잡음이 추가된 음성 신호)는 동일하다. 전력 레벨 차이 계산기(106)는 전력 레벨 차이 계산 결과를 제어기(102)로 전송하고, 제어기(102)는 전력 레벨 차이의 절대값이 정해진 임계치(예를 들어 0.1)보다 작은 경우 사용자들 중 아무도 발화하지 않아 잡음만 입력된 잡음 구간으로 기록한다. 두 사용자의 음성 신호에 대한 전력 레벨 중 발화자의 음성이 발화자 단말(200)에 가장 크게 입력되고 상대 단말(300)에는 상대적으로 작게 입력되기 때문에 자동 통역 서버(100)는 전력 레벨 차이를 이용하여 실제 발화한 사용자의 단말 정보를 획득할 수 있다.
제어기(102)는 자동 음성 검출기(105)와 전력 레벨 차이 계산기(106)의 수행 결과(음성 구간 및 전력 레벨 차이 정보)를 음성 신호 선택기(107)로 전송한다. 제어기(102)는 음성 신호 선택기(107)가 음성 구간을 잡음으로 판단한 경우, 그 결과를 음성 신호 선택기(107)에서 전달받는다. 또한, 제어기(102)는 화자 특징 벡터 추출기(108)가 음성 인식 대상 구간을 검증한 결과를 전달다는다.
제어기(102)는 음성 신호 선택기(107)와 화자 특징 벡터 추출기(108)에 의해 선택/검증된 음성 신호를 순차적으로 음성 인식기(109)에 입력할 수 있도록 상기 음성 신호를 자동 통역 서버(100) 내의 버퍼에 저장한다. 이 때 버퍼에는 잡음 제거 및 백색 잡음 추가가 되지 않은 원시 음성 신호를 저장하는 것이 바람직하다.
제어기(102)는 선택된 음성 신호를 음성 인식기(109)로 전송하고, 자동 번역기(110)에서 선택된 음성 신호에 대한 번역 결과를 전달받는다.
제어기(102)는 번역 결과를 기초로 상대 단말(300)의 사용자가 이해하기 쉬운 매체(예를 들면, 자막, 음성 또는 합성음)를 생성하고, 상기 매체를 통신 모듈(101)에 전달한다.
본 발명의 다른 실시예에서, 제어기(102)는 번역 결과를 통신 모듈(101)에 전달하고, 통신 모듈(101)은 번역 결과를 각 사용자 단말에 전송한다. 각 사용자 단말(발화자 단말(200) 및 상대 단말(300)을 포함)은 번역 결과를 타겟 언어로 된 매체(예를 들면, 자막, 음성 또는 합성음)로 변환하여(생성하여) 출력할 수 있다.
시간 보정기(103)는 각 단말에서 전송받은 음성 신호의 시간 차이(시간 지연)를 보정한다. 음성 신호 간 시간 차이가 발생하는 원인은 다양하다. 예를 들어, 면대면 대화에서 발화자의 음성은 발화자 단말(200)과 상대 단말(300)에 모두 입력되어 자동 통역 서버(100)로 전송되는데, 발화자와 발화자 단말(200) 간의 거리와 발화자의 상대 단말(300) 간의 거리가 다른 경우, 각 단말에 음성이 도착하는 시간의 차이가 발생한다. 이 경우 각 단말에서 자동 통역 서버(100)로 전송된 복수 개의 음성 신호 처리를 위해서는 음성 신호의 도착 시간 지연(복수 개의 음성 신호 간의 시간 차이)을 보정하는 작업이 필요하다. 또한, 시간 보정기(103)은 자동 통역 시스템의 음성 신호 처리 지연으로 인한 음성 신호 간 시간 차이를 보정할 수 있다.
시간 보정기(103)는 제어기(102)에서 각 단말에서 획득한 음성 신호를 전달받는다. 시간 보정기(103)는 소정의 절차를 거쳐 도착 시간 지연이 보정된 음성 신호를 제어기(102)에 전송한다. 모든 사용자가 소지한 음성 입력 장치를 통해 입력되는 음성 신호들은 시간 보정기(103)를 이용하여 보정된다.
시간 보정기(103)는 제어기(102)에서 전달받은 음성 신호를 푸리에 변환(fourier transform)하여 음성 신호 특징(예를 들어, 스펙트럼(spectrum))을 획득한다. 또한, 시간 보정기(103)는 스펙트럼의 위상(phase) 값을 이용하여 상관 관계를 계산한다(generalized cross correlation phase transform, 이하 'GCC-PHAT'). 또한, 시간 보정기(103)는 GCC-PHAT에서 가장 큰 상관 관계를 보이는 지점(offset)을 찾은 후, 해당 정보를 이용하여 2개 이상의 신호간에 발생한 도착 시간 지연(time delay of arrival)을 보상(compensation)한다. 즉, 시간 보정기(103)은 음성 신호를 시간-주파수 관계의 스펙트럼으로 표현하였을 때 획득할 수 있는 위상 정보를 기반으로 상호 상관(cross-correlation)을 도출하고, 이 상관관계를 이용하여 사용자 단말 간 발생하는 시간 차이를 보정한다. GCC-PHAT를 이용한 도착 시간 지연 보상 방법은 시간 보정기(103)가 사용할 수 있는 시간 보정 방법 중 하나이다. 본 발명에서 시간 보정기(103)가 사용하는 시간 보정 방법은 이에 한정되지 않고 다양한 방법이 있을 수 있다.
시간 보정기(103)은 보정된 음성 신호를 제어기(102)에 전송한다. 제어기(102)는 보정된 음성 신호를 서버 내 음성 신호 버퍼에 저장한다.
본 발명의 일 실시예에 따른 자동 통역 방법은, 잡음 제거 이전에 시간 지연 보정을 실시한다. 즉, 제어기(102)가 잡음 제거기(104)에 전송하는 음성 신호는 시간 보정기(103)를 이용하여 도착 시간 지연을 보정한 음성 신호이다. 잡음 제거 이전에 시간 지연 보정을 하는 이유는 잡음 제거는 원시 음성 신호 데이터를 왜곡하기 때문에 잡음 제거 후에 정확한 시간 보정이 이루어지지 않을 수 있기 때문이다. 또한 전력 레벨 비율(Power Level Ratio, 이하 'PLR'이라고 함)과 전력 레벨 차이(Power Level Difference, 이하 'PLD'라고 함)는 모든 사용자의 음성 신호가 같은 시간을 나타낼 때 신뢰도가 가장 높다.
잡음 제거기(104)는 음성 신호에 존재하는 환경 잡음을 제거한다. 잡음 제거기(104)는 음성 신호의 에너지 비율 기반 알고리즘을 통해 잡음을 제거한다. 상기 에너지 비율 기반 알고리즘은, 두 음성 신호의 전력 스펙트럼 밀도로 비율을 도출해내고 잡음 제거 함수를 정의 및 적용하여 잡음을 제거하는 알고리즘이다. 본 발명의 일 실시예에 따른 잡음 제거기(104)는 PLR 기반의 잡음 제거기로서, 2개 채널을 이용하여 잡음을 제거한다. 잡음 제거기(104)는 입력 받은 음성 신호에 대한 특징 값(예를 들어 스펙트럼)을 푸리에 변환을 이용하여 추출한 다음, PLR을 계산하고 이를 이용하여 잡음 제거 함수를 도출한다. 잡음 제거기(104)는 잡음 제거 함수와 음성 신호 특징 값(예를 들어 스펙트럼)을 이용하여 잡음이 제거된 음성 스펙트럼을 획득한다.
잡음 제거기(104)는 제어기(102)에서 보정된 음성 신호를 전달받고, 제어기(102)에 잡음이 제거된 음성 신호(변환된 음성 신호)를 전송한다.
잡음 제거기(104)의 잡음 제거 과정에서 정의하는 잡음 제거 함수(이득 함수, gain function)는 조절 가능한 파라미터를 가진다.
잡음 제거기(104)는 제어기(102)에서 음성 신호를 전달받고, 그 음성 신호가 실시간 음성 처리에 적합한 길이(예를 들어 0.1초)가 아니라면 제어기(102)에서 다시 음성 신호를 받는다.
잡음 제거기(104)는 입력 받은 음성 신호에 대한 특징 값(예를 들어 스펙트럼)을 푸리에 변환을 이용하여 추출한다. 또한, 잡음 제거기(104)는 PLR을 계산하고, 이를 이용하여 잡음 제거 함수를 도출한다. 또한, 잡음 제거기(104)는 잡음 제거 함수와 음성 스펙트럼을 이용하여 잡음이 제거된 음성 스펙트럼을 획득한다.
잡음 제거기(104)는 잡음이 제거된 음성 신호 특징에 백색 잡음(white noise)을 추가하고 역푸리에 변환(inverse Fourier transform)과 겹침 합산(overlap-and-add)을 이용하여 다시 음성 신호로 변환한다.
잡음 제거기(104)가 수행하는 잡음 제거 과정 중 백색 잡음을 추가하는 것은 잡음 제거 후 남아있는 음성 구간 신호가 강할수록 약한 백색 잡음을, 약할수록 강한 백색 잡음을 추가함으로써 자동 음성 검출기(105)가 음성을 확실히 구분할 수 있도록 유도하기 위한 것이다. 백색 잡음은 비음성 구간, 음성 구간 구분 없이 추가되나, 음성 구분을 위해 비음성구간에 백색 잡음이 추가하는 작업이 중요하다. 잡음 제거기(104)가 자동 음성 검출기(105)가 음성을 확실하게 구분하도록 유도하는 방법은 다양한 방법이 있을 수 있다. 상술한 방법은 본 발명의 실시예 중 하나일 뿐이다.
잡음 제거기(104)는 잡음이 제거된 음성 신호(변환된 음성 신호)를 제어기(102)로 전송한다.
자동 음성 검출기(105)는 사전에 정의된 규칙에 따라 음성 신호에서 자동으로 실제 발화 음성의 시작점과 끝점을 검출한다. 즉, 자동 음성 검출기(105)는 발화자가 원시 언어로 발화한 음성에서 실제 발화가 존재하는 구간을 검출한다. 자동 음성 검출기(105)는 음성 존재 확률을 계산하고, 계산된 음성 존재 확률을 사전에 정의된 규칙에 대입하여 음성의 시작점과 끝점을 검출(End Point Detection, 이하 'EPD'라고 함)한다. 자동 음성 검출기(105)에서 음성 신호를 분석하여 음성 존재 확률을 계산하는 기능은 신경망(neural network)으로 사전 학습된 엔진 또는 에너지 기반 음성 검출 엔진 등으로 구현할 수 있으나 이에 한정되지는 않는다.
자동 음성 검출기(105)는 음성의 시작점과 끝점을 검출하기 위하여 Prob (확률 값)라는 파라미터를 이용한다. Prob는 자동으로 음성 구간을 검출하기 위하여 음성 신호의 특정 프레임에서 획득한 음성 존재 확률 값과 이전까지의 Prob값을 가중 평균하는 방식으로 산출할 수 있다. 즉, Prob는 음성 존재 확률의 누적 평균값이 저장되는 파라미터이다.
자동 음성 검출기(105)는 제어기(102)에서 잡음을 제거한 음성 신호를 전달받는다. 이 때, 자동 음성 검출기(105)으로 전송되는 음성 신호의 길이는 실시간 처리에 적합한 길이(예를 들면 0.1초)로 정한다. 본 실시예에서는 0.1초 단위로 자동 음성 검출하는 방법을 예시하였으나 이에 한정되지 않는다. 자동 음성 검출기(105)가 제어기(102)에서 받는 음성 신호는 잡음이 제거되고 백색 잡음이 추가된 음성 신호이다.
자동 음성 검출기(105)는 사전 학습한 기계 학습 기반 음성 검출 모델에 전송받은 음성 신호를 입력하여 음성 존재 확률을 산출하고, Prob 값에 음성 존재 확률을 누적한다.
자동 음성 검출기(105)는 Prob 값이 설정된 음성 시작점 임계치(예를 들어 60% 또는 80%)보다 큰 값을 가지면, 음성 시작점을 기록한다. 자동 음성 검출기(105)는 Prob 값이 설정된 음성 끝점 임계치(예를 들어 20% 또는 40%)보다 작은 값을 가지면 음성 끝점을 기록한다. 음성 시작점 임계치와 음성 끝점 임계치는 예시한 값에 한정되지 않으며, 이와 다른 값을 가질 수 있다.
본 발명의 다른 실시예로서, 자동 음성 검출기(105)는 Prob 값이 정해진 음성 끝점 임계치보다 작게 되더라도 바로 음성 끝점으로 기록하지 않고 체크포인트(checkpoint)로 기록할 수 있다. 이 경우, 자동 음성 검출기(105)는 체크포인트 지점 이후 일정 기간(예를 들어, 20 프레임) 발화의 끝 여부를 확인하여 음성 끝점을 검출한다. 발화 끝 여부를 확인하는 방법은 일정 기간 음성이 검출되는지, 장기 침묵에 해당하는지 확인하는 방법을 사용할 수 있으며 상술한 방법에 한정되지 않는다.
본 발명의 일 실시예에서 자동 음성 검출기(105)가 사용한 음성 검출 모델은 기계 학습으로 사전 학습한 모델이지만, 이에 한정되지 않는다. 차후 성능 개선에 따라 다양한 형태의 음성 검출 모델을 자동 음성 검출기(105)에 적용할 수 있다.
자동 음성 검출기(105)가 음성 신호에서 실제 발화 음성의 시작점과 끝점을 검출한 결과를 제어기(102)로 전송하면, 제어기(102)는 자동 음성 검출 결과를 버퍼에 저장한다.
자동 음성 검출기(105)가 실제 발화 음성 구간을 자동으로 결정하므로, 사용자는 화면 터치 및 버튼 클릭으로 인한 불편함 없이 자연스러운 대화를 할 수 있다.
자동 통역 서버(100)는 음성 신호 선택을 위해 자동 음성 검출기(105)와 전력 레벨 차이 계산기(106), 화자 특징 벡터 추출기(108)를 이용할 수 있다.
자동 음성 검출기(105)와 후술할 전력 레벨 차이 계산기(106)는 병렬적으로 동작할 수 있다. 예를 들어, 자동 음성 검출기(105)와 전력 레벨 차이 계산기(106)는 동시에 동작할 수 있다.
전력 레벨 차이 계산기(106)는 자동 통역 서버(100)가 음성 신호에서 음성을 실제 발화한 사용자의 단말 정보를 획득할 수 있도록 복수 개의 음성 신호에서 에너지 값을 추출하고, 프레임별로 에너지 평균값의 차이를 계산하는 기능을 수행한다.
전력 레벨 차이 계산기(106)는 제어기(102)에서 잡음이 제거된 음성 신호를 전달받는다. 자동 음성 검출기(105)와 전력 레벨 차이 계산기(106)는 상술한 것과 같이 제어기(102)에서 실시간 처리에 적합한 길이의 음성 신호를 전송받는다. 자동 음성 검출기(105)와 전력 레벨 차이 계산기(106)가 받는 음성 신호는 동일하다(잡음이 제거되고 백색 잡음이 추가된 음성 신호).
전력 레벨 차이 계산기(106)는 잡음이 제거된 음성 신호에서 음성 신호 특징 값 및 전력 스펙트럼 밀도를 추출한다. 또한, 전력 레벨 차이 계산기(106)는 음성 신호 특징 값과 전력 스펙트럼 밀도의 가중합을 계산하여 버퍼에 저장한다. 또한, 전력 레벨 차이 계산기(106)는 버퍼에 저장된 가중합을 이용하여 프레임별 평균 값의 차이를 계산한 후, 이를 버퍼에 저장한다.
제어기(102)는 전력 레벨 차이의 절대값이 정해진 임계치(예를 들어 0.1)보다 작은 경우 사용자들 중 아무도 발화하지 않아 잡음만 입력된 잡음 구간으로 기록한다. 또한, 두 사용자의 음성 신호에 대한 전력 레벨 중 발화자의 음성이 발화자 단말(200)에 가장 크게 입력되고 상대 단말(300)에는 상대적으로 작게 입력되기 때문에 자동 통역 서버(100)는 전력 레벨 차이를 이용하여 실제 발화한 사용자의 단말 정보를 획득할 수 있다.
전력 레벨 차이 계산기(106)는 전력 레벨 차이 계산 결과를 제어기(102)로 전송한다.
자동 통역 서버(100)는 음성 신호 선택을 위해 자동 음성 검출기(105)와 전력 레벨 차이 계산기(106), 화자 특징 벡터 추출기(108)를 이용할 수 있다. 이 때, 자동 음성 검출기(105)와 전력 레벨 차이 계산기(106)는 병렬적으로 동작할 수 있다. 예를 들어, 자동 음성 검출기(105)와 전력 레벨 차이 계산기(106)는 동시에 동작할 수 있다.
음성 신호 선택기(107)는 PLD를 이용하여 실제 발화한 사용자의 정보와 음성 신호 데이터를 결정(선택)한다. 즉, 음성 신호 선택기(107)는 PLD를 기반으로 서버에 전송된 음성 신호들 중 가장 에너지가 큰 신호를 선택한다(에너지 기반 음성 신호 선택 알고리즘). 에너지 기반 음성 신호 선택 알고리즘은, 각 음성 신호에서 에너지 값을 추출하고 그 차이를 이용하여 각 음성 신호 중 실제로 발화가 입력된 음성 신호를 선택하는 알고리즘이다. 음성 신호 선택기(107)는, 한 사용자의 음성이 발화자 단말(200)과 상대 단말(300)에 동시에 입력되는 크로스톡 현상으로 인하여 오작동을 일으켰던 종래의 자동 통역 기술과는 달리, 음성이 발화자 단말(200)로 입력되었던 것임을 식별할 수 있으므로 자동 통역 서비스가 강인하게 동작할 수 있도록 한다.
음성 신호 선택기(107)는 제어기(102)에서 음성 신호 중 음성 구간 및 전력 레벨 차이 정보를 전달받는다.
음성 신호 선택기(107)는 음성 구간 정보와 전력 레벨 차이 정보를 이용하여 구간 내 실제 음성 프레임 개수를 산출한다.
음성 신호 선택기(107)는 음성 프레임 개수가 정해진 기준치 이상인지 판단하고, 음성 프레임 개수가 정해진 기준치 미만인 경우 실제 유의미한 음성 신호가 포함되지 않기 때문에 해당 구간을 잡음으로 판단하고, 판정 결과를 제어기(102)에 전송한다. 음성 신호 선택기(107)는 음성 프레임 개수가 정해진 기준치 이상인 경우, 음성 신호 결정(선택) 알고리즘을 수행한다. 음성 신호 결정 알고리즘은, 음성 신호 선택기(107)에 입력된 음성 신호들 간의 전력 레벨 차이를 이용하여 입력된 음성 신호들 중에서 가장 에너지가 큰 신호를 선택하는 알고리즘일 수 있다.
상술한 방법을 이용하면 크로스톡 문제에서 한 발성에 대해 입력된 여러 채널 중 가장 에너지가 큰 하나의 채널을 선택할 수 있다. 통상적으로 발성은 발화자의 음성 입력 장치에 가장 크게 입력되므로 상술한 방법으로 선택된 채널은 발화자의 음성 신호이다. 따라서 상술한 방법으로 크로스톡 문제를 해소할 수 있다.
음성 신호 선택기(107)는 음성 신호 선택 결과를 화자 특징 벡터 추출기(108)에 전송한다.
화자 특징 벡터 추출기(108)는 음성 신호 선택기(107)에서 선택된 음성 신호를 기초로 화자 특징 벡터를 추출하고, 사전에 등록된 화자 특징 벡터와 유사도를 산출하여 대화 참가자 신호를 검증한다. 즉, 화자 특징 벡터 추출기(108)는 음성 신호 선택기(107)에서 선택된 음성 신호가 사전에 등록된 화자 특징 벡터에 대응하는 발화자의 음성 신호인지 검증한다.
화자 특징 벡터 추출기(108)는 음성 신호 선택기(107)에서 음성 신호 선택 결과를 전달받는다.
화자 특징 벡터 추출기(108)는 선택된 음성 신호를 기초로 화자 특징 벡터를 추출하고, 사전에 등록된 화자 특징 벡터와 유사도를 산출하는 방식으로 대화 참가자 신호를 검증하여 이외의 신호를 필터링할 수 있다. 여기서 화자 특징 벡터란, 정해진 실제 발화 구간 음성 신호가 일정 차원의, 숫자로 표현된 벡터로 변환된 것을 말한다.
화자 특징 벡터 추출기(108)은 음성 인식 대상 구간의 검증 결과를 제어기(102)에 전송한다.
음성 인식기(109)는 선택된 음성 신호를 해석하여 문자 데이터로 전환하는 기능(음성 인식 기능)을 수행한다. 즉, 음성 신호를 기초로 의미하는 바를 획득한다.
제어기(102)는 음성 신호 선택기(107)와 화자 특징 벡터 추출기(108)에 의해 선택/검증된 음성 신호를 순차적으로 음성 인식기(109)에 입력할 수 있도록 상기 음성 신호를 자동 통역 서버(100) 내의 버퍼에 저장한다. 이 때 버퍼에는 잡음 제거 및 백색 잡음 추가가 되지 않은 원시 음성 신호를 저장하는 것이 바람직하다.
음성 인식기(109)는 제어기(102)에서 상기 선택/검증된 음성 신호를 전달받는다.
또한, 음성 인식기(109)는 선택된 음성 신호를 사전에 학습된 모델에 입력하여 음성 인식을 수행한다.
또한, 음성 인식기(109)는 음성 인식 결과를 자동 번역기(110)에 전송한다.
자동 번역기(110)는 음성 인식 결과를 타겟 언어로 자동 번역한다.
본 발명의 일 실시예에 따른 자동 통역 서버(100)는 음성 인식기(109)와 자동 번역기(110)를 별개의 구성요소로 취급하지만, 본 발명의 다른 실시예에 따를 경우, 음성 인식기(109)와 자동 번역기(110)는 음성 인식과 자동 번역 기능을 통합적으로 수행하는 종단형 자동 통역기(end-to-end automatic speech translator)로 대체될 수 있다.
자동 번역기(110)는 음성 인식기(109)에서 음성 인식 결과를 전달받는다.
또한, 자동 번역기(110)는 음성 인식 결과를 상대 단말(300)에 설정된 상대방의 타겟 언어로 번역한다.
또한, 자동 번역기(110)는 번역 결과를 제어기(102)에 전송한다. 제어기(102)는 번역 결과를 상대 단말(300)의 사용자가 이해하기 쉬운 매체(예를 들면, 자막이나 음성)로 변환하고, 상기 매체를 통신 모듈(101)에 전달한다. 통신 모듈(101)은 상기 매체를 각 단말에 전송할 수 있다. 상기 매체는 상대 사용자가 발화자의 의도를 파악할 수 있는 매체이면 충분하다.
본 발명의 다른 실시예에서, 제어기(102)는 번역 결과를 통신 모듈(101)에 전달하고, 통신 모듈(101)은 번역 결과를 각 단말에 전송할 수 있다.
도 3은 본 발명의 일 실시예에 따른 Zero UI 기반 자동 통역 시스템(10)의 자동 통역 방법을 설명하기 위한 흐름도이다. 도 3에는 발화자 단말(200) 및 상대 단말(300)만 예시되었으나, 이 외에도 서버와 연결되는 단말이 추가될 수 있다.
단계 S101에서, 자동 통역 서버(100)는 자동 통역 서비스를 제공받는 각 단말의 연결 요청을 대기한다.
단계 S102, S103에서, 각 단말(도 3에서 발화자 단말(200) 및 상대 단말(300)을 말함. 이하 동일)에서 자동 통역 시스템 서버로 연결 요청이 전송된다.
단계 S104, S105에서, 자동 통역 서버(100)가 상기 연결 요청을 수락하면 각 단말은 자동 통역 서버(100)와 연결된다.
단계 S106에서, 자동 통역 서버(100)는 자동 통역 서버(100)에 연결된 단말의 개수가 2개 미만인 경우 서비스 시작을 거절하고 단계 S101로 돌아가 추가 단말 연결을 위해 대기할 수 있다.
단계 S107에서, 자동 통역 서버(100)는 서비스 시작 전에 대화 참가자의 화자 특징 벡터를 추출하기 위해 사전 등록 절차를 수행할 수 있다. 사전 등록 절차는 자동 통역 서비스 시작 이전에 몇 번의 발화를 통해 발화자의 화자 특징 벡터를 추출하는 과정이다. 자동 통역 서버(100)는 발화자의 화자 특징 벡터가 추출되면 자동 통역 서비스를 시작한다.
단계 S108 및 단계 S109에서, 자동 통역 서버(100)는 각 단말에서 자동 통역 서비스의 시작을 알리고, 음성 입력을 요청한다.
단계 S110에서, 발화자 단말(200)은 사용자의 음성 신호를 입력받는다.
단계 S111에서, 발화자 단말(200)은 사용자(발화자)의 음성 신호를 자동 통역 서버(100)에 전송한다.
단계 S112에서, 자동 통역 서버(100)는 입력받은 음성 신호를 가공하고, 음성 인식 및 자동 번역을 수행한다. 즉, 자동 통역 서버(100)는 사용자(발화자)의 음성 신호를 이용하여 음성 인식 결과와 자동 번역 결과를 획득한다.
단계 S113 및 S114에서, 서버는 자동 번역 결과를 발화자 단말(200)과 상대 단말(300)에 전송한다.
단계 S115에서 발화자 단말(200)은 자동 통역 서버(100)에서 수신한 결과를 타겟 언어로 된 매체로 변환하여 출력하고, 발화자는 이를 통해 자동 통역이 잘 이루어지고 있는지 확인할 수 있다. 상기 매체의 예를 들면, 자막, 음성 또는 합성음이 있다.
단계 S116에서 상대 단말(300)은 자동 통역 서버(100)에서 수신한 결과를 상대 단말(300)의 사용자의 언어(타겟 언어)로 된 매체로 변환하여 출력한다. 상기 매체의 예를 들면, 자막, 음성 또는 합성음이 있다.
도 3에는 도시되지 않았으나, 단계 S110에서 발화자 단말에 음성이 입력될 때 상대방 단말에도 입력될 수 있다.
본 발명에서 음성을 처리한다는 것은, 사용자 발화의 음성 데이터를 자동 통역 서버(100)의 구성 요소인 시간 보정기(103), 잡음 제거기(104), 자동 음성 검출기(105), 전력 레벨 차이 계산기(106), 음성 신호 선택기(107), 화자 특징 벡터 추출기(108), 음성 인식기(109), 자동 번역기(110)에 입력할 수 있는 형태로 가공한다는 의미를 포함한다.
도 4는 본 발명의 일 실시예에 따른 자동 통역 서버(100)가 수행하는 자동 통역 서비스 제공 방법을 설명하기 위한 흐름도이다.
단계 S201에서, 자동 통역 서버(100)는 모든 사용자 단말과 연결되면 상호 합의에 의해 Zero UI 기반 자동 통역 서비스를 시작한다. 자동 통역 서버(100)가 화자 정보를 사전에 등록하는 과정은 단계 S107과 같다.
단계 S202에서, 각 사용자 단말에서 음성을 입력받아 자동 통역 서버(100)에 전송한다. 모든 사용자가 소지한 음성 입력 장치를 통해 입력되는 음성 신호들은 시간 보정기(103)를 이용하여 보정된다. 시간 보정기(103)는 각 단말 간의 시간 차이를 보정한다. 이 때 사용자 단말 간 발생하는 시간 차이는 위상 기반 상호 상관(phase-based cross-correlation)을 통해 보정될 수 있다. 즉, 각 사용자 단말에서 전송받은 복수 개의 음성 신호 간 시간의 차이가 발생하며, 이러한 시간의 차이는 위상 기반 상호 상관을 통해 보정될 수 있다.
단계 S203에서, 자동 통역 서버(100)는 음성 신호의 실시간 처리를 위하여 일정 시간 간격(예를 들어, 매 0.1초 간격)으로 각 사용자 단말에서 음성 신호를 전송받아 자동 통역 서비스를 수행한다. 본 발명에서 실시간 음성 신호 처리를 위해 0.1초 간격으로 음성 신호를 입력 받는 것으로 예시하였으나 이에 한정되지는 않는다.
도 4에는 도시되지 않았으나, 각 사용자 단말에서 전송받은 음성 신호는 사용자가 위치한 환경에 따른 잡음(환경 잡음)이 존재할 수 있다. 단계 S204에서, 자동 통역 서버(100)는 잡음 제거기(104)로 음성 신호에 존재하는 환경 잡음을 제거한다. 잡음 제거기(104)는 음성 신호의 에너지 비율 기반 알고리즘을 통해 음성 신호에 존재하는 잡음을 제거한다. 에너지 비율 기반 알고리즘은, 두 음성 신호의 전력 스펙트럼 밀도로 비율을 도출해내고 잡음 제거 함수를 정의 및 적용하여 잡음을 제거하는 알고리즘이다. 잡음 제거기(104)는 전력 레벨 비율(power level ratio, 이하 'PLR'이라 함) 기반의 잡음 제거기로서, 2개 채널을 이용하여 잡음을 제거한다. 잡음 제거기(104)는 입력 받은 음성 신호에 대한 특징 값(예를 들어 스펙트럼)을 푸리에 변환을 이용하여 추출한 다음, PLR을 계산하고 이를 이용하여 잡음 제거 함수를 도출한다. 잡음 제거기(104)는 잡음 제거 함수와 음성 신호 특징 값(예를 들어 스펙트럼)을 이용하여 잡음이 제거된 음성 스펙트럼을 획득한다.
단계 S205에서, 자동 통역 서버(100)는 자동 음성 검출기(105)를 이용하여 음성 존재 확률을 계산하고, 계산된 음성 존재 확률을 사전에 정의된 규칙에 대입하여 음성의 시작점과 끝점을 검출(End Point Detection, 이하 'EPD'라고 함)한다. 즉, 자동 음성 검출기(105)는 발화자가 원시 언어로 발화한 음성에서 실제 발화가 존재하는 구간을 검출한다. 자동 음성 검출기(105)에서 음성 신호를 분석하여 음성 존재 확률을 계산하는 기능은 신경망(neural network)으로 사전 학습된 엔진 또는 에너지 기반 음성 검출 엔진 등으로 구현할 수 있으나 이에 한정되지는 않는다.
단계 S206에서, 자동 통역 서버(100)는 입력 받은 두 음성 신호의 전력 스펙트럼 밀도(Power Spectral Density, 이하 'PSD'이라 함)를 획득한다. 또한, 자동 통역 서버(100)는 해당 프레임의 음성 신호 간 전력 레벨 차이(Power Level Difference, 이하 'PLD'이라 함)를 계산하여 버퍼에 저장한다.
단계 S207에서, 자동 통역 서버(100)는 음성 검출(EPD)이 되었는지 판단한다. 자동 통역 서버(100)는 음성이 검출되지 않은 경우 단계 S203로 이동하여 그 이후 과정을 다시 수행하고, 음성이 검출된 경우 단계 S208로 이동한다.
단계 S208에서, 자동 통역 서버(100)의 음성 신호 선택기(107)는 PLD를 기반으로 자동 통역 서버(100)에 전송된 음성 신호들 중 가장 에너지가 큰 신호를 선택한다(에너지 기반 음성 신호 선택 알고리즘). 즉, 음성 신호 선택기(107)는 PLD를 이용하여 실제 발화한 사용자의 정보와 음성 신호 데이터를 결정한다. 에너지 기반 음성 신호 선택 알고리즘은, 각 음성 신호에서 에너지 값을 추출하고 그 차이를 이용하여 각 음성 신호 중 실제로 발화가 입력된 음성 신호를 선택하는 알고리즘이다. 단계 S208에서, 한 사용자의 음성이 발화자 단말(200)과 상대 단말(300)에 동시에 입력되는 크로스톡 현상으로 인하여 오작동을 일으켰던 종래의 자동 통역 기술과는 달리, 음성 신호 선택기(107)가 음성이 발화자 단말(200)로 입력되었던 것임을 식별할 수 있으므로 자동 통역 서비스가 강인하게 동작할 수 있다.
단계 S209에서, 자동 통역 서버(100)는 선택된 신호가 타겟 화자의 음성인지 검증한다. 자동 통역 서버(100)는 선택된 음성 신호에서 화자 특징 벡터를 추출하고, 사전에 등록된 화자 특징 벡터와 유사도를 비교하는 방법을 사용하여 선택된 신호가 타겟 화자의 음성인지 검증할 수 있다. 선택된 신호가 타겟 화자의 음성이라면 단계 S210을 진행하고, 선택된 신호가 타겟 화자의 음성이 아니라면 단계 S203로 이동하여 그 이후 과정을 다시 수행한다. 여기서 화자 특징 벡터란, 정해진 실제 발화 구간 음성 신호가 일정 차원의 숫자로 표현되는 벡터로 변환된 것을 말한다.
단계 S210에서, 선택된 음성 신호 데이터를 음성 인식기(109)에 입력하여 음성 인식 결과를 획득한다. 즉, 음성 신호 데이터를 기초로 의미하는 바를 획득한다.
단계 S211에서, 자동 통역 서버(100)의 자동 번역기(110)는 획득한 음성 인식 결과를 상대의 타겟 언어로 자동 번역한다. 자동 번역 결과는 상대방이 이해할 수 있는 매체(예를 들면 자막이나 음성)로 변환한 후 상대 단말(300)에 전송하여 상대방이 확인할 수 있다. 상기 매체는 상대 사용자가 발화자의 의도를 파악할 수 있는 매체이면 충분하다.
도 4에는 도시되지 않았으나 단계 S210에서 사용하는 종단형(end-to-end) 음성 인식기(109) 및 단계 S211에서 사용하는 자동 번역기(110)는 사전에 기계 학습(machine learning)으로 학습된 모델이며 차후 성능 개선에 따라 각 단계에 사용되는 기계 학습 모델은 본 실시예에서 사용한 모델과 상이할 수 있고 각 음성 인식 엔진 및 자동 번역 엔진의 구현은 기계 학습으로 한정되지 않는다.
또한, 도 4 및 도 10에서 음성 인식기(109)와 자동 번역기(110)는 분리된 모습으로 예시되어 있으나, 이들은 하나로 통합될 수 있다. 즉, 음성 인식 과정과 자동 번역 과정이 하나의 과정으로 통합될 수 있다. 이처럼 음성 인식기(109)와 자동 번역기(110)가 하나로 통합된 형태를 '종단형 자동 통역(end-to-end automatic speech translation)'이라 부른다. 본 발명이 종단형 자동 통역 장치에도 적용될 수 있음은 당연하다.
단계 S212에서, 더 이상 대화가 지속되지 않는 경우 상호 합의 하에 Zero UI 기반 자동 통역 서비스를 종료할 수 있다. 대화가 계속 이어지는 경우 단계 S203으로 이동하여 상술한 과정을 다시 수행한다.
도 5는 본 발명의 일 실시예에 따른, 자동 통역 서버(100)가 음성 신호 간 시간 차이를 보정하는 방법을 설명하기 위한 흐름도이다.
자동 통역 서버(100)의 제어기(102)는 시간 보정을 위해 필요한 음성 신호의 길이를 정할 수 있다. 단계 S301에서, 자동 통역 서버(100)의 통신 모듈(101)은 자동 통역 서비스를 제공받는 각 단말에서 음성 신호를 입력받는다.
단계 S302에서, 통신 모듈(101)은 입력받은 음성 신호를 제어기(102)에 전달한다.
단계 S303에서, 제어기(102)는 통신 모듈(101)이 각 단말에서 입력받은 음성 신호를 버퍼에 저장한다.
단계 S304에서, 음성 신호 버퍼의 길이가 사전에 정의한 기준치(예를 들어 0.5초)를 초과하는지 확인하고 초과하지 않는 경우 단계 S301로 이동하여 음성 신호를 입력 받는다. 음성 신호 길이가 기준치를 초과하는 경우 단계 S305를 진행한다.
단계 S305에서, 제어기(102)는 모든 사용자의 음성 신호(각 단말 또는 단말에 연결된 음성 입력 장치에 입력된 음성 신호)를 시간 보정기(103)로 전송한다.
단계 S306에서, 시간 보정기(103)는 획득한 음성 신호를 푸리에 변환(fourier transform)하여 음성 신호 특징(예를 들어, 시간-주파수 관계의 스펙트럼(spectrum))을 획득한다.
단계 S307에서, 시간 보정기(103)는 스펙트럼의 위상(phase) 값을 이용하여 상관 관계를 계산한다(generalized cross correlation phase transform, 이하 'GCC-PHAT'이라 함).
단계 S308에서, 시간 보정기(103)는 GCC-PHAT에서 가장 큰 상관 관계를 보이는 지점(offset)을 찾은 후, 해당 정보를 이용하여 두 신호간에 발생한 도착 시간 지연(time delay of arrival)을 보상(compensation)한다. 즉, 시간 보정기(103)는 위상 기반 상호 상관(phase-based cross-correlation)을 통해 사용자 단말간 발생하는 시간 차이를 보정한다.
단계 S309에서, 시간 보정기(103)은 보정된 음성 신호를 제어기(102)에 전송한다. 제어기(102)는 서버 내 음성 신호 버퍼에 저장한다.
GCC-PHAT를 이용한 도착 시간 지연 보상 방법은 시간 보정기(103)가 사용할 수 있는 시간 보정 방법 중 하나이다. 본 발명에서 시간 보정기(103)가 사용하는 시간 보정 방법은 이에 한정되지 않고 다양한 방법이 있을 수 있다.
도 6은 본 발명의 일 실시예에 따른, 자동 통역 서버(100)가 사용자 주변 환경에 존재하는 잡음을 제거하는 방법을 설명하기 위한 흐름도이다. 잡음 제거기(104)는 음성 신호의 에너지 비율 기반 알고리즘을 통해 잡음을 제거한다. 에너지 비율 기반 알고리즘은, 두 음성 신호의 전력 스펙트럼 밀도로 비율을 도출해내고 잡음 제거 함수를 정의 및 적용하여 잡음을 제거하는 알고리즘이다.
단계 S401에서, 제어기(102)는 잡음 제거기(104)로 음성 신호를 전송한다. 제어기(102)가 잡음 제거기(104)에 전송하는 음성 신호는 시간 보정기(103)를 이용하여 도착 시간 지연을 보정한 음성 신호이다. 잡음 제거 이전에 시간 지연 보정을 하는 이유는 잡음 제거는 원시 음성 신호 데이터를 왜곡하기 때문에 잡음 제거 후에 정확한 시간 보정이 이루어지지 않을 수 있기 때문이다. 또한 PLR과 PLD는 모든 사용자의 음성 신호가 같은 시간을 나타낼 때 신뢰도가 가장 높다.
도 6에는 도시되지 않았으나 잡음 제거기(104)의 잡음 제거 과정에서 정의하는 잡음 제거 함수(gain function)는 조절 가능한 파라미터를 가진다. 본 발명의 일 실시예에서 사용하는 잡음 제거 함수의 파라미터는 본 발명의 일 실시예에서 예시한 값에 한정되지 않는다.
단계 S402에서, 잡음 제거기(104)는 입력 받은 음성 신호가 실시간 음성 처리에 적합한 길이(예를 들어 0.1초)인지 확인하고 그렇지 않은 경우 다시 음성 신호를 받는다.
단계 S403에서, 잡음 제거기(104)는 입력 받은 음성 신호에 대한 특징 값(예를 들어 스펙트럼)을 푸리에 변환을 이용하여 추출한다.
단계 S404에서, 잡음 제거기(104)는 PLR을 계산하고, 이를 이용하여 잡음 제거 함수(gain function)를 도출한다.
단계 S405에서, 잡음 제거기(104)는 잡음 제거 함수와 음성 스펙트럼을 이용하여 잡음이 제거된 음성 스펙트럼을 획득한다.
단계 S406는 비음성 구간에 백색 잡음(white noise)를 추가하고 역푸리에 변환과 겹침 합산을 이용하여 다시 음성 신호로 변환하는 단계이다. 잡음 제거기(104)는 잡음이 제거된 음성 신호 특징에 백색 잡음(white noise)을 추가하고 역푸리에 변환(inverse Fourier transform)과 겹침 합산(overlap-and-add)을 이용하여 다시 음성 신호로 변환한다.
도 6에는 도시되지 않았으나 잡음 제거기(104)가 수행하는 잡음 제거 과정 중 백색 잡음을 추가하는 것은 잡음 제거 후 남아있는 음성 구간 신호가 강할수록 약한 백색 잡음을, 약할수록 강한 백색 잡음을 추가함으로서 자동 음성 검출기(105)가 음성을 확실히 구분할 수 있도록 유도하기 위한 것이다. 백색 잡음은 비음성 구간, 음성 구간 구분 없이 추가되나, 음성 구분을 위해 비음성구간에 백색 잡음을 추가하는 작업이 중요하다.
잡음 제거기(104)가 자동 음성 검출기(105)가 음성을 확실하게 구분하도록 유도하는 방법은 다양한 방법이 있을 수 있다. 단계 S406에서 제시한 방법은 본 발명의 실시예의 하나일 뿐이며, 상술한 방법에 한정되지 않는다.
단계 S407에서, 잡음 제거기(104)는 잡음이 제거된 음성 신호(변환된 음성 신호)를 제어기(102)로 전송한다.
도 7은 본 발명의 일 실시예에 따른, 자동 통역 서버(100)가 입력 받은 음성 신호 중의 실제 발화 구간을 자동으로 검출하는 방법을 설명하기 위한 흐름도이다. 자동 음성 검출기(105)는 발화자가 원시 언어로 발화한 음성에서 실제 발화가 존재하는 구간을 검출한다.
단계 S501에서 제어기(102)는 자동 음성 검출 결과를 저장할 버퍼를 생성한다. 버퍼는 제어기(102)가 음성 인식기(109)에 음성 검출 결과를 순차적으로 넣어주기 위한 임시 저장 공간이다.
단계 S502에서 자동 음성 검출기(105)는 Prob 값(확률 값)을 0으로 초기화한다. Prob는 자동으로 음성 구간을 검출하기 위하여 프레임별로 음성 존재 확률을 누적 계산하기 위한 파라미터이다. 누적 계산 방법의 예를 들면, 단순이동평균, 누적이동평균, 가중이동평균, 지수이동평균이 있을 수 있으나 이에 제한되지는 않는다.
단계 S503에서, 제어기(102)는 잡음을 제거한 음성 신호를 자동 음성 검출기(105)로 전송한다. 이 때, 자동 음성 검출기(105)으로 전송되는 음성 신호의 길이는 실시간 처리에 적합한 길이(예를 들면 0.1초)로 정한다. 본 실시예에서는 0.1초 단위로 자동 음성 검출하는 방법을 예시하였으나 이에 한정되지 않는다.
단계 S504에서, 자동 음성 검출기(105)는 사전 학습한 기계 학습 기반 음성 검출 모델에 전송받은 음성 신호를 프레임별로 입력하여 음성 존재 확률을 산출한다. 상기 기계 학습 기반 음성 검출 모델은 신경망(neural network)으로 사전 학습된 엔진 또는 에너지 기반 음성 검출 엔진 등으로 구현할 수 있으나 이에 한정되지는 않는다.
단계 S505에서, 자동 음성 검출기(105)는 Prob 값에 음성 존재 확률을 누적한다.
단계 S506에서, 자동 음성 검출기(105)는 음성 시작점이 검출된 상태인지 확인하고, 음성 시작점이 검출되지 않은 상태이면 음성 시작점을 검출하기 위해 단계 S507을 진행하고, 음성 시작점이 검출된 상태이면 음성 끝점을 검출하기 위해 단계 S510을 진행한다.
단계 S507에서 자동 음성 검출기(105)는 Prob 값이 설정된 음성 시작점 임계치(예를 들어 60% 또는 80%)보다 큰 값을 가지는지 판단하고, Prob 값이 음성 시작점 임계치보다 크게 되는 순간 단계 S508를 진행한다.
단계 S508에서, 자동 음성 검출기(105)는 Prob 값이 음성 시작점 임계치보다 큰 경우 음성 시작점을 기록(저장)하고 단계 S509를 진행한다. 즉, 음성의 시작점은 Prob값이 음성 시작점 임계치보다 크게 되는 시점을 기준으로 기록된다. Prob 값이 설정된 음성 시작점 임계치보다 작거나 같을 경우 단계 S509를 진행한다.
단계 S509에서, 자동 음성 검출기(105)는 제어기(102)에서 이미 수신한 음성 신호에서 모든 프레임에 대한 음성 존재 확률이 산출되었으면 단계 S503을 진행하고, 그렇지 않은 경우 다음 프레임에 대한 음성 존재 확률을 산출하여 누적하기 위해 단계 S504를 진행한다.
단계 S510에서, 자동 음성 검출기(105)는 Prob 값이 설정된 음성 끝점 임계치(예를 들어 20% 또는 40%)보다 작은 값을 가지는지 판단한다. 자동 음성 검출기(105)는 Prob 값이 설정된 음성 끝점 임계치보다 작게 되면 단계 S511을 진행하고, Prob 값이 설정된 음성 끝점 임계치보다 크거나 같으면 단계 S509를 진행한다.
단계 S511에서, 자동 음성 검출기(105)는 Prob 값이 음성 끝점 임계치보다 작게 되는 시점을 기준으로 음성 끝점을 기록한다.
음성 시작점 임계치와 음성 끝점 임계치는 도 7 및 도 7을 참조한 설명에서 예시한 값에 한정되지 않으며, 예시한 값과 다른 값을 가질 수 있다.
도 7에는 도시되지 않았으나 자동 음성 검출기(105)는 Prob 값이 정해진 음성 끝점 임계치보다 작게 되더라도 바로 음성 끝점으로 기록하지 않고 체크포인트(checkpoint)로 기록할 수 있다. 이 경우, 자동 음성 검출기(105)는 체크포인트 지점 이후 일정 기간(예를 들어, 20 프레임) 발화의 끝 여부를 확인하여 음성 끝점을 검출한다. 발화 끝 여부를 확인하는 방법은 일정 기간 음성이 검출되는지, 장기 침묵에 해당하는지 확인하는 방법을 사용할 수 있으며 상술한 방법에 한정되지 않는다.
도 7에는 도시되지 않았으나 상술한 음성 검출 모델은 기계 학습으로 사전 학습한 모델을 사용하는 방법을 사용하나 이에 한정되지 않는다. 차후 성능 개선에 따라 다양한 형태의 음성 검출 모델을 자동 음성 검출기(105)에 적용할 수 있다.
단계 S512에서 자동 음성 검출기(105)가 음성 신호에서 음성 시작점과 끝점을 검출한 결과를 제어기(102)로 전송하면, 제어기(102)는 자동 음성 검출 결과를 버퍼에 저장한다.
단계 S513는 발화 종료(end of speech) 여부를 판단하는 단계이다. 자동 음성 검출기(105)는 더 들어올 음성이 있는지 확인하고, 추가로 전송될 음성이 존재하는 경우 다시 Prob 값을 0으로 초기화하여(S502) 자동 음성 검출을 수행한다.
도 7을 참조한 설명에서 제시한 방법에 따르면, 사용자는 화면 터치 및 버튼 클릭을 하지 않더라도 자동 음성 검출기(105)가 음성 구간을 자동으로 결정해주기 때문에 불필요한 화면 터치 및 버튼 클릭으로 인한 불편함이 해소되고 자연스러운 대화를 할 수 있다.
도 8은 본 발명의 일 실시예에 따른 자동 통역 서버(100)의 전력 레벨 차이 계산 방법을 설명하기 위한 흐름도이다.
단계 S601에서, 제어기(102)는 잡음이 제거된 음성 신호를 전력 레벨 차이 계산기(106)에 전송한다.
도 8에는 도시되지 않았으나, 자동 음성 검출기(105)와 전력 레벨 차이 계산기(106)는 상술한 것과 같이 제어기(102)에서 실시간 처리에 적합한 길이의 음성 신호를 전송받는다. 자동 음성 검출기(105)와 전력 레벨 차이 계산기(106)가 받는 음성 신호는 동일하다(잡음이 제거되고 백색 잡음이 추가된 음성 신호).
단계 S602에서, 전력 레벨 차이 계산기(106)는 잡음이 제거된 음성 신호에서 음성 신호 특징 값 및 전력 스펙트럼 밀도를 추출한다.
단계 S603에서, 전력 레벨 차이 계산기(106)는 음성 신호 특징 값과 전력 스펙트럼 밀도의 가중합을 계산하여 버퍼에 저장한다.
단계 S604에서, 전력 레벨 차이 계산기(106)는 버퍼에 저장된 가중합을 이용하여 프레임별 평균 값의 차이를 계산하여 이를 버퍼에 저장한다.
도 8에는 도시되지 않았으나, 제어기(102)는 전력 레벨 차이의 절대값이 정해진 임계치(예를 들어 0.1)보다 작은 경우 사용자들 중 아무도 발화하지 않아 잡음만 입력된 잡음 구간으로 기록한다. 또한, 복수 개의 음성 신호에 대한 전력 레벨 중 발화자의 음성이 발화자 단말(200)에 가장 크게 입력되고 상대 단말(300)에는 상대적으로 작게 입력되기 때문에 자동 통역 서버(100)는 전력 레벨 차이를 이용하여 실제 발화한 사용자의 단말 정보를 획득할 수 있다.
단계 S605에서 전력 레벨 차이 계산기(106)는 전력 레벨 차이 계산 결과를 제어기(102)로 전송한다.
도 9는 본 발명의 일 실시예에 따른 자동 통역 서버(100)의 발화자 음성 선택 방법을 설명하기 위한 흐름도이다. 더욱 상세하게는, 도 9는 자동 통역 서버(100)가 자동 음성 검출 결과, 전력 레벨 차이 계산 결과 및 화자 특징 벡터를 이용하여 사용자 중 실제 발화한 사용자의 음성을 선택하는 방법을 나타낸 흐름도이다.
자동 통역 서버(100)는 음성 신호 선택을 위해 자동 음성 검출기(105)와 전력 레벨 차이 계산기(106), 화자 특징 벡터 추출기(108)를 이용할 수 있다.
단계 S701 및 단계 S702에서, 제어기(102)는 자동 음성 검출기(105) 및 전력 레벨 차이 계산기(106)에 도 7 및 도 8을 참조한 설명에서 상술한 대로 잡음 제거와 백색 잡음이 추가된 음성 신호를 전송한다. 즉, 단계 S701은 단계 S503에 해당하고, 단계 S702는 단계 S601에 해당한다.
자동 음성 검출기(105)와 전력 레벨 차이 계산기(106)는 병렬적으로 동작할 수 있다. 예를 들어, 자동 음성 검출기(105)와 전력 레벨 차이 계산기(106)는 동시에 동작할 수 있다.
단계 S703(자동 음성 검출 단계)은 도 7을 참조한 설명에서 단계 S504 및 단계 S505를 포함한다. 즉, 단계 S703은 제어기(102)에서 전송한 잡음이 제거된 음성 신호에서 음성 존재 확률을 산출하여 Prob 값에 누적 계산하는 단계이다.
또한, 단계 S704(음성 검출 여부 판단 단계)는 자동 음성 검출기(105)가 도 7에 표현된 흐름도 절차를 수행하는 단계이다. 단계 S704는 도 7을 참조한 설명에서 단계 S506 내지 단계 S509을 포함한다. 즉, 단계 S704는 자동 음성 검출기(105)가 음성 시작점과 음성 끝점을 기록하는 단계이다. 음성의 시작점 또는 끝점이 판단되지 않는 경우 자동 음성 검출기(105)는 제어기(102)에서 다시 음성 신호를 전송받는다(S701). 상세한 내용은 도 7과 도 7을 참조한 설명에 따른다.
단계 S705에서, 자동 음성 검출기(105)가 검출된 음성 구간 정보를 제어기(102)에 전송한다. 단계 S705는 도 7의 S510 단계에 해당한다.
단계 S706(전력 레벨 차이 계산 단계)는 전력 레벨 차이 계산기(106)가 도 8에 표현된 흐름도 절차를 수행하는 단계이다. 단계 S706은 단계 S602 내지 단계 S604를 포함한다. 상세한 내용은 도 8과 도 8을 참조한 설명에 따른다.
단계 S707에서, 전력 레벨 차이 계산기(106)는 전력 레벨 차이 정보를 제어기(102)에 전송한다. 단계 S707은 도 8의 S605 단계에 해당한다.
단계 S708에서, 제어기(102)는 자동 음성 검출기(105)와 전력 레벨 차이 계산기(106)의 수행 결과(음성 구간 및 전력 레벨 차이 정보)를 음성 신호 선택기(107)로 전송한다.
단계 S709에서 음성 신호 선택기(107)는 자동 음성 검출기(105)와 전력 레벨 차이 계산기(106)에서 전송받은 음성 구간 정보와 전력 레벨 차이 정보를 이용하여 구간 내 실제 음성 프레임 개수를 산출한다.
단계 S710에서, 음성 신호 선택기(107)는 음성 프레임 개수가 정해진 기준치 이상인지 판단한다. 음성 신호 선택기(107)는 음성 프레임 개수가 정해진 기준치 미만인 경우 실제 유의미한 음성 신호가 포함되지 않기 때문에 해당 구간을 잡음으로 판단하고, 판정 결과를 제어기(102)에 전송한다(S711). 음성 신호 선택기(107)는 음성 프레임 개수가 정해진 기준치 이상인 경우, 음성 신호 결정(선택) 알고리즘을 수행한다(S712). 음성 신호 결정 알고리즘은, 음성 신호 선택기(107)에 입력된 음성 신호들 간의 전력 레벨 차이를 이용하여 입력된 음성 신호들 중에서 가장 에너지가 큰 신호를 선택하는 알고리즘일 수 있다(에너지 기반 음성 신호 선택 알고리즘). 에너지 기반 음성 신호 선택 알고리즘은, 각 음성 신호에서 에너지 값을 추출하고 그 차이를 이용하여 각 음성 신호 중 실제로 발화가 입력된 음성 신호를 선택하는 알고리즘이다.
상술한 방법을 이용하면 크로스톡 문제에서 한 발성에 대해 입력된 여러 채널 중 가장 에너지가 큰 하나의 채널을 선택할 수 있고, 통상적으로 발성은 발화자의 음성 입력 장치에 가장 크게 입력되므로 상술한 방법으로 선택된 채널은 발화자의 음성 신호이다. 따라서 상술한 방법으로 크로스톡 문제를 해소할 수 있다.
단계 S713에서, 음성 신호 선택기(107)는 음성 신호 선택 결과를 화자 특징 벡터 추출기(108)에 전송한다.
단계 S714와 S715에서, 화자 특징 벡터 추출기(108)는 선택된 음성 신호를 기초로 화자 특징 벡터를 추출하고(S714), 사전에 등록된 화자 특징 벡터와 유사도를 비교하여 대화 참가자 신호를 검증하여 이외의 신호를 필터링할 수 있다(S715). 여기서 화자 특징 벡터란, 정해진 실제 발화 구간 음성 신호가 일정 차원의, 숫자로 표현된 벡터로 변환된 것을 말한다.
단계 S716에서, 화자 특징 벡터 추출기(108)은 음성 인식 대상 구간의 검증 결과를 제어기(102)에 전송한다. 제어기(102)는 음성 신호 선택기(107)와 화자 특징 벡터 추출기(108)에 의해 선택/검증된 음성 신호를 순차적으로 음성 인식기(109)에 입력할 수 있도록 상기 음성 신호를 자동 통역 서버(100) 내의 버퍼에 저장한다. 이 때 버퍼에는 잡음 제거 및 백색 잡음 추가가 되지 않은 원시 음성 신호를 저장하는 것이 일반적이나, 발화 환경에 따라 잡음 제거 및 백색 잡음 추가가 된 음성 신호를 저장할 수도 있다. 예를 들어, 제어기(102)는 잡음이 아주 심한 곳에서 대화가 이루어 지는 경우, 잡음 처리된 음성 신호를 자동 통역 서버(100) 내의 버퍼에 저장할 수 있으며, 잡음 처리된 음성 신호를 음성 인식기(109)에 입력할 수 있다.
도 10은 본 발명의 일 실시예에 따른, 자동 통역 서버(100)가 음성 인식과 자동 번역을 수행하여 최종 결과를 사용자 단말에 전송하는 방법을 설명하기 위한 흐름도이다. 도 10에 도시한 바와 달리, 음성 인식기(109)와 자동 번역기(110)는 음성 인식과 자동 번역 기능을 통합적으로 수행하는 종단형 자동 통역기(end-to-end automatic speech translator)로 대체될 수 있다.
도 10에는 도시되지 않았으나, 자동 통역 서버(100) 내의 버퍼에 음성 신호 선택기(107)에 의해 선택된 음성 신호가 저장되어 있는 상태이다.
단계 S801에서, 제어기(102)는 선택된 음성 신호를 음성 인식기(109)로 전송한다.
단계 S802에서, 음성 인식기(109)는 선택된 음성 신호를 사전에 학습된 모델에 입력하여 음성 인식을 수행한다.
단계 S803에서, 음성 인식기(109)는 음성 인식 결과를 자동 번역기(110)에 전송한다.
단계 S804에서, 자동 번역기(110)는 음성 인식 결과를 상대 단말(300)에 설정된 상대방의 타겟 언어로 번역한다.
단계 S805에서, 자동 번역기(110)는 번역 결과를 제어기(102)에 전송한다.
단계 S806에서, 제어기(102)는 번역 결과를 상대 단말(300)의 사용자가 이해하기 쉬운 매체(예를 들면, 자막이나 음성)로 변환한다. 즉, 제어기(102)는 번역 결과를 기초로 상대 사용자가 이해할 수 있는 매체를 생성한다. 상기 매체는 상대 사용자가 발화자의 의도를 파악할 수 있는 매체이면 충분하다.
단계 807에서, 제어기(102)는 상기 매체를 통신 모듈(101)에 전송한다. 본 발명의 다른 실시예에서, 제어기(102)는 번역 결과를 통신 모듈(101)에 전달하고, 통신 모듈(101)은 이 번역 결과를 상대 단말(300)에 전송할 수 있다.
단계 S808에서, 통신 모듈(101)은 상대 단말(300)에 상기 매체를 전송한다. 상대 사용자는 상대 단말(300)에서 이를 확인할 수 있다.
사용자들의 대화 종료 시점까지 상술한 과정을 반복 수행하여 Zero UI 기반 자동 통역 서비스 기반으로 사용자 간에 자연스러운 면대면 대화를 진행할 수 있다.
참고로, 본 발명의 실시예에 따른 구성 요소들은 소프트웨어 또는 DSP(digital signal processor), FPGA(Field Programmable Gate Array) 또는 ASIC(Application Specific Integrated Circuit)와 같은 하드웨어 형태로 구현될 수 있으며, 소정의 역할들을 수행할 수 있다.
그렇지만 '구성 요소들'은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, 각 구성 요소는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다.
따라서, 일 예로서 구성 요소는 소프트웨어 구성 요소들, 객체지향 소프트웨어 구성 요소들, 클래스 구성 요소들 및 태스크 구성 요소들과 같은 구성 요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다.
구성 요소들과 해당 구성 요소들 안에서 제공되는 기능은 더 작은 수의 구성 요소들로 결합되거나 추가적인 구성 요소들로 더 분리될 수 있다.
이 때, 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터를 이용하거나 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터를 이용하거나 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행 예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
전술한 자동 통역 방법, 자동 통역 서비스 제공 방법, 음성 신호 간 시간 차이를 보정하는 방법, 사용자 주변 환경에 존재하는 잡음을 제거하는 방법, 음성 신호 중의 실제 발화 구간을 자동으로 검출하는 방법, 전력 레벨 차이 계산 방법, 발화자 음성 선택 방법, 음성 인식과 자동 번역을 수행하여 최종 결과를 사용자 단말에 전송하는 방법은 도면에 제시된 흐름도를 참조로 하여 설명되었다. 간단히 설명하기 위하여 상기 방법은 일련의 블록들로 도시되고 설명되었으나, 본 발명은 상기 블록들의 순서에 한정되지 않고, 몇몇 블록들은 다른 블록들과 본 명세서에서 도시되고 기술된 것과 상이한 순서로 또는 동시에 일어날 수도 있으며, 동일한 또는 유사한 결과를 달성하는 다양한 다른 분기, 흐름 경로, 및 블록의 순서들이 구현될 수 있다. 또한, 본 명세서에서 기술되는 방법의 구현을 위하여 도시된 모든 블록들이 요구되지 않을 수도 있다.
이상, 본 발명의 구성에 대하여 첨부 도면을 참조하여 상세히 설명하였으나, 이는 예시에 불과한 것으로서, 본 발명이 속하는 기술분야에 통상의 지식을 가진 자라면 본 발명의 기술적 사상의 범위 내에서 다양한 변형과 변경이 가능함은 물론이다. 따라서 본 발명의 보호범위는 상기 상세한 설명보다는 후술한 특허청구범위에 의하여 정해지며, 특허청구의 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태는 본 발명의 기술적 범위에 포함되는 것으로 해석되어야 한다.
10: Zero UI 기반 자동 통역 시스템
100: 자동 통역 서버
101: 통신 모듈
102: 제어기
103: 시간 보정기
104: 잡음 제거기
105: 자동 음성 검출기
106: 전력 레벨 차이 계산기
107: 음성 신호 선택기
108: 화자 특징 벡터 추출기
109: 음성 인식기
110: 자동 번역기
200: 발화자 단말
300: 상대 단말
100: 자동 통역 서버
101: 통신 모듈
102: 제어기
103: 시간 보정기
104: 잡음 제거기
105: 자동 음성 검출기
106: 전력 레벨 차이 계산기
107: 음성 신호 선택기
108: 화자 특징 벡터 추출기
109: 음성 인식기
110: 자동 번역기
200: 발화자 단말
300: 상대 단말
Claims (20)
- 발화자의 음성 신호를 입력받는 발화자 단말;
상기 발화자 단말을 포함한 복수 개의 사용자 단말에서 복수 개의 음성 신호를 수신하고, 상기 복수 개의 음성 신호 중 상기 발화자의 음성 신호를 선택하며, 상기 발화자의 음성 신호를 타겟 언어로 번역한 결과를 하기 상대 단말에 전송하는 자동 통역 서버; 및
상기 번역한 결과를 타겟 언어로 된 문자 및 음성 중 어느 하나의 형태로 출력하는 상대 단말;
을 포함하고,
상기 자동 통역 서버는,
상기 복수 개의 음성 신호에서 실제 발화가 존재하는 음성 구간을 자동으로 검출하고, 상기 복수 개의 음성 신호의 프레임별 에너지 평균값의 차이를 계산하며, 상기 실제 발화가 존재하는 음성 구간과 상기 프레임별 에너지 평균값의 차이를 기초로 상기 복수 개의 음성 신호에서 실제 음성 프레임 개수를 산출하고, 상기 실제 음성 프레임 개수가 소정 기준치 이상인 경우, 가장 에너지가 큰 신호를 선택하는 음성 신호 선택 알고리즘에 따라 상기 복수 개의 음성 신호 중 상기 발화자의 음성 신호를 선택하는 것
인 Zero UI 기반 자동 통역 시스템. - 제1항에 있어서, 상기 자동 통역 서버는,
상기 복수 개의 음성 신호 간 발생하는 시간 차이를 위상 기반 상호 상관(phase-based cross-correlation)을 통해 보정하는 것
인 Zero UI 기반 자동 통역 시스템. - 제1항에 있어서, 상기 자동 통역 서버는,
에너지 비율(power level ratio) 기반 알고리즘을 통해 상기 각 사용자 단말에서 전송받은 음성 신호의 잡음을 제거하는 것
인 Zero UI 기반 자동 통역 시스템. - 제1항에 있어서, 상기 자동 통역 서버는,
신경망 모델을 이용하여 상기 복수 개의 음성 신호에서 상기 실제 발화가 존재하는 음성 구간을 검출하고,
상기 신경망 모델은 음성 신호를 입력받아 음성 존재 확률을 산출하도록 학습된 것을 특징으로 하는 것
인 Zero UI 기반 자동 통역 시스템. - 제1항에 있어서, 자동 통역 서버는,
상기 발화자의 음성 신호를 기초로 화자 특징 벡터를 추출하고, 사전에 등록된 화자 특징 벡터와 유사도를 비교하여 발화자 일치 여부를 검증하는 것
인 Zero UI 기반 자동 통역 시스템. - 자동 통역 서비스에 연결된 각 사용자 단말에서 복수 개의 음성 신호를 전송받는 통신 모듈;
상기 복수 개의 음성 신호 간 발생하는 시간 차이를 위상 기반 상호 상관(phase-based cross-correlation)을 통해 보정하는 시간 보정기;
에너지 비율(power level ratio) 기반 알고리즘을 통해 상기 위상 기반 상호 상관을 통해 보정된 음성 신호의 잡음을 제거하는 잡음 제거기;
상기 잡음이 제거된 음성 신호에서 실제 발화가 존재하는 음성 구간을 자동으로 검출하는 자동 음성 검출기;
상기 잡음이 제거된 복수 개의 음성 신호의 프레임별 에너지 평균값의 차이를 계산하는 전력 레벨 차이 계산기;
상기 실제 발화가 존재하는 음성 구간과 상기 프레임별 에너지 평균값의 차이를 기초로 실제 발화자의 음성 신호를 선택하는 음성 신호 선택기;
상기 실제 발화자의 음성 신호에 대해 음성 인식을 수행하여 음성 인식 결과를 획득하는 음성 인식기; 및
상기 음성 인식 결과에 대해 번역을 수행하여 번역 결과를 획득하는 자동 번역기;
를 포함하고,
상기 음성 신호 선택기는,
상기 실제 발화가 존재하는 음성 구간에 대한 정보와 상기 프레임별 에너지 평균값의 차이에 대한 정보를 기초로, 상기 잡음이 제거된 복수 개의 음성 신호에서 실제 음성 프레임 개수를 산출하고, 상기 실제 음성 프레임 개수가 소정 기준치 이상인 경우, 가장 에너지가 큰 신호를 선택하는 음성 신호 선택 알고리즘에 따라 상기 잡음이 제거된 복수 개의 음성 신호 중 상기 실제 발화자의 음성 신호를 선택하고,
상기 통신 모듈은,
상기 번역 결과를 타겟 언어를 구사하는 사용자의 단말에 전송하는 것
인 Zero UI 기반 자동 통역 서버. - 제6항에 있어서,
상기 실제 발화자의 음성 신호를 기초로 화자 특징 벡터를 추출하고, 사전에 등록된 화자 특징 벡터와 유사도를 비교하여 발화자 일치 여부를 검증하는 화자 특징 벡터 추출기를 더 포함하는 Zero UI 기반 자동 통역 서버. - 제6항에 있어서, 상기 시간 보정기는,
상기 복수 개의 음성 신호를 시간-주파수 관계의 스펙트럼으로 표현하였을 때 획득할 수 있는 위상 정보를 이용하여 상호 상관(cross-correlation)을 도출하는 것
인 Zero UI 기반 자동 통역 서버. - 제6항에 있어서, 상기 잡음 제거기는,
복수 개의 음성 신호의 전력 스펙트럼 밀도로 비율을 도출해내고, 이득 함수 (gain function)를 적용하여 잡음을 제거하는 알고리즘을 통해 상기 보정된 음성신호의 잡음을 제거하는 것
인 Zero UI 기반 자동 통역 서버. - 제6항에 있어서, 상기 자동 음성 검출기는,
신경망 모델을 이용하여 상기 잡음이 제거된 음성 신호에서 실제 발화가 존재하는 구간을 검출하고,
상기 신경망 모델은 음성 신호를 입력받아 음성 존재 확률을 산출하도록 학습된 것을 특징으로 하는 것
인 Zero UI 기반 자동 통역 서버. - 삭제
- 제7항에 있어서, 상기 화자 특징 벡터는,
발화 구간의 음성 신호를 일정 차원의 벡터로 변환한 것
인 Zero UI 기반 자동 통역 서버. - 제6항에 있어서,
상기 자동 통역 서버의 자동 통역 프로세스의 수행을 위해 상기 자동 통역 서버에 포함된 구성 요소를 제어하는 제어기를 더 포함하고,
상기 제어기는,
상기 번역 결과를 타겟 언어로 된 문자 및 음성 중 적어도 하나로 변환하고,
상기 통신 모듈은,
상기 제어기의 변환 결과를 타겟 언어를 구사하는 사용자의 단말에 전송하는 것
인 Zero UI 기반 자동 통역 서버. - 자동 통역 서비스를 제공받는 각 사용자 단말에서 복수 개의 음성 신호를 전송받는 단계;
상기 복수 개의 음성 신호 간 시간의 차이를 위상 기반 상호 상관을 통해 보정하는 시간 차이 보정 단계;
에너지 비율 기반 알고리즘을 통해 상기 보정된 복수 개의 음성 신호에 존재하는 잡음을 제거하는 잡음 제거 단계;
상기 잡음이 제거된 복수 개의 음성 신호에서 실제 발화가 존재하는 음성 구간을 자동으로 검출하는 발화 구간 자동 검출 단계;
상기 잡음이 제거된 복수 개의 음성 신호의 프레임별 에너지 평균값의 차이를 계산하는 단계;
상기 실제 발화가 존재하는 음성 구간과 상기 프레임별 에너지 평균값의 차이를 기초로 실제 발화자의 음성 신호를 선택하는 단계;
상기 실제 발화자의 음성 신호에 대한 음성 인식 결과를 획득하는 단계;
상기 음성 인식 결과에 대해 타겟 언어로 번역한 결과를 획득하는 단계; 및
상기 번역한 결과를 타겟 언어의 사용자 단말로 전송하는 단계;
를 포함하고,
상기 실제 발화자의 음성 신호를 선택하는 단계는,
상기 실제 발화가 존재하는 음성 구간에 대한 정보와 상기 프레임별 에너지 평균값의 차이에 대한 정보를 기초로, 상기 잡음이 제거된 복수 개의 음성 신호에서 실제 음성 프레임 개수를 산출하고, 상기 실제 음성 프레임 개수가 소정 기준치 이상인 경우, 가장 에너지가 큰 신호를 선택하는 음성 신호 선택 알고리즘에 따라 상기 잡음이 제거된 복수 개의 음성 신호 중 상기 실제 발화자의 음성 신호를 선택하는 것
인 Zero UI 기반 자동 통역 방법. - 삭제
- 제14항에 있어서,
화자 특징 벡터를 이용하여 상기 실제 발화자의 음성 신호가 타겟 화자의 음성인지 검증하는 단계를 더 포함하는 Zero UI 기반 자동 통역 방법. - 제14항에 있어서, 상기 시간 차이 보정 단계는,
상기 복수 개의 음성 신호를 시간-주파수 관계의 스펙트럼으로 표현하였을 때 획득할 수 있는 위상 정보를 이용하여 상호 상관(cross-correlation)을 도출하는 것
인 Zero UI 기반 자동 통역 방법. - 제14항에 있어서, 상기 잡음 제거 단계는,
복수 개의 음성 신호의 전력 스펙트럼 밀도로 비율을 도출해내고, 이득 함수 (gain function)를 적용하여 잡음을 제거하는 알고리즘을 통해 상기 보정된 복수 개의 음성 신호에 존재하는 잡음을 제거하는 것
인 Zero UI 기반 자동 통역 방법. - 제14항에 있어서, 상기 발화 구간 자동 검출 단계는,
음성 신호를 입력받아 음성 존재 확률을 산출하도록 학습된 신경망 모델을 이용하여 상기 잡음이 제거된 복수 개의 음성 신호에서 실제 발화가 존재하는 구간을 검출하는 것
인 Zero UI 기반 자동 통역 방법. - 삭제
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/522,218 US11977855B2 (en) | 2020-11-10 | 2021-11-09 | System and method for automatic speech translation based on zero user interface |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20200149444 | 2020-11-10 | ||
KR1020200149444 | 2020-11-10 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220063715A KR20220063715A (ko) | 2022-05-17 |
KR102588212B1 true KR102588212B1 (ko) | 2023-10-13 |
Family
ID=81803625
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210117156A KR102588212B1 (ko) | 2020-11-10 | 2021-09-02 | Zero UI 기반 자동 통역 시스템 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102588212B1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024014869A1 (ko) * | 2022-07-12 | 2024-01-18 | 삼성전자 주식회사 | 번역 처리 방법 및 전자 장치 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101559716B1 (ko) * | 2014-01-28 | 2015-10-12 | 한양대학교 산학협력단 | 전력레벨 차이비율을 이용한 이격 듀얼 마이크 기반의 음성 활성도 검출 방법 및 음성활성도 검출 장치 |
US20160217787A1 (en) | 2015-01-26 | 2016-07-28 | Acer Incorporated | Speech recognition apparatus and speech recognition method |
KR102056330B1 (ko) * | 2017-09-12 | 2019-12-16 | (주)한컴인터프리 | 통역장치 및 그 방법 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102528466B1 (ko) * | 2017-12-19 | 2023-05-03 | 삼성전자주식회사 | 복수 화자의 음성 신호 처리 방법 및 그에 따른 전자 장치 |
-
2021
- 2021-09-02 KR KR1020210117156A patent/KR102588212B1/ko active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101559716B1 (ko) * | 2014-01-28 | 2015-10-12 | 한양대학교 산학협력단 | 전력레벨 차이비율을 이용한 이격 듀얼 마이크 기반의 음성 활성도 검출 방법 및 음성활성도 검출 장치 |
US20160217787A1 (en) | 2015-01-26 | 2016-07-28 | Acer Incorporated | Speech recognition apparatus and speech recognition method |
KR102056330B1 (ko) * | 2017-09-12 | 2019-12-16 | (주)한컴인터프리 | 통역장치 및 그 방법 |
Non-Patent Citations (1)
Title |
---|
MOLIKOVA, K, Far-field speech recognition, BRNO UNIVERSITY OF TECHNOLOGY, 2016* |
Also Published As
Publication number | Publication date |
---|---|
KR20220063715A (ko) | 2022-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102339594B1 (ko) | 객체 인식 방법, 컴퓨터 디바이스 및 컴퓨터 판독 가능 저장 매체 | |
Akbari et al. | Lip2audspec: Speech reconstruction from silent lip movements video | |
US7392188B2 (en) | System and method enabling acoustic barge-in | |
KR100636317B1 (ko) | 분산 음성 인식 시스템 및 그 방법 | |
US9812147B2 (en) | System and method for generating an audio signal representing the speech of a user | |
CN103124165B (zh) | 自动增益控制 | |
CN103152546B (zh) | 基于模式识别和延迟前馈控制的视频会议回声抑制方法 | |
KR102158739B1 (ko) | 자동통역 시스템, 디바이스 및 방법 | |
US20140278397A1 (en) | Speaker-identification-assisted uplink speech processing systems and methods | |
CN109903752B (zh) | 对齐语音的方法和装置 | |
CN110570853A (zh) | 基于语音数据的意图识别方法和装置 | |
CN111696567B (zh) | 用于远场通话的噪声估计方法及系统 | |
US11776557B2 (en) | Automatic interpretation server and method thereof | |
US20240105199A1 (en) | Learning method based on multi-channel cross-tower network for jointly suppressing acoustic echo and background noise | |
CN111883135A (zh) | 语音转写方法、装置和电子设备 | |
US20240129410A1 (en) | Learning method for integrated noise echo cancellation system using cross-tower nietwork | |
KR102588212B1 (ko) | Zero UI 기반 자동 통역 시스템 및 방법 | |
US11977855B2 (en) | System and method for automatic speech translation based on zero user interface | |
Ding et al. | Ultraspeech: Speech enhancement by interaction between ultrasound and speech | |
US11443760B2 (en) | Active sound control | |
KR102592613B1 (ko) | 자동 통역 서버 및 그 방법 | |
JP2019020678A (ja) | ノイズ低減装置および音声認識装置 | |
KR20030010432A (ko) | 잡음환경에서의 음성인식장치 | |
US20240135954A1 (en) | Learning method for integrated noise echo cancellation system using multi-channel based cross-tower network | |
Yan et al. | Telesonar: Robocall Alarm System by Detecting Echo Channel and Breath Timing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |