Linux Звук: как «прослушать» произвольный звук, воспроизводимый произвольным источником? - PullRequest
0 голосов
/ 10 июля 2020

Окей, привет друзья вундеркинды и другие люди ^^

Мне всегда было интересно, есть ли «хороший» (также известный как общепринятый) способ перехвата / перехвата потоков данных и действий на Linux, например, «Как написать фрагмент кода, который получает информацию о создании / модификации / удалении файла?», «Как написать фрагмент кода, который может регистрироваться в материалах, которые обрабатывают нажатия клавиш, движения мыши, сенсорный экран. касается? "," Как написать фрагмент кода, который будет получать информацию о темах CPU / GPU / памяти / диска / батареи? " и тому подобное.

Возможно, вы думаете: «Ну, читай долбаные документы, чувак!» сейчас, но на самом деле меня беспокоит тот чертов факт, что Linux должен быть открыт. По источникам, конечно. Но с точки зрения поведения это кусок 11-мерной грязи. Чего не хватает? Правильно: A (имеется в виду: один!) API.

Ну, вдох, выдох , давайте снова остынем.

Вернуться к топу c. Как я могу подключиться к аудиосистеме Linux ', чтобы слушать любой звук, который воспроизводится в данный момент, из любого источника, на любую цель? Конечно, это должно быть в реальном времени (настолько близко, насколько это возможно в нашей любимой ОС).

Чтобы получилось глупо (сейчас это не то, с чем нужно справляться, но это простой и понятный пример ), как я мог прослушать любой звук, воспроизводимый в системе, и позволить светодиодному индикатору sh на Raspberry мигать при каждом ударе, например, ниже 40 Гц, громче -6 дБ и короче 100 мс?

Просто чтобы добавить подсказку, почему все это может быть полезно для улучшения Linux системы ... Предположим, вы можете перехватить аудио из видеопотока, как я сказал. Даже не самое современное оборудование способно распознавать речь в текст и использовать внешний API (например, google или open *) для перевода. Таким образом, вы можете написать приложение, которое перехватывает звуковую часть mov ie, преобразует речь в текст и отображает на экране перевод, также называемый субтитрами, без написания совершенно нового проигрывателя.

В том же направлении давайте обработаем звук ядром. Поставщики оборудования могли перехватить маршрутизацию звука в Userland, чтобы оптимизировать звук в соответствии со своими платами, динамиками и наушниками без сложных модулей драйверов. Скажем, существует библиотека loudspeaker.sa, которая может быть преобразована в библиотеку mono_speakers.sa или в библиотекуphones.sa, собранную конфигурацией, а затем использованную библиотекой sound.sa, которая может использоваться как одна phone.sa или 7+ 1 mono_speakers.sa, который, в свою очередь, может использовать 1, 2, 3 loudspeaker.sa-s каждый, настроенный некоторой конфигурацией XML или JSON.

Извините, я сплю ...;)

...