REDnet: Recursive Encoder and Decoder for Speech Separation under Unknown Number of Speakers and Variable Number of Microphones
REDnet снимает сразу два неудобных предположения многоканального разделения речи: заранее известное число говорящих и фиксированную геометрию микрофонов. Один рекурсивный кодировщик последовательно собирает каналы неизвестной решётки, а рекурсивный декодер отделяет по одному голосу, пока собственный детектор не решит, что активных источников больше нет. В результате одна сеть работает и как улучшитель одного голоса, и как разделитель нескольких голосов.
Метод. Каждый комплексный STFT-канал независимо переводится в признаки; затем общий RE-блок объединяет текущий микрофон с накопленным представлением, сохраняя линейную сложность по числу каналов. После общего TF-GridNet-подобного блока RD-часть выдаёт один голос за итерацию. Затвор 1-sigmoid(G) вычитает признаки уже отделённого источника из остатка, а отдельная потеря заставляет остаток соответствовать сумме ещё не выделенных голосов. Трёхпутевое внимание обменивается информацией между выделенными говорящими, частотами и временем. При обучении число говорящих известно и добавляется завершающая метка «источников больше нет»; при работе рекурсия останавливается при вероятности ниже 0,5.
Результаты. На WSJ0 с 2-5 говорящими RDnet получает SI-SDRi 24,7/24,5/22,3/20,8 дБ и точность подсчёта 99,9/99,7/99,0/99,2%. В самом трудном случае пяти голосов предыдущая SR-CorrNet-B даёт 19,9 дБ и 96,9%. На шумно-реверберационном WSJ0 улучшение для двух голосов повышается с 8,4 дБ у MUSE до 15,0 дБ, а NB-PESQ - с 2,45 до 3,66. Полный REDnet с неизвестным числом источников на одноканальном WHAMR!-R получает SDR 13,7 дБ и PESQ 2,34 против 9,7 дБ и 1,84 у FlexIO, которому число говорящих сообщается. На реальной части CHiME-4 DNSMOS достигает 3,15/3,10 для одного и пяти каналов.
Ограничения. Сеть непотоковая и вычислительно тяжёлая: даже одноканальный RDnet требует 177-313 GMAC/с в зависимости от числа источников. Во время обучения число говорящих всё же используется для разворачивания рекурсии, поэтому детектор остановки учится под полным надзором. При оценке лишние выходы оптимально отбираются, а недостающие дополняются почти нулевыми сигналами; такая процедура удобна для метрик, но мягче реального применения. Большая часть данных синтетическая, а авторы оставляют более полное использование пространственных признаков и ненадзорное разделение на будущее.
Фишка из статьи. Рекурсивный декодер становится выгоднее обычного конкурента именно по мере роста числа говорящих.
| Число голосов | SR-CorrNet-B SI-SDRi | RDnet SI-SDRi | SR-CorrNet-B подсчёт | RDnet подсчёт | RDnet GMAC/с |
|---|---|---|---|---|---|
| 2 | 24,8 дБ | 24,7 дБ | 100,0% | 99,9% | 177,4 |
| 3 | 24,4 дБ | 24,5 дБ | 99,7% | 99,7% | 222,5 |
| 4 | 21,9 дБ | 22,3 дБ | 97,7% | 99,0% | 267,6 |
| 5 | 19,9 дБ | 20,8 дБ | 96,9% | 99,2% | 312,7 |
Как это читать: на двух голосах новая схема почти равна предыдущей, но на пяти выигрывает 0,9 дБ и 2,3 процентного пункта подсчёта. При этом SR-CorrNet-B требует 409,1 GMAC/с, то есть рекурсивный вариант в этой точке дешевле примерно на четверть.