이하 첨부된 도면을 참조하면서 오로지 예시를 위한 실시예에 의해 발명을 상세히 설명하기로 한다. 하기 실시예는 발명을 구체화하기 위한 것일 뿐 발명의 권리 범위를 제한하거나 한정하는 것이 아님은 물론이다. 상세한 설명 및 실시예로부터 발명이 속하는 기술분야의 전문가가 용이하게 유추할 수 있는 것은 발명의 권리범위에 속하는 것으로 해석된다.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에서 사용되는 "부"라는 용어는 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, "부"는 어떤 역할들을 수행한다. 그렇지만 "부"는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. "부"는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 "부"는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 "부"들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 "부"들로 결합되거나 추가적인 구성요소들과 "부"들로 더 분리될 수 있다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하에서는 도면을 참조하여 본 발명의 실시 예들을 상세히 설명한다.
도 1은 일 실시예에 따라, 음성 향상 시스템(10)을 나타내는 도면이다.
음성 향상 시스템(10)은 일 실시예에 따라, 제 1 음성 향상 장치(20) 및 제 2 음성 향상 장치(30)를 포함할 수 있다. 도 1에 도시된 음성 향상 시스템(10)은 본 실시예와 관련된 구성요소들만이 도시되어 있다. 따라서, 도 1에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 본 실시예와 관련된 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
제 1 음성 향상 장치(20)는 일 실시예에 따라, 적어도 하나의 음성 신호를 수신할 수 있다. 제 1 음성 향상 장치(20)는 일 실시예에 따라, 적어도 하나의 마이크로폰을 통해 적어도 하나의 음성 신호를 수신할 수 있다.
제 1 음성 향상 장치(20)는 일 실시예에 따라, 적어도 하나의 음성 신호에 대한 1차 음성 향상을 수행하여 제 1 음성 신호를 생성할 수 있다. 일 실시예에 따라, 제 1 음성 향상 장치(20)는 1차 음성 향상으로써 적어도 하나의 음성 신호에 대해 공간적 필터링(spatial filtering)을 수행할 수 있다. 공간적 필터링이란, 특정 방향에서 사용자의 음성 신호가 발생하는 경우, 특정 방향이 아닌 나머지 방향에서의 음성 신호를 감쇄하여, 특정 방향에서의 음성 신호를 강조하는 것을 의미한다.
제 1 음성 향상 장치(20)는 일 실시예에 따라, 적어도 하나의 음성 신호 간에 연관성을 갖는 행렬에 기초하여, 적어도 하나의 음성 신호에 대한 공간적 필터링을 수행할 수 있다. 즉, 제 1 음성 향상 장치(20)는 별도의 방향 탐지를 위한 과정을 수행하지 않고, 적어도 하나의 음성 신호 간에 연관성을 갖는 행렬에 기초하여, 적어도 하나의 음성 신호에 대한 1차 음성 향상을 수행할 수 있다. 보다 구체적인 실시예는 이하 도 2에서 살펴보기로 한다.
제 1 음성 향상 장치(20)는 일 실시예에 따라, 1차 음성 향상을 수행한 결과 생성되는 제 1 음성 신호를 제 2 음성 향상 장치(30)로 전송할 수 있다. 일 실시예에 따라, 제 1 음성 향상 장치(20)는 통신망을 통해 제 1 음성 신호를 제 2 음성 향상 장치(30)로 전송할 수 있다. 통신망의 예로는, 인터넷, LAN, WAN, 전화 연결망, LTE 등의 무선 데이터 통신망, 적외선 통신 등의 유무선 통신이 될 수 있다.
제 2 음성 향상 장치(30)는 일 실시예에 따라, 기 학습된 잡음 제거 이득 정보로부터 제 1 음성 신호에 대응되는 잡음 제거 이득을 선택할 수 있다.
먼저, 제 2 음성 향상 장치(30)는 기 학습된 잡음 제거 이득 정보를 획득할 수 있다.
일 실시예에 따라, 제 2 음성 향상 장치(30)는 기 학습된 잡음 제거 이득 정보로써, 잡음 제거 이득 테이블을 획득할 수 있다. 잡음 제거 이득 테이블은 1차 음성 향상이 수행된 음성 신호에 대한 사전(a priori) 신호대 잡음비(SNR:Signal to Noise Ratio) 및 사후(a posteriori) 신호대 잡음비(SNR)를 포함할 수 있고, 사전 SNR 및 사후 SNR를 갖는 음성 신호에 포함된 잡음을 최소화하기 위한 잡음 제거 이득을 포함할 수 있다. 예를 들어, 잡음 제거 이득 테이블은 1차 음성 향상이 수행된 음성 신호인 Sig_0의 사전 SNR인 SNR_0 및 사후 SNR인 SNR_1에 대응되는 잡음 제거 이득 G0를 포함할 수 있다. 일 실시예에 따라, 잡음 제거 이득 정보는 기계 학습을 통해 훈련된 정보가 될 수 있다.
또한, 다른 실시예에 따라, 제 2 음성 향상 장치(30)는 잡음 제거 이득 정보로써, 클린 음성 신호 A, 및 클린 음성 신호 A에 잡음이 부가된 상태로 1차 음성 향상이 수행된 음성 신호 R을 획득할 수 있다. 클린 음성 신호 A는 잡음이 없는 사용자의 순수한 음성 신호일 수 있다. 이어서, 제 2 음성 향상 장치(30)는 음성 신호 R에 소정의 이득 G를 적용한 음성 신호 A`이 클린 음성 신호 A와 최소 평균 제곱 오차(Minimum Mean Square Error)를 갖기 위한 소정의 이득 G를 계산할 수 있다. 또한, 제 2 음성 향상 장치(30)는 클린 음성 신호 A 및 음성 신호 R의 사전 SNR 및 사후 SNR에 기초하여, 음성 신호 R에 포함된 잡음을 최소화하기 위한 잡음 제거 이득을, 종래 기술로 알려진 data-driven optimization 방법을 통해, 계산할 수 있다. 따라서, 제 2 음성 향상 장치(30)는 음성 신호 R의 사전 SNR 및 사후 SNR에 대응되는 잡음 제거 이득을 잡음 제거 이득 테이블로써 저장할 수 있다.
일 실시예에 따라, 제 2 음성 향상 장치(30)는 제 1 음성 향상 장치(20)로부터 제 1 음성 신호를 획득할 수 있다. 제 2 음성 향상 장치(30)는 제 1 음성 신호에 대한 사전 SNR 및 사후 SNR 각각을 계산할 수 있다. 이어서, 제 2 음성 향상 장치(30)는 제 1 음성 신호에 대한 사전 SNR 및 사후 SNR에 기초하여, 기 획득된 잡음 제거 이득 정보로부터 제 1 음성 신호에 대응되는 잡음 제거 이득을 선택할 수 있다. 즉, 제 2 음성 향상 장치(30)는 기 획득된 잡음 제거 이득 정보 중에서 제 1 음성 신호에 대한 사전 SNR 및 사후 SNR과 대응되는 잡음 제거 이득을 선택할 수 있다. 보다 구체적인 실시예는 이하 도 3에서 살펴보기로 한다.
따라서, 제 2 음성 향상 장치(30)는 선택된 잡음 제거 이득을 제 1 음성 신호에 적용하는 2차 음성 향상을 수행하여, 제 2 음성 신호를 생성할 수 있다.
제 1 음성 향상 장치(20)는 일 실시예에 따라, 단말 기기가 될 수 있다. 예를 들어, 제 1 음성 향상 장치(20)는 전화, PDA, 스마트폰, 태블릿, 전자책, 손목시계(스마트 워치), 안경(스마트 글래스), 차량용 내비게이션, 차량용 오디오, 차량용 비디오, 차량용 통합 미디어 시스템, 텔레매틱스, 노트북 등의 휴대용 단말 기기가 될 수 있다. 또한, 제 2 음성 향상 장치(30)는 일 실시예에 따라, 단말 기기와 연결된 서버가 될 수 있다. 또한, 제 1 음성 향상 장치(20)에서 수행하는 1차 음성 향상은 다중 마이크로폰 기반의 단말향 잡음 제거 기법이 될 수 있는 바, 제 1 음성 향상 장치(20)는 공간의 변화에 의한 음성 인식률을 향상시킬 수 있고, 제 2 음성 향상 장치(30)에서 수행하는 2차 음성 향상은 단일 마이크로폰 기반의 서버향 잡음 제거 기법이 될 수 있는 바, 제 1 음성 향상 장치(20)의 주변 환경 잡음의 변화에 의한 음성 인식률을 향상시킬 수 있다. 또한, 제 1 음성 향상 장치(20)는 단말 기기가 될 수 있고, 제 2 음성 향상 장치(30)는 서버가 될 수 있는 바, 1차 음성 향상에 비해 계산량이 많은 2차 음성 향상을 서버 측에서 수행할 수 있다.
도 2는 일 실시예에 따라, 제 1 음성 향상 장치(200)를 나타내는 도면이다.
제 1 음성 향상 장치(200)는 일 실시예에 따라, 음성 입력부(210) 및 제 1 음성 향상부(220)를 포함할 수 있다. 도 2에 도시된 제 1 음성 향상 장치(200)는 본 실시예와 관련된 구성요소들만이 도시되어 있다. 따라서, 도 2에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 본 실시예와 관련된 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다. 또한, 도 2의 제 1 음성 향상 장치(200)는 도 1의 제 1 음성 향상 장치(20)의 일 실시예가 될 수 있다.
음성 입력부(210)는 일 실시예에 따라, 적어도 하나의 마이크로폰을 포함할 수 있다. 또한, 음성 입력부(210)는 적어도 하나의 마이크로폰을 통해 사용자의 음성 신호를 입력 받을 수 있다. 따라서, 음성 입력부(210)는 적어도 하나의 음성 신호를 입력 받을 수 있다. 예를 들어, 음성 입력부(210)인 2개의 마이크로폰은 제 1 음성 향상 장치(200)의 상단 및 하단 각각에 위치할 수 있는바, 제 1 음성 향상 장치(200)는 2개의 마이크로폰을 통해 음성 신호를 각각 입력 받을 수 있다.
제 1 음성 향상부(220)는 일 실시예에 따라, 적어도 하나의 음성 신호에 대한 1차 음성 향상을 수행하여 제 1 음성 신호를 생성할 수 있다. 보다 구체적으로, 제 1 음성 향상부(220)는 적어도 하나의 음성 신호 간에 연관성을 갖는 행렬에 기초하여, 적어도 하나의 음성 신호에 대한 1차 음성 향상을 수행할 수 있다.
일 실시예에 따라, 제 1 음성 향상부(220)는 적어도 하나의 음성 신호에 기초하여, 적어도 하나의 음성 신호에 대한 음성 존재 확률을 계산할 수 있다. 예를 들어, 제 1 음성 향상부(220)는 음성 존재 확률을 계산하기 위해, 하기 수학식 1 내지 수학식 11을 이용할 수 있다.
먼저, 적어도 하나의 음성 신호가 n개의 음성 신호라고 할 때, 제 1 음성 향상부(220)는 시간 도메인 상의 n개의 음성 신호인
에 대해 FFT(Fast Fourier Transform)을 수행하여 주파수 도메인 상의 n개의 음성 신호인
을 획득할 수 있다. k는 주파수 인덱스를, l은 프레임 인덱스를 나타낸다.
이어서, 제 1 음성 향상부(220)는 적어도 하나의 음성 신호에 대한 사후 신호대 잡음비(a posteriori Signal to Noise Ratio: a posteriori SNR)인
및
를 하기 수학식 1을 통해 계산할 수 있다.
상기 수학식 1에서, 적어도 하나의 음성 신호에 대한 벡터
는
을 의미하며, 적어도 하나의 음성 신호에 대한 전력 스펙트럼 밀도(Power Spectrum Density)
는
와 같은 행렬을 의미한다.
은 적어도 하나의 음성 신호에 대응되는 적어도 하나의 잡음 신호
에 대한 전력 스펙트럼 밀도(Power Spectrum Density)를 의미하고,
와 같은 행렬을 의미한다.
은
에 대한 추정값을 의미한다.
이어서, 제 1 음성 향상부(220)는 사후 SNR인
및
에 기초하여, 주파수 별 음성 부재 확률의 추정값
을 하기 수학식 2를 통해 계산할 수 있다.
상기 수학식 2에서
,
은 각각 기 설정된 상수이고,
은 적어도 하나의 마이크로폰의 개수를 의미한다.
이어서, 제 1 음성 향상부(220)는 사후 SNR인
에 기초하여, 주파수 대역 전체의 음성 부재 확률의 추정값
을 하기 수학식 3을 통해 계산할 수 있다.
상기 수학식 3에서 전체 주파수 대역의 사후 SNR인
은 하기 수학식 4를 이용하여 계산할 수 있다. 또한,
은 기 설정된 상수를 의미한다.
상기 수학식 4에서, K1은 전체 주파수 대역에 대한 주파수 인덱스를 의미하고,
은 소정의 주파수 별 웨이팅 값을 의미한다.
이어서, 제 1 음성 향상부(220)는 사후 SNR인
에 기초하여, 현재 프레임의 음성 부재 확률의 추정값
을 하기 수학식 5을 통해 계산할 수 있다.
상기 수학식 5에서 현재 프레임의 사후 SNR인
은 하기 수학식 6를 이용하여 계산할 수 있다. 또한,
은 기 설정된 상수를 의미한다.
상기 수학식 4에서, K는 주파수 인덱스를 의미한다.
이어서, 제 1 음성 향상부(220)는 수학식 2 내지 수학식 6을 통해 계산한
,
,
를 이용하여, 하기 수학식 7을 통해 최종적인 음성 부재 확률의 추정값
을 계산할 수 있다.
이어서, 제 1 음성 향상부(220)는 음성 부재 확률의 추정값
을 이용하여, 하기 수학식 8을 통해 음성 존재 확률
을 계산할 수 있다.
상기 수학식 8에서,
은 하기 수학식 9를 통해 계산할 수 있고,
은 하기 수학식 10을 통해 계산할 수 있다.
상기 수학식 9 및 10에서,
은 하기 수학식 11을 통해 계산할 수 있다.
일 실시예에 따라, 제 1 음성 향상부(220)는 계산된 음성 존재 확률에 기초하여, 적어도 하나의 음성 신호에 대해 1차 음성 향상을 수행하기 위한 이득 함수를 계산할 수 있다. 예를 들어, 제 1 음성 향상부(220)는 이득 함수를 계산하기 위해, 하기 수학식 12 내지 14을 이용할 수 있다.
먼저, 제 1 음성 향상부(220)는 음성 존재 확률
을 이용하여, 하기 수학식 12를 통해 평활화(smoothing) 변수
를 계산할 수 있다.
상기 수학식 12에서,
은 기 설정된 상수이다.
이어서, 제 1 음성 향상부(220)는 평활화 변수
을 이용하여, 하기 수학식 13를 통해
을 업데이트할 수 있다.
또한, 일 실시예에 따라, 업데이트된
을 이용하여, 상기 수학식 1 내지 수학식 13을 반복하여
를 반복하여 업데이트할 수 있다.
이어서, 제 1 음성 향상부(220)는 업데이트된
을 이용하여, 하기 수학식 14를 통해 이득 함수
를 계산할 수 있다.
상기 수학식 14에서,
은 단위 행렬을 의미하고,
은 unity 벡터를 의미한다.
따라서, 제 1 음성 향상부(220)는 적어도 하나의 음성 신호에 대해 계산된 이득 함수
를 적용하는, 1차 음성 향상을 수행하여 제 1 음성 신호를 생성할 수 있다.
제 1 음성 향상부(220)는 적어도 하나의 음성 신호에 대한 전력 스펙트럼 밀도와 같은 행렬, 및 적어도 하나의 잡음 신호에 대한 전력 스펙트럼 밀도와 같은 행렬에 기초하여, 적어도 하나의 음성 신호에 대한 1차 음성 향상을 수행할 수 있는 바, 별도의 방향 탐지를 위한 과정을 수행하지 않고 1차 음성 향상을 수행할 수 있다. 뿐만 아니라, 제 1 음성 향상부(220)는 음성 신호원과 마이크로폰 사이의 거리, 각도 및 전달 함수에 영향을 받지 않는 공간적 환경에 강인한 음성 향상을 수행할 수 있다.
도 3은 일 실시예에 따라, 제 2 음성 향상 장치(300)를 나타내는 도면이다.
제 2 음성 향상 장치(300)는 일 실시예에 따라, 획득부(310) 및 제 2 음성 향상부(320)를 포함할 수 있다. 도 3에 도시된 제 2 음성 향상 장치(300)는 본 실시예와 관련된 구성요소들만이 도시되어 있다. 따라서, 도 3에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 본 실시예와 관련된 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
획득부(310)는 일 실시예에 따라, 기 학습된 잡음 제거 이득 정보를 획득할 수 있다. 일 실시예에 따라, 획득부(310)는 통신부(미도시)를 통해 외부로부터 잡음 제거 이득 정보를 획득할 수 있다. 또한, 다른 실시예에 따라, 획득부(310)는 메모리(미도시)로부터 미리 저장된 잡음 제거 이득 정보를 획득할 수 있다. 일 실시예에 따라, 획득부(310)는 기 학습된 잡음 제거 이득 정보로써, 잡음 제거 이득 테이블을 획득할 수 있다.
도 4는 일 실시예에 따라, 잡음 제거 이득 테이블(410)을 나타내는 도면이다.
획득부(310)는 1차 음성 향상이 수행된 음성 신호에 대한 사전 SNR 및 사후 SNR에 대한 정보, 및 1차 음성 향상이 수행된 음성 신호의 잡음을 최소화하기 위한 잡음 제거 이득에 대한 정보를 포함하는 잡음 제거 이득 테이블(410)을 획득할 수 있다. 예를 들어, 잡음 제거 이득 테이블(410)은 사전 SNR 및 사후 SNR인 (SNR_0, SNR_1)을 갖는 음성 신호의 잡음을 최소화하기 위한 잡음 제거 이득인 G0을 포함할 수 있다. 또한, 잡음 제거 이득 테이블(410)은 (SNR_2, SNR_3)을 갖는 음성 신호의 잡음을 최소화하기 위한 잡음 제거 이득 G1을 포함할 수 있다.
도 3의 획득부(310)는 제 1 음성 향상 장치(20)로부터 제 1 음성 신호를 획득할 수 있다.
제 2 음성 향상부(320)는 제 1 음성 신호에 대한 사전 SNR 및 사후 SNR을 계산할 수 있다. 예를 들어, 제 2 음성 향상부(320)는 제 1 음성 신호에 대한 사전 SNR 및 사후 SNR을 계산하기 위해, 하기 수학식 15 내지 수학식 21을 이용할 수 있다.
먼저, 제 2 음성 향상부(320)는 하기 수학식 15를 통해 제 1 음성 신호에 대한 사후 SNR인 을 계산할 수 있다.
상기 수학식 15에서,
은 주파수 도메인 상에서의 제 1 음성 신호를 의미하고,
은 제 1 음성 신호에 대한 잡음 전력을 의미한다. k는 주파수 인덱스를 의미하고, m은 프레임 인덱스를 의미한다.
이어서, 제 2 음성 향상부(320)는 사후 SNR
에 기초하여, 하기 수학식 16을 통해 이웃한 주파수 간의 평균인
을 계산할 수 있다.
이어서, 제 2 음성 향상부(320)는
에 기초하여, 하기 수학식 17을 통해
을 계산할 수 있다.
상기 수학식 17에서,
은 소정의 임계값이 될 수 있다.
이어서, 제 2 음성 향상부(320)는
에 기초하여, 하기 수학식 18을 통해 음성 존재 확률의 추정값
을 계산할 수 있다.
상기 수학식 18에서,
은 기 설정된 상수이다.
이어서, 제 2 음성 향상부(320)는
에 기초하여, 하기 수학식 19를 통해 평활화 변수
을 계산할 수 있다.
상기 수학식 19에서,
은 기 설정된 상수이다.
이어서, 제 2 음성 향상부(320)는
에 기초하여, 하기 수학식 20을 통해 잡음 전력
을 갱신할 수 있다.
이어서, 제 2 음성 향상부(320)는 갱신된
에 기초하여, 하기 수학식 21과 같은 decision-directed 방식을 통해 제 1 음성 신호에 대한 사전 SNR을 계산할 수 있다.
상기 수학식 21에서,
은 기 설정된 상수를 의미하고,
은 제 2 음성 향상부(320)의 출력 신호인 제 2 음성 신호의 추정값이 될 수 있다.
일 실시예에 따라, 제 2 음성 향상부(320)는 제 1 음성 신호에 대한 사전 SNR 및 사후 SNR에 기초하여, 기 획득된 잡음 제거 이득 정보로부터 제 1 음성 신호에 대응되는 잡음 제거 이득을 선택할 수 있다. 이어서, 제 2 음성 향상부(320)는 선택된 잡음 제거 이득을 기초로 제 1 음성 신호에 대한 2차 음성 향상을 수행하여, 제 2 음성 신호를 생성할 수 있다.
예를 들어, 제 2 음성 향상부(320)에 의해 계산된 제 1 음성 신호에 대한 사전 SNR 및 사후 SNR이 SNR_0 및 SNR_1인 경우, 제 2 음성 향상부(320)는 도 4의 잡음 제거 이득 테이블(410)로부터 잡음 제거 이득 G0를 선택할 수 있다. 이어서, 제 2 음성 향상부(320)는 제 1 음성 신호에 대해 잡음 제거 이득 G0를 적용하는 2차 음성 향상을 수행하여, 제 2 음성 신호를 생성할 수 있다.
일 실시예에 따라, 획득부(310)는 잡음 제거 이득 정보로써, 클린 음성 신호 A, 및 클린 음성 신호 A에 잡음이 부가된 상태로 1차 음성 향상이 수행된 음성 신호 R을 획득할 수 있다.
도 5는 획득부(310)가 잡음 제거 이득 정보를 획득하는 실시예를 나타내는 도면이다.
획득부(310)는 잡음 제거 정보(510)로써 클린 음성 신호를 획득할 수 있다. 또한, 획득부(310)는 잡음 제거 정보(520)로써 클린 음성 신호에 잡음이 부가된 상태로 1차 음성 향상이 수행된 음성 신호를 획득할 수 있다.
도 3의 제 2 음성 향상부(320)는 음성 신호 R에 대한 사전 SNR 및 사후 SNR을 계산할 수 있다. 이어서, 획득부(310)는 음성 신호 R에 소정의 이득 G를 적용한 음성 신호 A`이 클린 음성 신호 A와 최소 평균 제곱 오차(Minimum Mean Square Error)를 갖기 위한 소정의 이득 G를 계산할 수 있다. 또한, 획득부(310)는 클린 음성 신호 A 및 음성 신호 R의 사전 SNR 및 사후 SNR에 기초하여, 음성 신호 R에 포함된 잡음을 최소화하기 위한 잡음 제거 이득을, 종래 기술로 알려진 data-driven optimization 방법을 통해, 계산할 수 있다.
도 6은 획득부(310)가 잡음 제거 이득을 계산하는 실시예를 나타내는 도면이다.
획득부(310)는 음성 신호에 대한 사전 SNR 및 사후 SNR 각각을 좌표축으로 갖는 그래프(610)를 생성할 수 있다. 그래프(610)의 각 좌표에는 음성 신호에 대응되는 클린 신호의 진폭값이 설정될 수 있다. 예를 들어, 그래프(610)의 음성 신호 R의 사전 SNR 및 사후 SNR인 (SNR_0, SNR_1)에는 클린 신호 A의 진폭값이 저장될 수 있다. 이어서, 획득부(310)는 그래프(610)에 기초하여, 종래 기술로 알려진 data-driven optimization 방법을 통해, 각 좌표마다 잡음 제거 이득이 설정된 그래프(620)를 생성할 수 있다. 예를 들어, 그래프(620)의 좌표 (SNR_0, SNR_1)에는 잡음 제거 이득 G0가 설정될 수 있다.
따라서, 도 3의 획득부(310)는 잡음 제거 이득 정보인 클린 음성 신호 A 및 음성 신호 R을 이용하여, 잡음 제거 이득을 계산할 수 있다. 또한, 획득부(310)는 음성 신호 R의 사전 SNR 및 사후 SNR에 대응되는 잡음 제거 이득을 잡음 제거 테이블로써 생성할 수 있다. 즉, 획득부(310)는 여러 가지 유형의 클린 음성 신호 및 1차 음성 향상이 수행된 음성 신호를 획득하여, 도 4의 테이블(410)과 같은 잡음 제거 테이블을 생성할 수 있다.
도 7은, 일 실시예에 따라, 음성 향상 시스템(10)(이하, 시스템(10)이라고 한다.)이 수행하는 음성 향상 방법을 설명하기 위한 도면이다.
도 7에 도시된 방법은, 도 1의 음성 향상 시스템(10)의 각 구성요소에 의해 수행될 수 있고, 중복되는 설명에 대해서는 생략한다.
단계 s710에서, 시스템(10)은 일 실시예에 따라, 적어도 하나의 음성 신호를 수신할 수 있다. 시스템(10)은 일 실시예에 따라, 적어도 하나의 마이크로폰을 통해 적어도 하나의 음성 신호를 수신할 수 있다.
단계 s720에서, 시스템(10)은 일 실시예에 따라, 적어도 하나의 음성 신호에 대한 1차 음성 향상을 수행하여 제 1 음성 신호를 생성할 수 있다. 일 실시예에 따라, 시스템(10)은 1차 음성 향상으로써 적어도 하나의 음성 신호에 대해 공간적 필터링(spatial filtering)을 수행할 수 있다. 시스템(10)은 일 실시예에 따라, 적어도 하나의 음성 신호 간에 연관성을 갖는 행렬에 기초하여, 적어도 하나의 음성 신호에 대한 공간적 필터링을 수행할 수 있다. 즉, 시스템(10)은 별도의 방향 탐지를 위한 과정을 수행하지 않고, 적어도 하나의 음성 신호 간에 연관성을 갖는 행렬에 기초하여, 적어도 하나의 음성 신호에 대한 1차 음성 향상을 수행할 수 있다. 보다 구체적인 실시예는 이하 도 8에서 살펴보기로 한다.
단계 s730에서, 시스템(10)은 일 실시예에 따라, 기 학습된 잡음 제거 이득 정보로부터 제 1 음성 신호에 대응되는 잡음 제거 이득을 선택할 수 있다. 보다 구체적인 실시예는 이하 도 9에서 살펴보기로 한다.
단계 s740에서, 시스템(10)은 선택된 잡음 제거 이득을 기초로 제 1 음성 신호에 대한 2차 음성 향상을 수행하여, 제 2 음성 신호를 생성할 수 있다. 즉, 시스템(10)은 선택된 잡음 제거 이득을 제 1 음성 신호에 적용하는 2차 음성 향상을 수행하여, 제 2 음성 신호를 생성할 수 있다.
도 8은 도 7의 s720을 보다 구체적으로 설명하기 위한 도면이다.
단계 s810에서, 시스템(10)은 일 실시예에 따라, 적어도 하나의 음성 신호에 기초하여, 적어도 하나의 음성 신호에 대한 음성 존재 확률을 계산할 수 있다. 보다 구체적으로, 시스템(10)은 잡음 신호에 대한 전력 스펙트럼 밀도의 추정값을 이용하여, 적어도 하나의 음성 신호에 대한 사후 SNR을 계산할 수 있다. 이어서, 시스템(10)은 계산된 사후 SNR에 기초하여, 음성 부재 확률의 추정값을 계산할 수 있다. 또한, 시스템(10)은 계산된 음성 부재 확률의 추정값에 기초하여, 음성 존재 확률을 계산할 수 있다.
단계 s820에서, 시스템(10)은 일 실시예에 따라, 음성 존재 확률에 기초하여, 이득 함수를 계산할 수 있다. 보다 구체적으로, 시스템(10)은 음성 존재 확률에 기초하여, 평활화 변수를 계산할 수 있다. 이어서, 시스템(10)은 평활화 변수를 이용하여, 잡음 신호에 대한 전력 스펙트럼 밀도의 추정값을 업데이트할 수 있다. 이어서, 시스템(10)은 업데이트된 잡음 신호에 대한 전력 스펙트럼 밀도의 추정값에 기초하여, 이득 함수를 계산할 수 있다.
단계 s830에서, 시스템(10)은 적어도 하나의 음성 신호에 대해 계산된 이득 함수를 적용하는, 1차 음성 향상을 수행하여 제 1 음성 신호를 생성할 수 있다.
도 9는 도 7의 s730을 보다 구체적으로 설명하기 위한 도면이다.
단계 s910에서, 시스템(10)은 일 실시예에 따라, 기 학습된 잡음 제거 이득 정보를 획득할 수 있다. 일 실시예에 따라, 시스템(10)은 기 학습된 잡음 제거 이득 정보로써, 잡음 제거 이득 테이블을 획득할 수 있다. 잡음 제거 이득 테이블은 1차 음성 향상이 수행된 음성 신호에 대한 사전 SNR 및 사후 SNR에 대한 정보, 및 1차 음성 향상이 수행된 음성 신호의 잡음을 최소화하기 위한 잡음 제거 이득에 대한 정보를 포함할 수 있다. 예를 들어, 잡음 제거 이득 테이블()은 사전 SNR 및 사후 SNR인 (SNR_0, SNR_1)을 갖는 음성 신호의 잡음을 최소화하기 위한 잡음 제거 이득인 G0을 포함할 수 있다.
또한, 시스템(10)은 다른 실시예에 따라, 잡음 제거 이득 정보로써, 클린 음성 신호 A, 및 클린 음성 신호 A에 잡음이 부가된 상태로 1차 음성 향상이 수행된 음성 신호 R을 획득할 수 있다. 제 2 음성 향상부(320)는 음성 신호 R에 대한 사전 SNR 및 사후 SNR을 계산할 수 있다. 이어서, 시스템(10)은, 음성 신호 R에 소정의 이득 G를 적용한 음성 신호 A`이 클린 음성 신호 A와 최소 평균 제곱 오차(Minimum Mean Square Error)를 갖기 위한 소정의 이득 G를 계산할 수 있다. 또한, 시스템(10)은 클린 음성 신호 A 및 음성 신호 R의 사전 SNR 및 사후 SNR에 기초하여, 음성 신호 R에 포함된 잡음을 최소화하기 위한 잡음 제거 이득을, 종래 기술로 알려진 data-driven optimization 방법을 통해, 계산할 수 있다.
따라서, 시스템(10)은 잡음 제거 이득 정보인 클린 음성 신호 A 및 음성 신호 R을 이용하여, 잡음 제거 이득을 계산할 수 있다. 또한, 시스템(10)은 음성 신호 R의 사전 SNR 및 사후 SNR에 대응되는 잡음 제거 이득을 잡음 제거 테이블로써 생성할 수 있다. 즉, 시스템(10)은 여러 가지 유형의 클린 음성 신호 및 1차 음성 향상이 수행된 음성 신호를 획득하여, 잡음 제거 테이블을 생성할 수 있다.
또한, 시스템(10)은 1차 음성 향상이 수행된 제 1 음성 신호를 획득할 수 있다.
단계 s920에서, 시스템(10)은 제 1 음성 신호에 대한 사전 SNR 및 사후 SNR을 계산할 수 있다. 보다 구체적으로, 먼저 시스템(10)은 제 1 음성 신호에 대한 사후 SNR을 계산할 수 있다. 이어서, 시스템(10)은 사후 SNR에 기초하여, 음성 존재 확률의 추정값을 계산할 수 있다. 이어서, 시스템(10)은 음성 존재 확률의 추정값에 기초하여, 평활화 변수를 계산할 수 있다. 이어서, 시스템(10)은 평활화 변수를 통해 잡음 전력을 갱신할 수 있다. 이어서, 시스템(10)은 갱신된 잡음 전력에 기초하여, 제 1 음성 신호에 대한 사전 SNR을 계산할 수 있다.
단계 s930에서, 시스템(10)은 일 실시예에 따라, 계산된 사전 SNR 및 사후 SNR에 기초하여, 획득된 잡음 제거 이득 정보로부터 잡음 제거 이득을 선택할 수 있다. 예를 들어, 시스템(10)에 의해 계산된 제 1 음성 신호에 대한 사전 SNR 및 사후 SNR이 SNR_0 및 SNR_1인 경우, 시스템(10)은 잡음 제거 이득 테이블로부터 잡음 제거 이득 G0를 선택할 수 있다.
상기 살펴 본 실시 예들에 따른 장치는 프로세서, 프로그램 데이터를 저장하고 실행하는 메모리, 디스크 드라이브와 같은 영구 저장부(permanent storage), 외부 장치와 통신하는 통신 포트, 터치 패널, 키(key), 버튼 등과 같은 사용자 인터페이스 장치 등을 포함할 수 있다. 소프트웨어 모듈 또는 알고리즘으로 구현되는 방법들은 상기 프로세서상에서 실행 가능한 컴퓨터가 읽을 수 있는 코드들 또는 프로그램 명령들로서 컴퓨터가 읽을 수 있는 기록 매체 상에 저장될 수 있다. 여기서 컴퓨터가 읽을 수 있는 기록 매체로 마그네틱 저장 매체(예컨대, ROM(read-only memory), RAM(random-access memory), 플로피 디스크, 하드 디스크 등) 및 광학적 판독 매체(예컨대, 시디롬(CD-ROM), 디브이디(DVD: Digital Versatile Disc)) 등이 있다. 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템들에 분산되어, 분산 방식으로 컴퓨터가 판독 가능한 코드가 저장되고 실행될 수 있다. 매체는 컴퓨터에 의해 판독가능하며, 메모리에 저장되고, 프로세서에서 실행될 수 있다.
본 실시 예는 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들은 특정 기능들을 실행하는 다양한 개수의 하드웨어 또는/및 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 실시 예는 하나 이상의 마이크로프로세서들의 제어 또는 다른 제어 장치들에 의해서 다양한 기능들을 실행할 수 있는, 메모리, 프로세싱, 로직(logic), 룩 업 테이블(look-up table) 등과 같은 직접 회로 구성들을 채용할 수 있다. 구성 요소들이 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있는 것과 유사하게, 본 실시 예는 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 실시 예는 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. “매커니즘”, “요소”, “수단”, “구성”과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다. 상기 용어는 프로세서 등과 연계하여 소프트웨어의 일련의 처리들(routines)의 의미를 포함할 수 있다.
본 실시 예에서 설명하는 특정 실행들은 예시들로서, 어떠한 방법으로도 기술적 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다.
본 명세서(특히 특허청구범위에서)에서 “상기”의 용어 및 이와 유사한 지시 용어의 사용은 단수 및 복수 모두에 해당하는 것일 수 있다. 또한, 범위(range)를 기재한 경우 상기 범위에 속하는 개별적인 값을 포함하는 것으로서(이에 반하는 기재가 없다면), 상세한 설명에 상기 범위를 구성하는 각 개별적인 값을 기재한 것과 같다. 마지막으로, 방법을 구성하는 단계들에 대하여 명백하게 순서를 기재하거나 반하는 기재가 없다면, 상기 단계들은 적당한 순서로 행해질 수 있다. 반드시 상기 단계들의 기재 순서에 한정되는 것은 아니다. 모든 예들 또는 예시적인 용어(예들 들어, 등등)의 사용은 단순히 기술적 사상을 상세히 설명하기 위한 것으로서 특허청구범위에 의해 한정되지 않는 이상 상기 예들 또는 예시적인 용어로 인해 범위가 한정되는 것은 아니다. 또한, 당업자는 다양한 수정, 조합 및 변경이 부가된 특허청구범위 또는 그 균등물의 범주 내에서 설계 조건 및 팩터에 따라 구성될 수 있음을 알 수 있다.