I. 서 론
공기오염, 수질오염 다음으로 심각한 환경오염으로 간주되는 소음에 의한 피해로 인해 난청 환자의 수가 기하급수적으로 늘고 있다. 미국의 경우 소음성 난청을 가진 직업병 유소견자의 수가 3천만 명으로 보고된다.[1] 우리나라의 경우 직업병 유소견자의 절반 이상이 소음으로 인해 발생하는 소음성 난청을 가지고 있다고 보고된다.[2] 소음에 장기간 노출되면서 서서히 발생하는 소음성 난청은 일단 발병된 후부터는 효과적인 치료 방법이 없고 회복 자체가 불가능하므로 음향 필터와 같은 물리적 보장구를 착용하는 방법의 예방을 통해서만 난청 발생 가능성을 줄여야 한다.[3] 소음성 난청 환자로써 재활을 위해 가장 간편한 방안이 보청기 사용이며, 근시나 원시를 가진 사람이 안경을 착용하는 것과 유사한 재활 도구이다. 그런데 보청기 사용자들이 보청기를 사용하면서 갖는 어려움으로 소음 문제가 대두된다. 조용한 환경에서 타인의 음성을 증폭하여 듣는 것까지는 좋은데, 시장이나 지하철, 노래방처럼 주변 환경이 시끄러운 장소에서는 어음과 더불어 소음도 함께 증폭되기 때문에 어음에 대한 변별력이 현저히 낮아지는 문제이다.[4] 본 연구에서 어음은 사람의 말소리를 의미하고, 소음은 어음 외 모든 외부 소리를 가리킨다.
주변 소음은 감쇠시키고 어음의 세기는 상대적으로 높여주는 여러 다른 연구들이 진행되어 왔는데, 대표적으로 Minimum Statistic(MS) 알고리즘은 단일 채널에서 통계적인 최소값을 기반으로 주변 소음의 PSD(Powe Spectral Density)를 추정하는 알고리즘이다.[5] 이 알고리즘의 단점은 시간 지연이 심해서 실시간으로 활용하기가 어렵다고 지적된다. Equalization and Cancellation(EC, 등가 소거) 이론과 Wiener 필터를 이용하여 환경 잡음을 제거하는 알고리즘이 제안되기도 했는데, 소음의 세기가 큰 환경에서는 그 성능이 현저히 떨어진다는 단점이 있다.[6] 두 개의 마이크로폰을 활용하여 주변 소음을 줄이는 알고리즘도 제안되었는데, 두 개 마이크로폰이 동기화되는 무선 신호이어야 하는 문제로 아직 보청기에 적용하지 못하였다.[7] 소음의 문제 해결을 위해 인공와우관을 활용하기도 하는데, 아직은 전산모사 연구 수준에 머물러 있다.[8] 소음 감쇠를 위한 여러 다른 알고리즘 중에서 본 논문에서는 달팽이관의 Masking(차폐) 효과를 활용한 소음 감소를 고려하였다.[9]
디지털 보청기는 일반 오디오 증폭기와 달리 작은 소리는 크게 증폭하는 반면에 큰 소리는 오히려 감쇠하여야 하는 스펙트럼 채널별 진폭 변화가 비선형적으로 수행되어야 하는 압축 기능이 가장 필수적인 기능이며, 이외에도 휘드백 소거 기능과 주변 소음 감쇠 기능이 추가된다. 이렇듯 보청기 기능들이 실시간으로 구현되기 위해서는 보청기를 구성하는 핵심 부품인 DSP IC 칩에서의 연산이 많아지게 되는데 지나친 연산량은 전류 소모를 높이는 실용화 문제점을 가진다. 그러므로 최적의 연산만으로도 가장 효과적인 난청 보정이 이뤄지도록 절충점을 찾아야 한다.[10,11]
본 논문에서는 FFT(Fast Fourier Transformation)에 의한 주파수 채널별 압축 방식에 스펙트럼 영역에서의 휘드백 소거와 주변 소음 감쇠 알고리즘을 펌웨어로 개발하여 실제로 디지털 보청기로 실현시킨 후, 이를 전기음향 검사에 의해 검증해 보였다. 본 논문의 목적은 디지털 보청기의 주요 기능인 비선형 압축과 별도로, 최적화되고 간편한 연산의 소음 감쇠 알고리즘을 DSP IC 칩으로 실시간 동작 처리하는 펌웨어를 개발하여 향후 소음 감쇠 알고리즘을 향상시키는 기반을 마련하는 데 있다.
II. FFT-iFFT 펌웨어 기반
본 논문에서 활용한 디지털 보청기 탑재용 DSP IC Ezairo 5910 칩은 dual-MAC 24-bit DSP core(Clock 1.28 MHz)를 가지며 20-bit A/D 변환기 및 1 MHz PDM (Pulse Density Modulation) 출력 기능을 자체 내장하여 출시된 상용화 칩이다.[12,13]
통상적으로 두 개의 소리가 입력될 때, 만약 한 쪽의 소리가 크면 자연히 다른 쪽의 소리는 차폐된다. 이러한 차폐 효과를 소음 차폐에 활용하기 위해서 한쪽은 음성 신호 그리고 다른 쪽은 소음 신호라 하자. 보청기로 입력되는 음성 신호에서 어느 부분이 듣고자 하는 음성이고 어느 부분이 듣기 싫은 소음인지 구분하기가 어렵기 때문에 시간 흐름에 따른 스펙트럼을 분석하면서 음성 구간과 소음 구간을 판단해야 한다. 간단한 방법으로 일련의 스펙트럼군으로부터 진폭 레벨이 사전에 정의한 문턱치보다 낮은 구간을 소음 구간으로, 그렇지 않은 구간을 음성+소음 구간으로 판단하는 접근이다. 즉, 대화음이 없는 구간은 대화음이 있는 구간보다 스펙트럼 진폭레벨이 낮다고 간주하는 것이다. 그러면 소음 구간일 동안에는 소음 스펙트럼을 별도로 저장하여 메모리에 보관하게 되는데 주변 소음은 수시로 변화하기 때문에 언제든지 대화음이 없다고 판단되는 소음구간에서의 소음 스펙트럼은 갱신되도록 한다.
이제 대화음이 입력되는 음성+소음 구간의 스펙트럼진폭으로부터 소음 스펙트럼의 진폭을 감산해 주어야 하는데 이때 차폐 효과를 적용한다. 즉, 소음에 비해 음성+소음이 스펙트럼 진폭이 10 dB 이상 클 경우에는 굳이 소음 스펙트럼을 고려하지 않아도 된다. 이에 비해 소음 진폭 스펙트럼이 음성+소음이 진폭 스펙트럼에 근접하거나 더 커질 경우에는 이에 대응하여 적절한 비율만큼 음성+소음 진폭 스펙트럼으로부터 소음 진폭 스펙트럼을 감산시켜주면 소음 차폐 결과를 가져올 수 있다. 본 연구에서는 스펙트럼을 64개로 분할하였으며 스펙트럼 진폭은 에 의해 계산한다. 여기서 xi는 FFT 영역에서의 실수값을, yi 는 허수값을 가리킨다.
그림 1은 디지털 보청기 신호처리 알고리즘의 전체적인 개요도를 보여준다. 마이크로폰으로 입력된 어음 신호는 12~30 dB 전치 증폭된 후, 20 비트 분해도의 A/D를 거쳐 양자화 되어 디지털 신호 처리 과정이 수행되고, 다시 PDM을 거쳐 리시버로 출력된다. 디지털 신호 과정으로써 Analysis 과정에서는 입력 시간 영역 신호는 FFT에 의해 분해되어 스펙트럼 영역으로 옮겨지고, Gain 과정에서는 각 스펙트럼 밴드 별로 적절한 증폭이 결정된 후, Synthesis 과정에서는 iFFT에 의해 다시 시간 영역으로 처리된 신호로 합성된 후 전력 증폭기를 통해 출력된다. FFT 처리 결과인 진폭과 위상 정보 중 위상은 보전하고 진폭 레벨만 변화시켰고 iFFT 과정에서 기 보전된 위상을 재활용하였다. A/D 변환을 위한 샘플링 주파수를 16 kHz로 하고, FFT 데이터 개수는 128개로 하여 FFT-iFFT 과정에서의 시간 지연은 8 msec가 걸리도록 하였다. iFFT 출력 데이터가 출력 메모리 버퍼로 이동되면, 19계수를 가진 보간 함수에 의해 평활화가 이뤄져서 출력음의 신호 왜곡을 최소화 되도록 칩이 설계, 구성되었다. FFT-iFFT 방법은 별도의 저역 통과 필터들과 채널별 다수의 대역 통과 필터들의 필요성을 없애는 결과를 가져오고, 작동시간(attack time)과 해제시간(release time)이 모두 0에 근접하게 함으로써 기존의 필터들을 사용하면서 발생하던 압축 신호의 pumping 현상을 근원적으로 해소하였다.[14]
|
그림 1.디지털 보청기 신호처리 알고리즘의 전체 개요 Fig. 1.Overall flowchart of digital hearing aid signal processing algorithm. |
III. 펌웨어 메모리 구조
본 연구에서 사용한 Ezairo 5910 DSP Hybrid는 어셈블러 언어로 펌웨어를 개발하도록 개발 툴을 제공한다. 제한된 CPU 속도와 레지스터 및 메모리 용량을 최적화하기 위해서는 칩의 구조와 펌웨어 및 휘팅 소프트웨어 프로그램을 통합적으로 구상하게 된다. 펌웨어 프로그램 코드는 EEPROM에 그림 2와 같은 메모리 주소에 저장되고 보청기 사용 중의 휘팅(Fitting) 파라미터 변경을 위한 데이터도 별도의 주소에 저장토록 하였다.
그림 3은 PC로부터 Ezairo 5910 DSP Hybrid로의 데이터 전송 루트를 보여준다.
PC 개발 툴에서 개발된 펌웨어는 EEPROM에 저장되며 DSP 칩 운영을 위해 OS와 메모리 및 레지스터를 공유하게 된다. 보청기 사용자들의 개별적인 휘팅 파라미터들의 정보를 담은 데이터들은 별도의 EEPROM Data Storage 공간에 저장되며 필요시, PC로 혹은 PC로부터 수정된 데이터들을 전송하거나 받게 된다. DSP 칩에 전원이 공급되면서, EEPROM에 저장된 펌웨어 이진코드가 RAM으로 전송되고 아울러 디폴트의 사용자 파라미터 데이터들이 RAM으로 전송된다. PC에서의 휘팅이란 사용자 파라미터 데이터들을 PC와 DSP 칩 사이에 전송되도록 하는 프로그램인데, 'READ'란 DSP 칩 EEPROM 내의 기 저장되었던 사용자 파라미터 데이터를 PC로 읽어 들이는 명령이고, ‘BURN’이란 반대로 PC에서 수정된 사용자 파라미터 데이터를 DSP 칩 EEPROM으로 전송하여 저장하라는 명령이다. ‘WRITE’란 ‘BURN’과 유사한데, PC에서 수정된 사용자 파라미터 데이터를 DSP 칩 RAM으로 전송하여 저장하라는 명령으로써, 수정된 사용자 파라미터를 임시로 사용하여 달라진 음질의 변화를 사용자가 체험해보도록 도와준다.
보청기용 DSP 칩이 다른 종류의 DSP 칩과 특별히 다른 점은 공급 전원이 1.2 Vdc의 단일 저전압이고, A/D와 PDM 변환을 위한 Codec을 자체 보유하고 있어 추가로 별로의 부품을 필요로 하지 않도록 구성된 점이다. D/A 변환은 디지털 신호를 아날로그로 변환하지 않고, PDM으로 디지털 출력하게 되는데, DSP 칩 출력은 곧바로 리시버에 연결되고 리시버의 저역 통과 필터 특성으로 인해 PDM 출력은 자연히 아날로그화 되어 소리로 고막에 들려진다.
IV. 소음 차폐 알고리즘
스펙트럼 영역에서 소음과 어음의 차이를 구분하기 위한 확률 통계 처리 방법은 계산 용량의 증가로 인해 보청기용 DSP 칩에서 실현하기란 아직까지 매우 어렵다. 간단한 접근으로는 진폭 스펙트럼의 합이 일정 레벨 이하일 경우에 이를 소음으로 간주하는 방법이다. 본 연구에서는 DSP 칩에 물리적인 토글 버튼 스위치를 부착한 뒤, 버튼을 누룰 때마다 외부 인터럽트로 간주하여 인터럽트 루틴을 처리하는 어셈블러 코드를 개발하였다. 그리고 예를 들어 첫 번째 토글 버큰을 누르면 외부 소음 스펙트럼 진폭 데이터 입력 모드로 들어가도록 하였다. 첫 번째 토글 버튼 모드에서는 보청기 사용자나 대화 상대자가 잠시 말을 중단하고 보청기 마이크로폰을 통해 주변 소음을 받아 들여 그에 대한 FFT 처리에 의해 소음에 대한 진폭 스펙트럼을 수집하게 된다. 8 msec 간격으로 연속해서 입력되는 소음 진폭 스펙트럼은 전후 스펙트럼의 합을 2로 나누면서 계속 업그레이드 시켜나갔다. 그리고 두 번째 토글 버튼을 누르면 첫 번째에서 두 번째 토글 버튼 사이의 시간동안 평균화된 소음 진폭 스펙트럼을 정해진 RAM 주소에 저장하였다. 첫 번째와 두 번째 토글 버튼을 누르는 시간은 보청기 사용자나 대화 상대자가 잠깐 대화를 중단하는 시간으로써 주변 소음을 수집하는 2초 내외 시간으로 하였다. 두 번째 토글 버튼 이후부터, 어음과 소음이 섞여서 마이크로폰으로 입력될 때, 진폭 스펙트럼을 실시간으로 산출한 뒤, 앞서 저장된 소음 진폭 스펙트럼과 현재 입력되어 산출된 소음+어음 진폭 스펙트럼 사이에서 다음과 같은 차폐 프로그래밍을 실시하였다.
그림 4에서 n(1:64)는 dB 단위의 소음 진폭 스펙트럼이고, s(1:64)는 현재(소음+어음) 진폭 스펙트럼이다. 만약, 현재 입력레벨이 소음레벨보다 10 dB 이상 크면, 어음 구간으로 판단하고 소음을 줄이지 않는다. 만약, 현재입력레벨이 소음레벨보다 10 dB 이상 크지 않으면, 소음레벨이 큰 구간으로 판단하여 소음을 줄이도록 한다. 만약, diff = 10 dB 이면, 어음레벨이 소음레벨보다 10 dB 만 큰 정도이므로 어음 레벨을 0 dB 줄인다. 만약, diff = 5 dB 이면, 어음레벨이 소음레벨보다 5 dB 만 큰 정도이므로, 어음 레벨을 5 dB 줄인다. 만약, diff = 0 dB 이면, 어음 레벨이 소음 레벨과 같으므로 어음 레벨을 10 dB 줄인다. 만약, diff = 5 dB 이면, 소음 레벨이 어음 레벨보다 5 dB 큰 정도이므로, 어음 레벨을 15 dB 줄인다.
|
그림 4.소음 차폐 알고리즘의 순서도 Fig. 4.Flowchart of Noise Masking Algorithm. |
V. 결 과
위 프로그램에서 10은 임의로 정한 수치이며 사용자에 따라 달리한다. 10을 0으로 수렴시킬수록 소음 레벨과 어음 레벨 사이의 마진이 줄어준다. 그림 5는 소음 차폐 알고리즘에 의한 소음 감쇠정도의 비교를 보여준다. 그림 5상은 원음 신호 파형을, 그림 5-1중상은 소음을, 그림 5중하는 원음과 소음이 합성된 신호 파형을, 그림 5하는 소음이 차폐된 결과음을 시간 영역에서 보여준다. 그림에서 보여주듯이 소음 차폐 효과에 의해 어음에 섞여 있던 소음이 현저히 감쇠되었음을 보여준다.
그림 6은 소음이 섞인 어음 신호에 대해 소음 차폐 효과를 시간에 따른 SNR의 변화로 비교해 보았다. 그림 6상의 청색선은 소음 차폐 이전의 SNR의 시간에 따른 변화이고 그림 6상의 적색선은 소음 차폐 이후의 SNR의 시간에 따른 변화를 보여준다. 그리고 그림 6하는 두 SNR의 차이를 dB 단위로 보여준다. 이 차이가 양(Positive)의 dB일수록 소음 차폐 효과가 큼을 나타낸다.
VI. 결 론
화자 (Speaker)로부터 발성된 음성을 2개 마이크로폰으로 수집하게 되면 1차적으로 시간 지연 및 중첩 효과에 의해 약 6 dB의 잡음 감쇄를 이루고[15], FFT와 iFFT 사이의 주파수 스펙트럼 대역에서 소음 감쇠 및 압축 그리고 휘드백 소거의 기능들을 차례로 계산한 뒤, 최종적으로 리시버를 통해 청력 보정된 음성을 듣게 된다.
본 연구에서는 1개의 마이크로폰만을 사용하였으며 본 연구 결과를 토대로 소음 차폐 디지털 보청기 제품화하는 연구를 주력할 계획이며, 현재까지 원음대비 약 2 dB 정도 SNR 비율이 향상되었음을 확인해 보았다. 본 연구에서는 디지털 토글 스위치를 사용하여 현재 주변 소음을 언제라도 수집하여 업그레이드할 수 있어 실용적으로 소음 차폐를 위한 소음 진폭 스펙트럼을 수집하도록 한 특징을 가진다. 소음 스펙트럼이 어음과 달리 매우 특이할 경우에는 3 번째 토글 스위칭으로 기 저장된 특이 소음 진폭 스펙트럼을 EEPROM으로부터 RAM으로 전송하여 사용하면 된다. 본 논문에서는 1개 마이크로폰만을 사용하였다. 추후 연구에서 2개 마이크로폰을 사용할 경우에는 2개 마이크로폰 사이의 거리가 중요 변수로 작용하게 된다. 보청기의 경우처럼 2개 마이크로폰 사이의 거리가 10mm 이하로 작아질 경우에 2개 마이크로폰 사용의 주요 목적인 지향성 구현보다는 SNR 비율을 6 dB 높이는 효과만을 가지게 된다. 그러면서 저주파수 대역에서 2개 마이크로폰 합성으로 인해 수신 감도가 낮아지는 결과가 나오게 된다. 본 연구에서 적용한 차폐 기법은 소음 스펙트럼의 레벨과 소음 & 어음 스펙트럼의 레벨을 주파수 밴드별로 독립적으로 비교하여 소음을 차폐 시키는 방법이므로, 2개 마이크로폰을 사용하면서 소음 차폐 기법을 사용하게 되면 전체적으로 8 dB의 소음 차폐 효과를 예측할 수 있다.
추후 추가적인 연구로 본 소음 차폐 알고리즘을 개선하여 정상 청력을 가진 일반인들이 휴대폰을 사용하면서 외부 소음을 줄이거나[16], 군대와 같은 특이 환경에서의 소음 절감으로 청력 손실을 줄이는 연구를 수행하고 자 한다.[17]









