실제 레코딩에서 FastICA의 사운드 신호 분리 실패


12

Python MDP FastICA 예제 의 코드를 사용하여 스테레오 WAV 파일에서 FastICA를 수행하는 프로그램을 작성했습니다.

오디오 예제를 사용하면 매우 좋은 결과를 얻을 수 있습니다.

그런 다음 마이크 1을 L 채널에, 마이크 2를 R 채널에 연결하여 PC의 스테레오 마이크에 연결된 두 대의 컴퓨터 모노 마이크를 사용하여 실제 녹음을 시도합니다. 조용한 방에서 이야기하는 동안 백그라운드에서 음악을 재생하여 테스트합니다.

그러나 FastICA를 실행해도 신호가 전혀 분리되지 않습니다. 마이크의 품질이 너무 좋지 않을 수 있습니까? FastICA를 실행하기 전에 기록 된 WAV 파일 (16 비트, 서명 된 PCM, 44100Hz)에 대해 어떤 작업을 수행해야합니까?

여기 에서 레코딩을 다운로드 할 수 있습니다 .

답변:


11

원시 형태의 ICA는 상 동기화 된 관측 혼합물과 함께 사용하기에 적합합니다. 설명한대로 마이크를 사용하면 다른 포스터에서 지적한대로 위상 지연이 발생합니다. 그러나이 위상 지연은 큰 도움이 될 수 있습니다. 지연이있을 때 스테레오 분리를 처리하는 가장 잘 알려진 알고리즘은 DUET입니다. 링크가 끊어졌지만 찾고있는 참조는 여기> http://eleceng.ucd.ie/~srickard/bss.html입니다.

본 논문은
A. Jourjine, S. Rickard 및 O. Yilmaz, 분리 된 직교 신호의 블라인드 분리 : 2 개의 혼합물에서 N 개의 소스 디 믹싱, 음향, 음성 및 신호 처리에 관한 IEEE 회의 (ICASSP2000), 5 권, 페이지 2985-2988, 터키 이스탄불, 2000 년 6 월


2
질문 - 믹스가 하나 개 이상의 공간적으로 분리 된 마이크에서 오는 경우 ... 우리는 할 수있는 방법 적 위상 동시성을 가지고 ... 내가 여러 마이크의 예는 보편적으로 사용되지만 참조하는 모든 텍스트에서 위상 동시성 경우? 언급되지 않은 이유는 무엇입니까? 나는 단지 여기에서 이해하려고 노력하고 있습니다. 나는 ICA 장면에 익숙하지 않습니다.
— Spacey

@Mohammad : 다른 응용 프로그램에는 위상 동기가 있다고 생각되며 오디오 응용 프로그램을 사용하여 독자에게 더 친숙하게 만듭니다.
— endolith

1
@Mohammad 간격 마이크를 사용하면 하나의 소스에 대해 위상 동기를 가질 수 있습니다. 소스의 양쪽에 등거리로 배치 된 2 개의 마이크로 소스를 캡처한다고 상상해보십시오. 소스에서 마이크까지의 경로 길이는 각 경우에 동일하며 신호는 두 마이크 모두에서 위상으로 수신되지만 해당 소스에 대해서만 수신됩니다. 원치 않는 신호를 추가로 제거하기 위해 다른 공간 치수를 따라 등거리로 더 많은 마이크를 추가 할 수 있습니다. 일부 EEG 분석 기술이이 기능을 사용할 수 있습니다. 또한 각 마이크 사이의 위상 지연은 (파장으로 인해) 주파수의 함수일 것입니다
— Dan Barry

@ DanBarry 감사합니다 Dan-EEG에 대한 흥미로운 점. 센서를 소스에서 동일 거리에 놓으면 같은 지연이 발생한다는 것을 분명히 알 수 있습니다. :-) 내가 얻으려고했던 것은 제어 할 수없는 응용 프로그램 (스피커의 스피커)입니다. ICA는 이러한 경우에 작동한다고 알려져 있습니다. 그러나 99 %는 위상 동기가 없을 것입니다.이 경우 작동 알고리즘으로 선전된다면-위상 문제에 민감합니다. 여기에 무엇이 빠졌습니까? ... 감사합니다!
— Spacey

1
@ endolith 예 좋은 해결책 였고 작동합니다! 또한 2003 년에 비슷한 솔루션을 생각하고 비슷한 것을 발견하는 데 실망했지만 내 특허는 충분히 달랐습니다. 운 좋게도 2004 년에 실시간 소스 분리 알고리즘을 개발 한 최초의 사람이 될 수있었습니다. 원본 데모> audioresearchgroup.com/main.php?page=Demos 및 새로운 개선 된 기능을 비디오 데모에서 볼 수 있습니다. 여기> riffstation.com
— Dan Barry

6

페이지를 더 아래로 말하면 :

신호가 다른 센서 채널에서 다른 지연으로 발생할 때 ICA가 실제로 제대로 작동하지 않는 것으로 나타났습니다. 즉석 믹싱을 가정합니다 (신호가 모든 다른 레코딩에서 서로 완벽하게 동기화되어 있음). 각 소스는 각 마이크와 거리가 다르므로 연주자와 마이크가있는 실제 상황에서는 지연 이 발생합니다.

채널 간 지연이 원인이라고 생각합니다. 두 파도를 면밀히 살펴보면 한 채널에서 다른 채널보다 더 빨리 소리가 나고 나머지는 그 반대로 나타날 수 있습니다.

마이크의 품질이 아님을 증명하기 위해 한 번에 하나의 마이크를 사용하여 두 개의 다른 신호를 녹음 한 다음 각 신호의 일부가 각 채널에 있도록 믹싱하여 ICA가 작동하는지 확인할 수 있습니다. .


난 노력 했어. 제안한대로 지연 문제가되어야합니다. 별도의 기록을 혼합하여 FastICA는 거의 완벽한 결과를 생성합니다. 지연에 대처할 수있는 방법을 찾아야합니다 ....
— Jeremy

@ Jeeremy : 그렇다면 다른 알고리즘이 필요하다고 생각합니다.
— endolith December

지연에 대처할 수있는 bss algo를 알고 있습니까?
— Jeremy

실제로 손을 녹음하고 박수를 쳐 큰 소리를 내면 대담함이 지연되는 것을 알 수 없습니다.
— Jeremy

1
@endolith 당신은 옳을지도 모릅니다-새로운 정보-저는 각주를 확인했으며 분명히 내 책의 저자는 모든 신호가 서로 지연되지 않는다고 가정합니다. 즉, 믹싱 매트릭스는 단순히 진폭을 변경하는 것입니다. 뭐라고. 이제 더 혼란 스럽습니다. :-)
— Spacey

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.