Уведомления

Группа в Telegram: @pythonsu

#1 Май 21, 2010 01:00:37

CryptSpirit
От:
Зарегистрирован: 2010-05-05
Сообщения: 88
Репутация: +  0  -
Профиль   Отправить e-mail  

Контроль громкости исходящего звука

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

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

Собственно все заранее спасибо



Офлайн

#2 Май 21, 2010 01:30:05

pasaranax
От:
Зарегистрирован: 2009-06-13
Сообщения: 574
Репутация: +  0  -
Профиль   Отправить e-mail  

Контроль громкости исходящего звука

Не понял, нужно решение на питоне? Если да, то from ossaudiodev import openmixer позволяет регулировать громкость.



Офлайн

#3 Май 21, 2010 01:39:04

CryptSpirit
От:
Зарегистрирован: 2010-05-05
Сообщения: 88
Репутация: +  0  -
Профиль   Отправить e-mail  

Контроль громкости исходящего звука

pasaranax
Не понял, нужно решение на питоне?
Нет блин на Perl. А написал сюда просто для разнообразия.
Мне необходимо получать значение громкости звука идущего на звуковую карту.



Офлайн

#4 Май 21, 2010 15:33:45

pasaranax
От:
Зарегистрирован: 2009-06-13
Сообщения: 574
Репутация: +  0  -
Профиль   Отправить e-mail  

Контроль громкости исходящего звука

Смутили фразы “Конкретно прошу помощь в линуксе” и “кто знает подобный софт”. Выше я написал конкретный класс для управления микшером.



Офлайн

#5 Май 22, 2010 03:00:01

CryptSpirit
От:
Зарегистрирован: 2010-05-05
Сообщения: 88
Репутация: +  0  -
Профиль   Отправить e-mail  

Контроль громкости исходящего звука

Ну тут все просто. Я хочу попробовать сделать два решения на винде и линуксе. Но на данный момент могу ограничиться и решением в линуксе. Проблема может решаться с помощью функций плеера(я так думаю).Контроль это хорошо и за наводку спасибо но вопрос как мне узнавать показатель громкости звука который идет на звуковую карту. Может я не понятно объяснил? Вот допустим играет фильм в тотеме и мне необходимо знать сколько децибел звука будет воспроизводиться на колонках именно из этого фильма допустим каждую секунду.



Офлайн

#6 Май 22, 2010 10:10:09

pasaranax
От:
Зарегистрирован: 2009-06-13
Сообщения: 574
Репутация: +  0  -
Профиль   Отправить e-mail  

Контроль громкости исходящего звука

В децибелах ты врядли узнаешь громкость, если тока у тебя не какие-нибудь умные usb-колонки. А вот в процентах легко:

from ossaudiodev import openmixer
mixer = openmixer()
left, right = mixer.get(0)
в left и right будет громкость с левого и правого динамиков.



Офлайн

#7 Май 24, 2010 15:10:06

sypper-pit
От: Ulan-Ude(msk)
Зарегистрирован: 2009-01-30
Сообщения: 1102
Репутация: +  6  -
Профиль   Отправить e-mail  

Контроль громкости исходящего звука

CryptSpirit
Децибелы можно узнать только снимая микрофоном , а если у тебя усилитель кк там определить…

Офлайн

#8 Май 24, 2010 21:38:05

Alex2ndr
От:
Зарегистрирован: 2009-12-26
Сообщения: 204
Репутация: +  0  -
Профиль   Отправить e-mail  

Контроль громкости исходящего звука

2 CryptSpirit
Боюсь вы себе выбрали трудную задачу. Тем более, что в этой теме(звукоусиление) imho не очень разбираетесь. Вы ее приведите у решаемому варианту, потому, что в общей форме она почти не решаема.
Выскажу что знаю:
1.

CryptSpirit
Вот допустим играет фильм в тотеме и мне необходимо знать сколько децибел звука будет воспроизводиться на колонках именно из этого фильма допустим каждую секунду.
Белы - это характеристка колонки. Фактически это давление воздуха(т е логарифмическая шкала из обычных паскалей). Без микрофона ее действительно не снять. Можно только эмпирически рассчитать на основании замеров. Берем тестовый микрофон, проводим замеры и выясняем сколько дБ выдает ваша колонка при разных уровнях. Только учтите - характеристика не линейная.
2. Насчет получения звука до Звуковухи. Это недо копаться в том как реализована звуковая подсистема в линуксе. Вот какая-то такая статья - http://www.opensound.com/pguide/audio.html
Только это все на С. Питон наверно по быстродействию просто не потянет. Это же надо в реальном времени следить за выходящим звуком.
3. Самый простой вариант имхо - тупо использовать наушники, когда ребенок спит. Лично я так и делаю.

pasaranax
в left и right будет громкость с левого и правого динамиков.
Точнее уровень канала Master(точно такое же значение как показывает alsamixer). Но как мы помним это не единственный канал. и например у меня на буке канал Master никак не влияет на канал Headphones. Хотя это скорее исключение чем правило…



Отредактировано (Май 24, 2010 21:42:56)

Офлайн

#9 Май 25, 2010 02:02:02

CryptSpirit
От:
Зарегистрирован: 2010-05-05
Сообщения: 88
Репутация: +  0  -
Профиль   Отправить e-mail  

Контроль громкости исходящего звука

Да что вы все за мудрили. Надо жить проще мне нужно значение громкости того звука который на звуковуху идет (что из этого не ясно на кой черт мне микрофон). Понял уже что проблема не простая(гуглю параллельно с постом). Наушники это хорошо но разные бывают ситуации тем более что есть еще жена(хоть в наличии имеются двое наушников и два гнезда для них но это как то не то). Просто разное бывает а ходить постоянно в наушниках не выход. “получения звука до Звуковухи” да мне просто необходимо знать его громкость например каждую секунду. Примитив ну все же.



Офлайн

#10 Май 25, 2010 20:21:49

Alex2ndr
От:
Зарегистрирован: 2009-12-26
Сообщения: 204
Репутация: +  0  -
Профиль   Отправить e-mail  

Контроль громкости исходящего звука

CryptSpirit
Надо жить проще мне нужно значение громкости того звука который на звуковуху идет
CryptSpirit
да мне просто необходимо знать его громкость например каждую секунду. Примитив ну все же.
Мне это напоминает известный фильм - “…а вот такая же но с перламутровыми пуговицами есть?…” :)
Я считаю параметр который вы просите является нештатным. Т е в API для например ALSA(или OSS) нет такого параметра. Для того чтобы его все-таки использовать надо сделать самую малость - написать его. МНЕ кажется что нужный вам звук(не уровень а сам звук) скрыт внутри ALSA(или иной звуковой подсистемы). И работа с ним в API не сделана. Вот вам alsa API для питона - http://pyalsaaudio.sourceforge.net/index.html . Я быстренько проглядел - ничего похожего не увидел. Смотрите подробнее.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version