왜 님이 별루 환영 받지 못한다고 생각하시는지 모르겠군요.
항상 열심히 다른 회원들의 질문에 좋은 답을 올리시던데...
selective attention에 대한 님의 설명은 아주 좋습니다.
다만 기사에난 과학원의 기술에 대해서 추가로 설명을 드리죠.
1995-6년 부터 ICA (independent component analysis)라는
새로운 신호 처리 기법이 주목 받기 시작했습니다. 혹시
PCA (principal component analysis)를 알고 계신 분들은
더 이해가 빠르실텐데. PCA라는 것은 주어진 다차원의 데이터를
선형 변환하여 각 요소간의 상관관계를 제거하는 분석기법
입니다. 이 경우 얻어진 데이터의 각 요소가 Gaussian 분포를
갖는다는 가정이 있는거죠. 흔히 행렬에서 말하는 일종의
대각화 같은 거죠. ICA란 이 보다 더 강한 가정을 하는 겁니다.
확률과정을 배우셨다면 "서로 독립인 변수들은 서로 상관관계가
없지만 상관관계가 없다고 서로 독립은 아니다"라는 것을 아실
겁니다. 즉, 상관관계보다 독립관계가 더 상위의 (?) 관계죠.
ICA에서는 미지의 원래 성분들이 non-Gaussian 분포를 갖는다고
가정을 하고 데이터 분석을 합니다. ICA에 의해 변환된 데이터의
각 성분은 최대한 독립적인 값들이 되는거죠.
자 그럼, ICA가 선택적 주의집중과 어떤 관계가 있는지 보죠.
일반적으로 각기 다른 음원 (각기 다른 사람의 목소리, 음악
소리 등)들은 확률적으로 서로 독립입니다. 따라서, 서로 다른
음원들이 섞인 경우에도 ICA를 이용하면 원래의 음원들로
분리할 수 있는거죠. 이 경우 대부분 3개의 음원이 섞이면
적어도 3 개이상의 마이크를 서로 다른 위치에 놓고 녹음을
해서 ICA를 적용해야 합니다. 특히, 실제 음향 환경은 일종의
다채널 필터들로 구성된다고 볼 수 있기 때문에 ICA도 단순히
행렬이 아니라 분리필터의 형태가 됩니다. 따라서, 다채널의
필터를 실시간에 적응하면서 분리하기 위해서는 엄청난 양의
계산이 필요하죠. n 채널의 경우 n*n개의 상당히 긴 필터가
필요합니다. 최근에는 2개의 마이크 만을 사용해서 여러 음원이
섞인 경우 순차적으로 각 신호를 뽑아내는 기술도 개발이
되었죠. 과학원에서 개발한 것도 이러한 기술을 적용한 것이라고
봅니다. 그리고, FPGA와 DSP 칩을 사용하여 보드를 구성한 것
같구요.
하지만 이 기술의 실제 적용에는 많은 어려움이 있습니다.
(1) 먼저, 마이크의 선택인데 저가의 컨덴서 마이크로는 성능이
나오지 않습니다. 다분히 지향적인 마이크를 사용해야 하죠.
이건 대부분 비쌉니다.
(2) 또한, 마이크의 위치도 굉장히 중요합니다. 눈치 채셨겠지만
마이크 두 개를 붙여 놓으면 거의 분리가 안됩니다. 그리고,
(3) 무엇보다도 실시간에 적응이 안됩니다.최소 1-2분이 걸리죠.
그 상태에서 계속 사용하면 되지만 음향환경이 계속 변하면
(예를 들면 차가 움직일 때) 거의 무용지물이 될 수도 있습니다.
(4) 그리고, 순차적으로 분리하는 경우 실시간에 출력을 얻기
어려우니까 음성인식 등에 바로 이용하기는 어렵죠.
(5) 또한, ICA의 가장 큰 특징은 분리된 결과 음성이 어느 채널에서
나올지 모른다는 점과 분리된 신호의 파형이나 주파수 정보가
원래 신호랑 비슷한 거지 그 scale은 엄청나게 다를 수 있다는
겁니다. 따라서, 분리된 신호가 내가 원하는 신호인지 아닌지를
기계가 알아서 판단하게 만들기가 쉽지 않겠죠.
(6) 그리고, 무엇보다도 음원의 갯수가 몇개인지 사전에 아는 경우가
드믄데 이에 대한 방법도 쉽지 않구요. 또한, 음원의 갯수가
계속 변하면 문제가 더 복잡해지죠 ?
이상의 문제점 외에도 많은 것들이 있을 수 있습니다. 앞으로
연구할게 많죠. 님들도 관심 가지시고 열심히 연구해 보세요.
--------------------- [원본 메세지] ---------------------
(뭐 별로 환영받지 못하는 사람이긴 하지만 저는 후후..)
생각하시듯 세부적인게 중요한게 아니라 "선택적 주의집중"(Selective
attention)이라고 해서 다음 단계의 패러다임으로 예측되어오던
전개방향의 성과입니다.
현재 음성인식에서 지배적인, 통계학을 주로 사용하는 wholistic한
signal processing 패러다임에 대해 selective attention은 연역적
정보를 통해 특정한 영역(음성이라면 특정시간)에 대한 분석의
resolution을 contol하여(threshhold라든가) 인식,판별 성능을 높이는
시도입니다.
이에 있어 아직 어떤 대표적 기술이 정립되어 있는것은 아니어서
연구자마다 방법이 서로 다릅니다. (물론 그와 같은 실질적 기술들
(pitch estimation, voiced/unvoiced.. classification)에 대한
고려가 기반이겠죠.)
하지만 이번은 단순히 노이즈의 영향을 줄이려는 것이고 그에 사용된
기술 자체는 완전히 새로운 것은 없으리라 예상합니다.
--------------------- [원본 메세지] ---------------------
답변 정말 고맙습니다.
Zeus님이 음성인식회사에 다니시는군요. 그럼 Zeus님에게
여쭤보도록 하겠습니다.
아참, Eric님이 audio codec firmware개발을 하고 계시는군요.
혹시 어제 중앙일보 IT관련기사중에 "잡음제거하는 칩"이라는
기사를 읽어보였나요?
여기에 쓰인 기술이 Robust pitch estimation,
Voiced/Unvoiced/Translation Classification 과 관련이 있나요?
아시는 바가 있으면 좀 알려주세요.
저는 음성관련된 회사에 있지 않아서.
저희 회사는 SoC 설계 위주거든요. 주로 무선 통신용 칩.
저는 거기서 audio codec firmware 개발을 맡고 있구요.
그래두, 제 생각엔 님 정도 실력이면 국내 음성인식 회사에
좋은 조건으로 입사하실 수 있을 것 같은데...
뭐, 굳이 논하자면 신호처리에 대한 개념이 있어야 하구,
음성인식 모델에 대한 이해가 있어야 하구,
C나 C++ 정도는 잘 다룰 수 있어야 겠죠 ?
embedded system이나 음성인식 chip회사라면
system software나 firmware를 작성할 수 있어야 할거구요.
많은 국내 회사가 외국에서 엔진 들여다가 수정해서
사용하는게 현실이니까 그걸 수정하고 또 그 위에
application 작성하는 정도면 되겠죠...
참고로 Zeus의 회사가 음성인식 관련 일을 하니까
Zeus에게 문의하는 것이 더 맞지 않을까 싶네요.
--------------------- [원본 메세지] ---------------------
Eric님,
혹시 국내 음성인식 회사에 연구원으로 들어가려면 어느정도까지의
개발 능력을 가져야하는지 혹시 아시아요?
아시는 바가 있으면 좀 말씀해 주세요...