상기와 같은 과제를 해결하기 위한 본 발명의 하나의 특징은, 음성 신호와 잡음 신호가 섞인 입력 신호로부터 잡음을 제거하는 방법에 있어서, 상기 입력 신호로부터 음성 신호가 섞이지 않고 잡음 신호만 존재하는 잡음 구간을 검출하는 단계와, 상기 잡음 구간의 신호로부터 상기 입력 신호에 이용될 가중치를 획득하는 단계와, 상기 획득된 가중치를 이용하여 상기 입력 신호를 필터링하는 단계를 포함하는 것이다.
상기 잡음 구간 검출 단계는, 상기 입력 신호의 평균 에너지가 지속적으로 증가하는 후보 구간을 선택하는 단계와, 상기 선택된 후보 구간에 상기 음성 신호 존재 여부를 판단하여 잡음 구간인지를 결정하는 단계를 포함하는 것이 바람직하다.
상기 결정 단계는, 상기 후보 구간의 길이가 소정 임계치를 넘으면 잡음 구간으로 결정하는 단계를 포함하거나 또는 VAD 과정에서 상기 선택된 후보 구간의 신호에서 음성이 검출되지 않은 경우에 상기 후보 구간을 잡음 구간으로 결정하는 단계를 포함하는 것이 바람직하다.
상기 가중치 획득 단계는, 상기 후보 구간의 신호들을 기초로 공분산 행렬을 구하는 단계와, 데이터가 충분히 누적되었다고 판단될 때까지 상기 공분산 행렬에 다음 후보 구간의 공분산 행렬을 누적하는 단계와, 상기 누적된 공분산 행렬로부터 고유치 분해를 통해 가중치로 이용될 최소 고유치에 해당하는 고유벡터를 획득하는 단계를 포함하는 것이 바람직하다.
본 발명의 다른 특징은, 입력 신호의 잡음 제거를 위한 필터링에 이용되는 가중치를 획득하는 방법에 있어서, 상기 입력 신호의 평균 에너지가 지속적으로 증 가하는 후보 구간을 선택하는 단계와, 상기 후보 구간의 신호에 음성이 검출되지 않았다고 판단되는 경우에 상기 후보 구간의 신호들을 기초로 공분산 행렬을 구하고, 다음 공분산 행렬을 구하여 누적하는 단계와, 상기 누적된 공분산 행렬로부터 고유치 분해를 통해 가중치를 획득하는 단계를 포함하는 것이다.
상기 후보 구간 선택 단계는, 상기 입력 신호의 단구간 평균 에너지의 크기와 장구간 평균 에너지의 크기의 차이가 제1 임계치를 넘는 포인트들이 연속적으로 소정 개수 이상 발생하는 구간을 후보 구간으로 선택하는 단계를 포함하는 것이 바람직하다.
상기 누적 단계에서, 상기 후보 구간의 길이가 소정 길이를 넘는 경우 또는 상기 후보 구간에 음성 신호가 검출되지 않은 경우에 상기 후보 구간의 공분산 행렬을 누적 공분산 행렬에 누적하는 것이 바람직하다.
본 발명의 다른 특징은, 음성 신호와 잡음 신호가 섞인 입력 신호로부터 잡음을 제거하는 장치에 있어서, 상기 입력 신호로부터 음성 신호가 섞이지 않고 잡음 신호만 존재하는 잡음 구간을 검출하고, 상기 잡음 구간의 신호로부터 상기 입력 신호에 이용될 가중치를 획득하는 가중치 업데이트부와, 상기 획득된 가중치를 이용하여 상기 입력 신호를 필터링하는 필터링부를 포함하는 것이다.
본 발명의 또다른 특징은, 입력 신호의 잡음 제거를 위한 필터링에 이용되는 가중치를 획득하는 장치에 있어서, 상기 입력 신호의 평균 에너지가 지속적으로 증가하는 후보 구간을 선택하는 후보 구간 선택부, 상기 후보 구간의 신호에 음성이 검출되지 않았다고 판단되는 경우에 상기 후보 구간의 신호들을 기초로 공분산 행 렬을 구하고, 다음 공분산 행렬을 구하여 누적하는 공분산 행렬 누적부와, 상기 누적된 공분산 행렬로부터 고유치 분해를 통해 가중치를 획득하는 가중치 계산부를 포함하는 것이다.
이제, 첨부된 도면들을 참조하여 본 발명을 상세히 설명한다.
도 2는 본 발명에 따른 다채널 잡음 제거 장치의 개략적인 블록도이다. 로봇의 위치가 계속 변화하기 때문에 잡음 및 간섭원 신호를 효과적으로 제거하기 위해서 빠른 가중치 업데이트가 무엇보다도 중요한데 이를 위해 도 2에 도시된 바와 같은 잡음 제거 장치가 구현된다. 도 2에 도시된 잡음 제거 장치는 크게 가중치를 업데이트하는 부분과 다채널 필터링 및 더하는 부분으로 나눌 수 있다. 가중치 업데이트 부분은 환경의 변화에 맞게 가중치를 갱신하는 부분이고 다채널 필터링 및 더하는 부분은 구해진 가중치를 이용하여 목적 음성으로부터 잡음과 간섭원의 신호를 제거하는 부분이다. 전체 시스템 측면에서 보면 VAD에 포함될 수 있는 단일 채널 잡음 제거기가 팬 잡음 및 화이트 잡음과 같은 정적(stationary) 잡음을 효과적으로 제거할 수 있기 때문에 다채널 잡음 제거 장치는 이를 제거하기 보다는 비정적(non-stationary) 잡음과 간섭원을 제거하는데 주안점을 두는 것이 더 바람직하다. 따라서 가중치 업데이트 부분에서는 이 점을 고려하여 업데이트를 실시한다.
도 2를 참조하면, 다채널 잡음 제거 장치는 마이크 어레이(410)와, 가중치 업데이트부(420)와, 멀티채널 필터링 및 합산부(430)와, VAD(440)를 포함한다.
마이크 어레이(410)는 하나 이상의 마이크를 포함하며, 마이크로부터 수신된 음성 신호 또는 잡음 신호를 가중치 업데이트부(420) 또는 멀티채널 필터링 및 합 산부(430)로 출력한다.
가중치 업데이트부(420)는 마이크로부터 수신되는 신호에서 잡음을 최소화하기 위해 마이크로부터 수신되는 신호에 곱해질 가중치를 계산하고 업데이트하여 이를 멀티채널 필터링 및 합산부(430)로 제공한다. 특히, 본 발명에 따라 가중치 업데이트부(420)는 잡음 구간에서의 신호의 평균 출력 전력을 최소화할 수 있도록 하는 가중치를 계산하고 업데이트한다.
멀티채널 필터링 및 합산부(430)는 가중치 업데이트부(420)로부터 수신된 가중치를 각 마이크로부터 수신된 신호에 곱하고 이렇게 곱해진 신호를 모두 더하여 VAD(440)로 제공한다. VAD(Voice Activity Detection)(440)는 수신된 신호로부터 음성 신호를 검출한다. 보통은 이러한 VAD에 단일 채널 음성 향상기가 포함되어 있어서 stationary 잡음 등과 같은 단일 채널에 관한 잡음은 여기에서 필터링될 수 있다.
본 발명에 따라 잡음을 제거하는 원리를 도 3을 참조하여 설명한다.
도 3을 참조하면, x1
(k) , x2
(k) , x3
(k)
, xj
(k)는 j개의 마이크로부터 수신되는 음성(Source)과 잡음(Noise)이 섞인 신호를 나타낸다. w1
* , w2
*
,w3
* ,wj
* 는 이러한 j개의 입력 신호에 각각 곱해지는 가중치를 나타낸다.
음성과 잡음이 섞인 입력 신호들에 각각 가중치를 곱하고 가중치가 곱해진 입력 신호들을 모두 더한 출력 신호에서 잡음을 최소화하는 것이 일반적인 잡음 제 거 원리이다. 이를 위해서는 출력신호에서 잡음을 최소화할 수 있는 가중치를 찾는 것이 중요하다. 본 발명은 출력신호에서 잡음을 최소화할 수 있는 가중치로서, 잡음 구간에서 잡음을 최소화할 수 있는 가중치를 이용한다.
즉, 본 발명의 개념은 잡음 구간에서 신호의 평균 출력 전력을 최소화하는 것이다.
잡음 구간에서의 평균 출력 전력은 다음과 같이 표시할 수 있다.
여기서, x는 잡음 구간에서의 신호를 나타내고, w는 이러한 신호에 곱해지는 가중치를 나타낸다.
이러한
의 값을 최소화하는 w를 구함으로써 잡음 구간에서의 평균 출력 전력을 최소화시킬 수 있다. 단,
이다.
이와 같이 잡음구간에서의 평균 출력전력을 최소화시키는 w는 다음과 같은 공분산 행렬을 이용하여 그 해를 구할 수 있다.
R=E{xx^H}
이러한 공분산 행렬 R에서, 가중치 w는 공분산 행렬 R의 최소 고유치에 대응하는 고유 벡터로 나타내진다.
이와 같이 본 발명에 따라 잡음 구간에서의 평균 출력 전력을 최소화하는 가중치를 구하는 방법은, 화자의 음성이 포함되지 않는 잡음 구간만을 대상으로 가중 치를 구할 수 있으므로, 화자의 방향에 대한 예측이 필요하지 않아서 실시간 구현이 용이하다.
도 4는 도 2에 도시된 다채널 잡음 제거 장치의 일 예의 블록도이다.
도 4를 참조하면, 마이크 어레이(410)는 4 개의 마이크를 포함하며, 4개의 마이크로부터 수신된 각 입력 신호는 가중치 업데이트부(420)와 멀티채널 필터링 및 합산부(430)로 제공된다.
가중치 업데이트부(420)는 업데이트 후보구간 선택부(421)와, 후보구간 공분산 행렬 생성부(422)와, 공분산 행렬 누적 생성부(423)와, 가중치 계산부(424)를 포함한다.
업데이트 후보구간 선택부(421)는 입력 신호들로부터 잡음 신호들로만 이루어진 잡음 구간을 선택한다.
후보 구간 공분산행렬 생성부(422)는 선택된 후보구간의 신호들을 이용하여 공분산 행렬을 생성한다.
공분산 행렬 누적부(423)는 후보 구간 공분산 행렬 생성부(422)로부터 생성된 공분산 행렬들을 누적한다.
가중치 계산부(424)는 공분산 행렬 누적부(423)에서 누적된 공분산 행렬로부터 가중치를 계산하여 멀티채널 필터링 및 합산부(430)로 제공한다.
멀티채널 필터링 및 합산부(430)는 제1 선형 콘볼루션부(431), 제2 선형 콘볼루션부(432), 제3 선형 콘볼루션부(433), 제4 선형 콘볼루션부(434) 및 합산기(435)를 포함한다.
제1 선형 콘볼루션부(431), 제2 선형 콘볼루션부(432), 제3 선형 콘볼루션부(433), 제4 선형 콘볼루션부(434)는 마이크로부터 수신된 각 입력 신호에 가중치 계산부(424)로부터 제공된 각 가중치를 곱하여 합산부(435)로 출력한다.
합산부(435)는 각 선형 콘볼루션부로부터 제공된 가중치가 곱해진 입력 신호를 모두 더하여 VAD(440)로 출력한다.
VAD(440)는 수신된 신호로부터 음성 검출한다.
도 5는 본 발명에 따른 다채널 잡음 제거 방법의 과정을 나타내는 흐름도이다.
도 5를 참조하면, 업데이트 후보 구간 선택부(421)는 신호의 평균 에너지가 지속적으로 증가하는 구간을 업데이트 후보 구간으로 선택한다(510).
즉, 가중치 업데이트를 위한 후보 구간으로, 단구간 평균 에너지(Eshort)와 장구간 평균 에너지(Elong)를 비교하여 그 차이가 소정 임계치 이상 지속되는 구간을 선택한다. 잡음이 발생한 구간은 그 에너지의 크기가 증가하기 때문에 장구간 평균 에너지보다 단구간 평균 에너지가 더 크게 되므로, 이러한 점에 착안하여 단구간 평균 에너지가 장구간 평균 에너지보다 소정 임계치 이상 크면 일단 잡음 구간의 후보 구간으로 결정할 수 있는 것이다.
단구간 평균 에너지(Eshort)는 신호들의 평균 에너지를 짧은 구간에서 평가한 값으로 다음 수식에 의해 나타내질 수 있다.
장구간 평균 에너지(Elong)는 신호들의 평균 에너지를 긴 구간에서 평가한 값으로 다음 수식에 의해 나타내질 수 있다.
여기서, λlong, λshort 는 잡음의 특성, 샘플링 주파수 등에 의해 변할 수 있는 값이다.
물론, 위의 설명한 바와 같은 방법 외에도 에너지 증가를 감지할 수 있는 방법이라면 어떠한 방법도 이용될 수 있다.
도 7에 업데이트 후보 구간을 설명하기 위한 그래프가 도시되어 있다.
도 7의 (a)는 시간축상에서 원래 입력 데이터의 크기를 나타내고, (b)는 (a)에 도시된 원래 데이터의 장구간 평균 에너지와 단구간 평균 에너지를 나타낸 그래프이다.
본 발명에 따라 업데이트 후보 구간을 선택하는 세부적인 과정을 나타내는 흐름도가 도 6에 도시되어 있다.
도 6을 참조하면, 먼저 단구간 평균 에너지(Eshort)와 장구간 평균 에너지(Elong)의 차이가 소정의 임계치(Eth)보다 큰지 여부의 판단 대상이 되는 포인트를 수 신한다(600). 여기서, 포인트는 실제로 도 7의 (b)에 도시된 바와 같은 각 포인트에서의 단구간 평균 에너지 값과 장구간 평균 에너지 값이 될 수 있다.
다음, 단구간 평균 에너지(Eshort)와 장구간 평균 에너지(Elong)의 차이가 소정의 임계치(Eth)보다 큰지를 판단한다(610).
판단결과, 단구간 평균 에너지와 장구간 평균 에너지의 차이가 소정의 임계치보다 크면, 카운트 값을 1 증가시키고(620), 이 카운트 값이 카운트 초기 임계값 Cth,initial을 초과하는지 판단한다(630).
누적된 카운트값이 카운트 초기 임계값보다 크다고 판단된 경우에는, 단구간 평균 에너지가 장구간 평균 에너지보다 큰 포인트들이 소정 개수 이상 되었다는 것을 나타내고, 이것은 입력 신호들의 에너지 크기가 지속적으로 증가하는 구간의 시작점을 찾았다는 것을 의미한다. 따라서, 후보 구간 시작점이 존재하는지를 판단해서(640), 후보 구간 시작점이 존재하지 않는 경우에는 후보 구간 시작점을 등록하고(650), 다음 포인트를 수신한다(600).
후보 구간 시작점이 존재하는 경우에는 누적된 카운트 값이 Cth,max를 초과하는지를 판단해서(660), 초과하는 경우에는 후보 구간 끝점을 등록하고(680), 다음 후보 구간 등록을 위해 카운트 값을 0으로 초기화한다(690).
누적된 카운트 값이 Cth,max를 초과하지 않는 경우에는 다음 포인트를 수신한다(600).
단계 610에서 단구간 평균 에너지(Eshort)와 장구간 평균 에너지(Elong)의 차이가 소정의 임계치(Eth)보다 작은 경우에는 누적된 카운트 값이 Cth,min 을 초과하는지를 판단한다(670). Cth,min 은 Cth,initial 보다는 크고 C
th,max 보다는 작은 값이다. 즉, 이것은 일단 후보 구간 시작점이 등록된 상태에서 후보 구간 끝점을 등록할 만한 최소 임계치를 나타낸다.
따라서, 누적된 카운트 값이 Cth,min 을 초과하지 않는 경우에는, 일단 후보 구간 시작점은 등록되었지만 후보 구간 끝점을 등록할 수 있기 전에 단구간 평균 에너지와 장구간 평균 에너지의 차이가 크지 않게 되어서 후보 구간으로 등록할 만하지 못하다는 것을 나타내므로 이전의 후보 구간 시작점은 무시하고 카운트 값을 초기화하여(690), 다음 후보 구간을 찾는다.
누적된 카운트값이 Cth,min 을 초과하는 경우에는, 후보 구간 시작점이 등록된 상태에서 카운트값이 후보 구간 끝점을 등록할 만한 최소 임계치는 넘은 상태를 나타내기 때문에 후보 구간 끝점을 등록하여(680), 후보 구간을 결정하고 다음 후보 구간을 찾기 위해 카운트 값을 초기화한다(690).
예를 들어, Cth,initial 은 4이고, Cth,min 은 7이고, Cth,max
는 10으로 정했다고 하자. 그러면, 도 6에 도시된 동작에 의해, 단구간 평균 에너지와 장구간 평균 에너지의 차이가 소정 임계치를 넘는 포인트가 4개를 초과하면 후보 구간 시작점이 등록되고, 단구간 평균 에너지와 장구간 평균 에너지의 차이가 소정 임계치를 넘는 포인트가 7개가 되기 전에 단구간 평균 에너지와 장구간 평균 에너지의 차이가 소정 임계치를 넘지 않는 포인트가 생긴다면, 앞의 후보 구간 시작점은 무시되고 다음 후보 구간을 찾기 위해 카운트값을 초기화된다.
단구간 평균 에너지와 장구간 평균 에너지의 차이가 소정 임계치를 넘는 포인트가 4개를 초과하여 후보 구간 시작점이 등록되고, 단구간 평균 에너지와 장구간 평균 에너지의 차이가 소정 임계치를 넘는 포인트가 7개가 넘고 나서 단구간 평균 에너지와 장구간 평균 에너지의 차이가 소정 임계치를 넘지 않는 포인트가 생긴다면, 이것은 후보 구간으로 등록된다.
단구간 평균 에너지와 장구간 평균 에너지의 차이가 소정 임계치를 넘는 포인트가 4개를 초과하여 후보 구간 시작점이 등록되고, 단구간 평균 에너지와 장구간 평균 에너지의 차이가 소정 임계치를 넘는 포인트가 계속하여 발생하여 10개가 넘는 다면 여기까지를 후보 구간으로 등록한다. 후보 구간이 너무 길어지면, 가중치의 업데이트가 늦어지고 그 만큼 잡음의 변화에 빨리 대응하기 어렵기 때문이다.
그러므로, Cth,min 은 등록되는 후보 구간의 최소 길이가 되고, Cth,max
는 등록되는 후보 구간의 최대 길이가 된다.
이와 같이 후보 구간이 선택되면 후보 구간 공분산 행렬 생성부(422)는 선택된 후보 구간의 신호들을 이용하여 후보 구간 공분산 행렬을 생성한다(520). 그리고, 공분산 행렬 누적부(423)는 생성된 후보 구간 공분산 행렬을 누적하고(530), 가중치 계산부(424)는 누적된 공분산 행렬의 고유치 분해로부터 가중치를 획득한다 (530).
이와 같이 본 발명에 따라 후보 구간을 이용하여 공분산 행렬을 생성하고 누적하며 이로부터 가중치를 업데이트하는 과정의 일 예가 도 8에 도시되어 있다.
도 8을 참조하면, i 번째 후보 구간을 입력받는다(810).
다음, i 번째 후보 구간의 신호들로부터 공분산 행렬을 계산한다(820).
그리고, 대기 시간 내에 VAD에서 음성이 검출되었는지를 판단한다(830). 도 9를 참조하면, 후보 구간 (1), (2), (3)이 도시되어 있다. 각 후보 구간은 대기 시간을 기다린 다음에 가중치 계산에 이용할 지를 결정한다. 즉, 후보 구간 (1)과 후보 구간 (2)의 경우에는 대기 시간 이내에 음성이 검출되지 않았으므로 가중치 계산에 이용되지만, 후보 구간 (3)의 경우에는 대기 시간 이내에 음성이 검출되었으므로 가중치 계산에 이용된다. 도 4를 참조하면, 업데이트 후보 구간은 업데이트 후보 구간 선택부(421)에 의해 선택되지만, 이 선택된 후보 구간의 신호에 음성이 섞여있는지는 VAD(440)에서 검출되고 이 검출 결과를 공분산 행렬 누적부(423)에서 수신하기 까지는 소정의 지연이 생기므로, 이러한 지연 시간을 감안하여 대기 시간을 두는 것이다.
대기 시간내에 VAD에서 음성이 검출된 경우에는 이 후보 구간은 실제 가중치 계산에 이용할 수 없는 후보 구간이므로, i를 1 증가시키고(870), 다음 후보 구간으로 진행한다.
대기 시간내에 VAD에서 음성이 검출되지 않은 경우에는 이 후보 구간은 실제 가중치 계산에 이용될 수 있는 후보 구간이므로, 이전 공분산 행렬에 누적하여 가 중 평균을 구한다(840).
그리고나서, 이렇게 누적된 공분산 행렬에 충분한 데이터가 누적되었는지를 판단한다(850).
충분히 데이터가 누적되었다고 판단된 경우에는 가중치를 계산하고(860), 데이터가 충분히 누적되지 않았다고 판단되는 경우에는 i를 1 증가시키고(870), 다음 후보 구간으로 진행한다.
도 10은 본 발명에 따라 후보 구간을 이용하여 가중치를 업데이트하는 과정의 다른 예를 나타내는 흐름도이다.
도 10을 참조하면, i 번째 후보 구간을 입력받는다(1010).
다음, i 번째 후보 구간의 신호들로부터 공분산 행렬을 계산한다(1020).
그리고, 연속한 에너지 증가 구간 즉 후보 구간의 길이가 소정의 임계치 Tth 보다 큰 지를 판단한다(830). 도 8에 도시된 예에서는 선택된 후보 구간에 음성이 섞여 있는지를 VAD에서 음성의 검출 여부로 판단하지만, 도 10에 도시된 예에서는 음성이 섞여 있는지 여부를 연속한 에너지 증가 구간의 길이로 판단한다. 이러한 판단은, 음성은 에너지가 지속적으로 증가하는 길이가 어느 한도 이내라는 특성에 근거한다. 다시 말하면, 에너지가 지속적으로 증가하는 길이가 어느 임계치를 넘는다면 그것은 음성이 아니라 외부의 다른 요인에 의한 잡음 즉, 라디오 소리나 TV 소리일 확률이 높기 때문이다.
도 11을 참조하면, 후보 구간 (1), (2), (3)이 도시되어 있다. 각 후보 구 간은 그 후보 구간의 길이 만으로 음성이 섞여있는지 여부가 판단되기 때문에 도 9에서와 달리 대기 시간을 기다리지 않고 그 후보 구간의 공분산 행렬을 계산한 다음 바로 누적될 수 있다. 따라서, 도 9에서와 달리 후보 구간의 누적이 즉시 수행될 수 있다.
연속한 에너지 증가 구간이 소정의 임계치 보다 크지 않다고 판단되면 이는 이 후보구간에 음성이 섞여 있다는 것을 나타내고 따라서 이 후보 구간은 실제 가중치 계산에 이용할 수 없는 후보 구간이므로, i를 1 증가시키고(1070), 다음 후보 구간으로 진행한다.
연속한 에너지 증가 구간이 소정의 임계치보다 크면 이 후보 구간에 음성이 섞여 있지 않다고 판단하고, 이전 공분산 행렬에 누적하여 가중 평균을 구한다(1040).
그리고나서, 이렇게 누적된 공분산 행렬에 충분한 데이터가 누적되었는지를 판단한다(1050).
충분히 데이터가 누적되었다고 판단된 경우에는 가중치를 계산하고(1060), 데이터가 충분히 누적되지 않았다고 판단되는 경우에는 i를 1 증가시키고(1070), 다음 후보 구간으로 진행한다.
후보 구간의 공분산 행렬의 초기값은 다음과 같다.
n+1 번째 후보 구간의 공분산 행렬은 다음과 같이 계산된다.
Rcandi(n+1,f)=Rcandi(n+1,f)+x(k,f)*xH(k,f)
여기서, n은 후보 구간의 인덱스를 나타내고, k는 후보구간내의 프레임 인덱스, f는 각 후보 구간에서의 프리퀀시 빈(frequency bin)의 인덱스를 나타내고, x는 이 후보 구간의 신호 값을 나타낸다. 이 후보구간 내 공분산 행렬은 후보구간이 등록된 후에 계산할 수도 있지만 후보구간의 시작점이 검출된 후부터 계산되어서 계산량을 분산시킬 수도 있다.
n+1 번째 후보 구간의 공분산 행렬의 누적은 다음과 같이 계산된다.
여기서, nFramecandi 는 Rcandi에 누적된 프레임의 수를 나타내고, λacc
nFramecandi는 0.98로 할 수 있고, 잡음의 특성 및 샘플링 주파수 등에 의해서 변할 수 있다.
이와 같이 후보 구간의 공분산 행렬을 누적하여 데이터가 충분히 누적되었을 때, 이러한 R 값으로부터 고유치를 분해하고, 분해된 고유치들로부터 최소의 고유치에 관련된 고유 벡터를 선택한다.
멀티채널 필터링 및 합산부(430)는 획득된 가중치를 이용하여 입력 신호를 멀티 채널 필터링하고 각 신호들을 합산하여 출력 신호를 생성한다(550).
가중치를 이용하여 멀티 채널 필터링을 수행하는 방법에는 다양한 방법이 있을 수 있으며, 그 중에서 본 발명에 따라 오버랩 애드(Overlap-Add) 방법이 효과적 으로 사용될 수 있다.
도 12a 내지 도 12c는 본 발명에 따른 멀티 채널 잡음 제거의 실행 결과를 나타내는 그래프이다.
도 12a는 마이크를 통해 들어오는 원래 데이터(Raw data)를 나타낸다.
도 12b는 도 12a에 도시된 원래 데이터의 단구간 평균 에너지와 장구간 평균 에너지를 나타낸다.
도 12b를 참조하면, 잡음이 발생하고 증가하는 구간에서 가중치 업데이트가 수행됨이 표시되어 있다.
도 12c는 도 12b에 도시된 바와 같은 가중치 업데이트에 의해 도 12a에 도시된 원래 데이터에서 잡음이 제거된 데이터를 나타낸다.
도 12c를 참조하면, 1200부터 시작하여 1240으로 끝나는 구간에서 가중치 업데이트가 수행되어 도 12a에 도시된 원래 데이터에 비해 잡음이 상당히 제거되었음을 알 수 있다.
도 13은 본 발명에 따른 멀티 채널 잡음 제거 방법의 성능을 평가하기 위한 실험 환경을 나타내는 참고도이다.
도 13을 참조하면, 실험 환경은 다음과 같다.
잡음원은 FAN 잡음과 두 종류의 음악 "DANCING QUEEN" 과 "돌아오라 소렌토로"로 이고, 잡음의 위치는 로봇의 270도 방향에 표시되어 있다. 여기서 FAN 잡음은 로봇 내부에서 생성되는 잡음이고 외부에서 가해진 잡음은 아니다.
화자의 위치는 o 로 표시된 부분으로, 로봇으로부터 거리 2m 및 4m의 위치 그리고, 300도, 330도, 0도, 30도, 60도 방향에서 화자가 발성을 수행했다. 각 명당 30번씩 발성을 수행하여 총 540개의 실험 데이터를 대상으로 했다. 이와 같은 실험 환경에서 실험을 수행하여 종래의 장치와 본 발명의 장치의 성능을 비교한 표가 도 14에 도시되어 있다.
도 14는 도 13에 도시된 실험 환경 조건에서 본 발명의 멀티 채널 잡음 제거 방법과 종래 기술의 성능을 비교한 표이다.
도 14를 참조하면, FAN 잡음만 있는 상태와, FAN 잡음 상태에서 "댄싱 퀸"음악을 틀었을 때, FAN 잡음 상태에서 "돌아오라 소렌토로"음악을 틀었을 때의 각각 종래기술(단일 채널 음성향상기와 VAD)과 본 발명의 성능 비교를 나타낸다. 여기서 단일 채널 음성향상기로는 ETSI ES 202 212(2-stage Wiener Filter 사용)가 사용되었다.
#.CD는 올바른 검출의 수를 나타내고, DR(Detection Rate)은 총 발성중에서 올바른 검출의 수의 비율(# of correct detection/# of total utterance*100)을 나타낸다.
먼저, FAN 잡음만 있는 상태에서 단일채널 음성향상기 + VAD는 #.CD가 511이고, DR은 94.63%이고, 본 발명 +단일채널 음성향상기 +VAD는 #.CD가 540이고, DR은 100% 이다. 이로써 FAN 잡음만 있는 상태에서 본 발명에 따른 검출 성능은 종래 기술에 비해 5.37 % 개선되었음을 나타낸다.
다음, FAN 잡음 상태에서 "댄싱 퀸"을 틀었을 때 단일채널 음성향상기 + VAD는 #.CD가 335이고, DR은 51.86%이고, 본 발명 +단일채널 음성향상기 +VAD는 #.CD 가 489이고, DR은 90.56% 이다. 이로써 FAN 잡음 상태에서 "댄싱 퀸"을 틀었을 때 본 발명에 따른 검출 성능은 종래 기술에 비해 38.70 % 개선되었음을 나타낸다.
그리고, FAN 잡음 상태에서 "돌아오라 소렌토로"를 틀었을 때 단일채널 음성향상기 + VAD는 #.CD가 292이고, DR은 51.59%이고, 본 발명 +단일채널 음성향상기 +VAD는 #.CD가 460이고, DR은 85.19% 이다. 이로써 FAN 잡음 상태에서 "돌아오라 소렌토로"를 틀었을 때 본 발명에 따른 검출 성능은 종래 기술에 비해 33.60 % 개선되었음을 나타낸다.
이상 설명한 바와 같은 가중치 업데이트방법은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 상기 가중치 업데이트 방법을 구현하기 위한 기능적인(function) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본 질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.