Saya telah menulis sebuah program untuk melakukan FastICA pada file WAV stereo menggunakan kode pada Contoh FastICA Python MDP
Dengan contoh audio saya mendapatkan hasil yang sangat baik.
Kemudian saya mencoba melakukan rekaman dunia nyata menggunakan dua komputer mono mikrofon yang terhubung ke mikrofon stereo di pc saya dengan menghubungkan mic 1 ke saluran L dan mic 2 ke saluran R. Saya menguji dengan memainkan beberapa musik di latar belakang saat saya berbicara di ruangan yang sunyi.
Namun, menjalankan FastICA tidak memisahkan sinyal sama sekali. Mungkinkah kualitas mikrofon terlalu buruk? Apakah saya perlu melakukan apa saja pada file WAV yang direkam (16 bit, PCM yang ditandatangani, 44100Hz) sebelum menjalankan FastICA?
Anda dapat mengunduh rekaman di sini .
Seperti yang saya katakan lebih jauh ke bawah halaman:
Saya kira penundaan antar saluran ini adalah alasannya. Jika Anda memperhatikan kedua gelombang dengan seksama, Anda mungkin akan melihat bahwa beberapa suara terjadi lebih cepat di satu saluran daripada yang lain, dan sebaliknya.
Untuk membuktikan bahwa itu bukan kualitas mikrofon, Anda dapat mencoba merekam dua sinyal berbeda menggunakan satu mikrofon pada waktu yang berbeda, dan kemudian mencampurnya sehingga beberapa dari setiap sinyal berada di setiap saluran, dan lihat apakah ICA berfungsi dalam kasus itu. .
sumber
Ada algoritma lain yang menggunakan statistik urutan kedua: AMUSE.
Di sini Anda dapat menemukan implementasi dalam Python.
sumber