Menggunakan filter pass band yang cocok dengan bandwidth pembicaraan akan membantu.
Jika Anda memiliki beberapa mikrofon (seperti yang terjadi pada ponsel), ada banyak metode seperti ICA yang dapat memanfaatkannya - tetapi pertanyaan Anda mengisyaratkan bahwa Anda hanya memiliki satu input.
Yang ingin Anda lakukan adalah "pemisahan sumber satu-mikrofon" (nama diambil dari kertas inovatif Roweis), juga disebut "sensor tunggal". Peringatan: ini masih jauh dari masalah yang diselesaikan, dan semua penelitian di bidang ini sangat baru, tanpa algoritma atau pendekatan menjadi "pemenang yang jelas" (tidak seperti model campuran gaussian + FST untuk pengenalan suara).
Kerangka kerja yang baik untuk melakukannya adalah melalui pemfilteran Wiener. Lihat Benaroya et al. "Pemisahan Sumber Sensor Tunggal berdasarkan filter Wiener dan beberapa jendela STFT" (Baca bagian 1 & 2, jangan repot-repot dengan hal multiresolusi kecuali Anda benar-benar membutuhkannya). Singkatnya, Anda menghitung STFT dari sinyal Anda, dan untuk setiap frame STFT, Anda mencoba untuk mendapatkan perkiraan spektrum suara dan spektrum kebisingan, dan Anda menggunakan pemfilteran Wiener untuk memulihkan perkiraan spektrum suara yang terbaik dari itu (ini mirip dengan "soft-masking" spektrum).
Masalah Anda sekarang adalah sebagai berikut: diberi bingkai STFT, perkirakan pidato dan komponen derau darinya. Pendekatan yang lebih sederhana yang dijelaskan dalam makalah oleh Benaroya adalah melalui Vector-quantization - mengambil beberapa jam pidato oleh banyak pembicara, menghitung STFT, menjalankan LBG di atasnya untuk menemukan codebook dari 512 atau 1024 frame ucapan yang khas; lakukan hal yang sama untuk kebisingan. Sekarang, dengan diberi kerangka sinyal input Anda, proyeksikan non-negatif (prosedur pembaruan gradien multiplikasi dijelaskan dalam makalah) ke basis bicara dan derau, dan Anda mendapatkan perkiraan bicara dan derau Anda. Jika Anda tidak ingin berurusan dengan proyeksi non-negatif, cukup gunakan tetangga terdekat. Ini benar-benar hal paling sederhana yang mungkin dapat bekerja di departemen "pemisahan sumber sensor tunggal".
Perhatikan bahwa sistem pengenalan ucapan memang dapat memberikan beberapa input untuk sistem pemisahan. Lakukan pengodean sandi pertama kali menggunakan sistem pengenalan ucapan Anda. Untuk setiap frame, ambil vektor MFCC rata-rata dari gaussian yang mendapat skor terbaik. Balikkan itu menjadi spektrum. Boom, Anda memiliki topeng yang memberi Anda lokasi spektral yang paling mungkin dari bit seperti-bicara, dan Anda dapat menggunakannya sebagai input untuk filter Wiener. Ini kedengarannya seperti melambaikan tangan, tetapi geistnya adalah bahwa untuk memisahkan sumber, Anda memerlukan model yang bagus untuk itu, dan sistem pengenalan ucapan yang diambil mundur adalah model generatif yang bagus untuk sinyal ucapan.