Подтвердить что ты не робот

Звуковой сигнал чтения Python не вводится

Любая подсказка о том, что самый простой способ прочитать уровень звука системы?

Я планирую создать эквалайзер из коротких светодиодных полосок и подключить их к Arduino или RaspberryPi. Я видел много примеров, как сделать это с помощью ввода, микрофона или такого, но не так много с общим выходом. На данный момент я не забочусь о конкретной программе или общесистемной, я счастлив, когда на самом деле получаю показания. Любые рекомендации приветствуются.

- EDIT -

на основе Как получить звук из микрофона в python и обработать его на лету? Я изменил PCM_CAPTURE на PCM_PLAYBACK, что приводит к тому, что python говорит, что чтение невозможно на выходе/воспроизведении.

Теперь я пытаюсь создать loopback-устройство, идея состоит в том, чтобы перевести воспроизведение обратно в отдельный захват и прочитать его, но пока не повезло, и я не знаю, насколько это чистым/чистым. Я не могу себе представить, что это путь.

4b9b3361

Ответ 1

Кто-то достиг именно этого, используя Python и PulseAudio, см. эту запись в блоге. Автор написал script, который опросил системный уровень пикового звука, чтобы подать его на VU-метр. Он также сделал источник доступным на Bitbucket, здесь.

Я тестировал его на Ubuntu, и он работает для меня (хотя только из командной строки, а не в интерактивной сессии Python). Некоторые дополнительные работы связаны с установкой ctypes PulseAudio обертки для взаимодействия с Python (ссылка в источнике) и, возможно, для установки SINK_NAME правильного значения в script.

То, что я собираю из блога PulseAudio, очень хорошо подходит для этой работы, но, возможно, есть лучшие способы.

Ответ 2

Почти любой звуковой микшер (программное обеспечение или аппаратное обеспечение) должен иметь возможность перенаправить звук на вход. Для Windows есть встроенный Stereo Mix, а для Linux есть несколько решений (я слышал хорошие вещи о PulseAudio, но я не могу засвидетельствовать себя - некоторые из шагов в этот учебник может помочь).

Таким образом, вы можете перенаправить его на Python - примеры чтения уровней микрофона, которые вы прочитали, должны затем работать так же хорошо.