Как получить уровень громкости (dB) системный Windows | Python

Discussion in 'Болталка' started by Matrix001, 4 Jan 2021.

  1. Matrix001

    Matrix001 Active Member

    Joined:
    18 Aug 2016
    Messages:
    262
    Likes Received:
    146
    Reputations:
    3
    Как можно получить текущий уровень в dB или процентах (например когда слушаю музыку) в python ?
     
  2. DartPhoenix

    DartPhoenix Elder - Старейшина

    Joined:
    15 Sep 2013
    Messages:
    1,107
    Likes Received:
    8,492
    Reputations:
    25
    Смотря какая ось... В каждой оси по разному.
     
  3. altblitz

    altblitz Elder - Старейшина

    Joined:
    5 Jun 2009
    Messages:
    3,691
    Likes Received:
    3,145
    Reputations:
    236
    Никак не получится.
    Уровень отдачи сигнала определяется колонками, от 80 до 92 dB по пасспорту.
    Измеряется специальным приборором на расстоянии 1 м от колонки.

    Но если хотеть, можно проверить АЧХ и THD звуковоспоизводящего тракта компа с прогой RMAA.

    [​IMG]

    [​IMG]
     
  4. Matrix001

    Matrix001 Active Member

    Joined:
    18 Aug 2016
    Messages:
    262
    Likes Received:
    146
    Reputations:
    3
    Ладно, зачем мне знать эти dB мне всего надо получить вот процент этой шкалы (что зеленая) то есть когда что-то воспроизводиться и какой уровень громкости в процентах хотябы
    [​IMG]
    Я получал этот уровень и перегонял в проценты в C# сс помощью какой-то dll-ки, и там было все просто, неужто в python-е не смогу получить этот уровень ???
     
  5. mankurt13

    mankurt13 Well-Known Member

    Joined:
    18 Oct 2019
    Messages:
    378
    Likes Received:
    1,538
    Reputations:
    3
    Гугли python dynamic wrapper. В петоне существуют прекрасные возможности для импорта виндовс апи (в отличие от ссаного vbs, которому надо устанавливать плагин), по-моему прямо из коробки.
     
  6. DartPhoenix

    DartPhoenix Elder - Старейшина

    Joined:
    15 Sep 2013
    Messages:
    1,107
    Likes Received:
    8,492
    Reputations:
    25
    Бррр. Почему не сможешь ? "volume level msdn"
     
  7. altblitz

    altblitz Elder - Старейшина

    Joined:
    5 Jun 2009
    Messages:
    3,691
    Likes Received:
    3,145
    Reputations:
    236
    И почему у виндузятников страдания везде и во всём?

    [​IMG]

    Выбирается уровень громкости звука 67%, что исключает искажения звука.

    [​IMG]

    И с USB Audio Device сигнал подаётся непосредственно на связку - усилитель Labtec и колонки Panasonic/Technics.

    Для Windows, есть профессиональная аудио программа, что откидывает ладоши со стола при игре басс-гитары.
    Но! Профессиональная и стоит ~200-300$.
     
  8. DartPhoenix

    DartPhoenix Elder - Старейшина

    Joined:
    15 Sep 2013
    Messages:
    1,107
    Likes Received:
    8,492
    Reputations:
    25
    Ой Блитц лучше не начинай. Ты в конфиг альсы когда в последний раз заглядывал ? :)
    Туда есле залезть - там же можно и охуеть, состариться, тронуться умом и дули начать паровозам крутить.
     
  9. Matrix001

    Matrix001 Active Member

    Joined:
    18 Aug 2016
    Messages:
    262
    Likes Received:
    146
    Reputations:
    3
    Я сам занимаюсь музыкой и пишу ее свожу и мастерю, есть студия, только вопрос один, это здесь причем ??? Мне интересно как получить данные зеленой так напишем шкалы, пусть и одного из каналов скажем левого не так важно, не буду же я с помощью PILLOW - а грабить изображение с экрана и специально перед этим подготовив dB meter ??? и вариант насчет копи пастить типо как у тебя на фото мне не подходит, у меня задержка милисекундна должна быть не больше.
     
  10. altblitz

    altblitz Elder - Старейшина

    Joined:
    5 Jun 2009
    Messages:
    3,691
    Likes Received:
    3,145
    Reputations:
    236
    Более того, узнал что есть скрипт для проверки bit-perfect звучания с alsa. Проверил - результат позитивный.
     
  11. Matrix001

    Matrix001 Active Member

    Joined:
    18 Aug 2016
    Messages:
    262
    Likes Received:
    146
    Reputations:
    3
    upload_2021-1-5_14-31-50.png
    Грубо говоря мне надо как-то получить уровень dB как например в Fl Studio на мастере это канал master - только получить такой-же что идет с системного микшера, вроде вы уже поняли
     
    alexzir likes this.
  12. DartPhoenix

    DartPhoenix Elder - Старейшина

    Joined:
    15 Sep 2013
    Messages:
    1,107
    Likes Received:
    8,492
    Reputations:
    25
    Вово. В Венде как настраивается звук ? Правильно. Тыцкнул крысой в две кнопки - есть звук. В Линухе же ты можешь выбрать альсу или пульс скажем. Потом надо залезть в конфиги, можно настроить поведение. Что будет если воткнуть наушники а что будет если их вытыкнуть. И далее по списку.

    Пользователи Венды и знать не знают что можно так настроить чтобы при втыкании наушников выключались колонки, включалась интимная атмосфера, закрывались шторки и автоматически вызывались проститутки.
    Только это надо еще ухитриться настроить иначе проститутки могут приехать в самый неподходящий момент
     
  13. Matrix001

    Matrix001 Active Member

    Joined:
    18 Aug 2016
    Messages:
    262
    Likes Received:
    146
    Reputations:
    3
    Linux-это Linux и pulseaudio - это pulseaudio, alsa- это alas но у меня Windows. Мне написали что я могу как-то воспользоваться этой библиотекой https://github.com/intxcc/pyaudio_portaudio
     
  14. mankurt13

    mankurt13 Well-Known Member

    Joined:
    18 Oct 2019
    Messages:
    378
    Likes Received:
    1,538
    Reputations:
    3
  15. DartPhoenix

    DartPhoenix Elder - Старейшина

    Joined:
    15 Sep 2013
    Messages:
    1,107
    Likes Received:
    8,492
    Reputations:
    25
    Ты можешь воспользоваться msdn или попробовать погуглить уже готовый кодес каким-то таким образом: "msdn get volume level python"

    UPD: не, хуйню какую-то нашел. Щас посмотрю :)
    О. Титаническими усилиями и при помощи духов предков за пару секунд нашлость такое

    https://stackoverflow.com/questions/49662850/how-do-i-get-the-system-output-volume-in-python
    Тоже Линух. Да блять !!! Что такое... :)
     
  16. Matrix001

    Matrix001 Active Member

    Joined:
    18 Aug 2016
    Messages:
    262
    Likes Received:
    146
    Reputations:
    3
    Азаза, ты сам видишь что там делается, как я уже выше писал, мне не надо посредством самого экрана что-то делать, а просто взять это значение из системы как-то. Для этого вообще есть библиотека pyautogui которой я пользуюсь но это точно не в тему !
     
  17. Matrix001

    Matrix001 Active Member

    Joined:
    18 Aug 2016
    Messages:
    262
    Likes Received:
    146
    Reputations:
    3
    Уже находил, не то, это опять (СНОВА) Linux и ALSA !!!
     
  18. DartPhoenix

    DartPhoenix Elder - Старейшина

    Joined:
    15 Sep 2013
    Messages:
    1,107
    Likes Received:
    8,492
    Reputations:
    25
    Спакойна ! Щас найдем. У меня Венда далеко - не могу сам протестить. Ну вот например. Вроде оно.


    Code:
    from ctypes import cast, POINTER
    from comtypes import CLSCTX_ALL
    from pycaw.pycaw import AudioUtilities, IAudioEndpointVolume
    import math
    # Get default audio device using PyCAW
    devices = AudioUtilities.GetSpeakers()
    interface = devices.Activate(
        IAudioEndpointVolume._iid_, CLSCTX_ALL, None)
    volume = cast(interface, POINTER(IAudioEndpointVolume))
    # Get current volume
    currentVolumeDb = volume.GetMasterVolumeLevel()
    volume.SetMasterVolumeLevel(currentVolumeDb - 6.0, None)
    # NOTE: -6.0 dB = half volume !
     
  19. DartPhoenix

    DartPhoenix Elder - Старейшина

    Joined:
    15 Sep 2013
    Messages:
    1,107
    Likes Received:
    8,492
    Reputations:
    25
  20. Matrix001

    Matrix001 Active Member

    Joined:
    18 Aug 2016
    Messages:
    262
    Likes Received:
    146
    Reputations:
    3
    Уже на stackowerflow-е находил мне советовали но и это не то потому что берет не зеленую шкалу а просто узнает текущий уровень громкости (то есть например я установил на 40 % громкости оно и показывает что это 40% )