Добавить в корзинуПозвонить
Найти в Дзене
Toxblh

🎙 Beamforming микрофона на Linux — работает

! Продолжаю заводить фичи из Windows, на ASUS UX3405MA есть кнопка «угол микрофона» — нажимаешь и переключается направление захвата звука. В Linux ну вы поняли :) Техничка: В UX3405MA стоит массив из двух цифровых микрофонов (DMIC) сверху крышки, где вебка (алелуя, догадались не слушать кулера!). Обрабатываются они через Intel SOF (Sound Open Firmware) — DSP. SOF содержит компонент TDFB (Time-Domain Fixed Beamformer) — он математически комбинирует сигналы обоих микрофонов и виртуально фокусирует захват в нужном направлении. Всего 13 углов от -90° до +90° с шагом 15°, но нам нужен просто 0° то есть прямо перед ним. Понять, есть ли фича у меня получилось так: amixer -D hw:sofhdadsp controls | grep -i tdfb Если видите Dmic0 Capture TDFB beam switch и Dmic0 Capture TDFB angle set enum — всё есть. Включить/выключить формирование луча: amixer -D hw:sofhdadsp sset "Dmic0 Capture TDFB beam switch" on ИЛИ off amixer -D hw:sofhdadsp sset "Dmic0 Capture TDFB angle set enum" "0" Эффект виден с

🎙 Beamforming микрофона на Linux — работает!

Продолжаю заводить фичи из Windows, на ASUS UX3405MA есть кнопка «угол микрофона» — нажимаешь и переключается направление захвата звука. В Linux ну вы поняли :)

Техничка: В UX3405MA стоит массив из двух цифровых микрофонов (DMIC) сверху крышки, где вебка (алелуя, догадались не слушать кулера!). Обрабатываются они через Intel SOF (Sound Open Firmware) — DSP. SOF содержит компонент TDFB (Time-Domain Fixed Beamformer) — он математически комбинирует сигналы обоих микрофонов и виртуально фокусирует захват в нужном направлении. Всего 13 углов от -90° до +90° с шагом 15°, но нам нужен просто 0° то есть прямо перед ним.

Понять, есть ли фича у меня получилось так:

amixer -D hw:sofhdadsp controls | grep -i tdfb

Если видите Dmic0 Capture TDFB beam switch и Dmic0 Capture TDFB angle set enum — всё есть.

Включить/выключить формирование луча:

amixer -D hw:sofhdadsp sset "Dmic0 Capture TDFB beam switch" on ИЛИ off

amixer -D hw:sofhdadsp sset "Dmic0 Capture TDFB angle set enum" "0"

Эффект виден сразу на визуализаторе звука (видео :)

Ещё нашёл встроенный компрессор микрофона там же!

amixer -D hw:sofhdadsp sset "Dmic0 Capture DRC switch" on ИЛИ off

Что ещё и "поднимает" звук со дна

Ну и для завершённости - лампочка на кнопка beamforming шлёт XF86Launch5 (это для Niri), а так в Gnome горячих кастом сделал. А вот LED нашёл банальным перебором в /sys/kernel/debug/asus-nb-wmi/ по dev_id пока лампочка не моргнула. Оказался 262171.

Итог — скрипт-тоглер: включает TDFB + DRC компрессию и лампочку по нажатию кнопки:

👉 Gist со скриптом

@toxblh