Найти - Пользователи
Полная версия: Контроль громкости исходящего звука
Начало » Python для новичков » Контроль громкости исходящего звука
1 2
CryptSpirit
У меня появилась необходимость написать программу для корректировки громкости исходящего звука (Делаю для того что бы не которые спец эффекты не будили сына. Ну и фильмы пошли эффекты громче и громче. Может это и хорошо в кинозале но не когда этот кинозал комната, а в ней спит маленький ребенок). И так задача контролировать исходящий звук (который уже идет на звуковую карту), а точнее его громкость. Дальше дело техники регулирование громкости под определенные рамки дабы не менять громкость каждый раз когда там что то завопит или выскочит.
Прошу отвечать по сабжу. Конкретно прошу помощь в линуксе, но хотелось бы универсальное решение ибо проблема “кроссплатформенная”:)

PS кто знает подобный софт поделитесь(просто интересно)

Собственно все заранее спасибо
pasaranax
Не понял, нужно решение на питоне? Если да, то from ossaudiodev import openmixer позволяет регулировать громкость.
CryptSpirit
pasaranax
Не понял, нужно решение на питоне?
Нет блин на Perl. А написал сюда просто для разнообразия.
Мне необходимо получать значение громкости звука идущего на звуковую карту.
pasaranax
Смутили фразы “Конкретно прошу помощь в линуксе” и “кто знает подобный софт”. Выше я написал конкретный класс для управления микшером.
CryptSpirit
Ну тут все просто. Я хочу попробовать сделать два решения на винде и линуксе. Но на данный момент могу ограничиться и решением в линуксе. Проблема может решаться с помощью функций плеера(я так думаю).Контроль это хорошо и за наводку спасибо но вопрос как мне узнавать показатель громкости звука который идет на звуковую карту. Может я не понятно объяснил? Вот допустим играет фильм в тотеме и мне необходимо знать сколько децибел звука будет воспроизводиться на колонках именно из этого фильма допустим каждую секунду.
pasaranax
В децибелах ты врядли узнаешь громкость, если тока у тебя не какие-нибудь умные usb-колонки. А вот в процентах легко:
from ossaudiodev import openmixer
mixer = openmixer()
left, right = mixer.get(0)
в left и right будет громкость с левого и правого динамиков.
sypper-pit
CryptSpirit
Децибелы можно узнать только снимая микрофоном , а если у тебя усилитель кк там определить…
Alex2ndr
2 CryptSpirit
Боюсь вы себе выбрали трудную задачу. Тем более, что в этой теме(звукоусиление) imho не очень разбираетесь. Вы ее приведите у решаемому варианту, потому, что в общей форме она почти не решаема.
Выскажу что знаю:
1.
CryptSpirit
Вот допустим играет фильм в тотеме и мне необходимо знать сколько децибел звука будет воспроизводиться на колонках именно из этого фильма допустим каждую секунду.
Белы - это характеристка колонки. Фактически это давление воздуха(т е логарифмическая шкала из обычных паскалей). Без микрофона ее действительно не снять. Можно только эмпирически рассчитать на основании замеров. Берем тестовый микрофон, проводим замеры и выясняем сколько дБ выдает ваша колонка при разных уровнях. Только учтите - характеристика не линейная.
2. Насчет получения звука до Звуковухи. Это недо копаться в том как реализована звуковая подсистема в линуксе. Вот какая-то такая статья - http://www.opensound.com/pguide/audio.html
Только это все на С. Питон наверно по быстродействию просто не потянет. Это же надо в реальном времени следить за выходящим звуком.
3. Самый простой вариант имхо - тупо использовать наушники, когда ребенок спит. Лично я так и делаю.

pasaranax
в left и right будет громкость с левого и правого динамиков.
Точнее уровень канала Master(точно такое же значение как показывает alsamixer). Но как мы помним это не единственный канал. и например у меня на буке канал Master никак не влияет на канал Headphones. Хотя это скорее исключение чем правило…
CryptSpirit
Да что вы все за мудрили. Надо жить проще мне нужно значение громкости того звука который на звуковуху идет (что из этого не ясно на кой черт мне микрофон). Понял уже что проблема не простая(гуглю параллельно с постом). Наушники это хорошо но разные бывают ситуации тем более что есть еще жена(хоть в наличии имеются двое наушников и два гнезда для них но это как то не то). Просто разное бывает а ходить постоянно в наушниках не выход. “получения звука до Звуковухи” да мне просто необходимо знать его громкость например каждую секунду. Примитив ну все же.
Alex2ndr
CryptSpirit
Надо жить проще мне нужно значение громкости того звука который на звуковуху идет
CryptSpirit
да мне просто необходимо знать его громкость например каждую секунду. Примитив ну все же.
Мне это напоминает известный фильм - “…а вот такая же но с перламутровыми пуговицами есть?…” :)
Я считаю параметр который вы просите является нештатным. Т е в API для например ALSA(или OSS) нет такого параметра. Для того чтобы его все-таки использовать надо сделать самую малость - написать его. МНЕ кажется что нужный вам звук(не уровень а сам звук) скрыт внутри ALSA(или иной звуковой подсистемы). И работа с ним в API не сделана. Вот вам alsa API для питона - http://pyalsaaudio.sourceforge.net/index.html . Я быстренько проглядел - ничего похожего не увидел. Смотрите подробнее.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB