Как получить громкость звука захватывающий микрофоном, на python?

Помогите получить в децибелах громкость звука захватываемый микрофоном. На питоне. Я нашёл код, который работает, но он работает только на один микрофон, на другие просто выдаёт ошибку.

import pyaudio
import audioop
import math

def decb(micro:int):
    CHUNK = 1024
    FORMAT = pyaudio.paInt16
    CHANNELS = micro
    RATE = 44100
    RECORD_SECONDS = 2

    p = pyaudio.PyAudio()
    stream = p.open(format=FORMAT,
                    channels=CHANNELS,
                    rate=RATE,
                    input=True,
                    frames_per_buffer=CHUNK)

    while True:
        data = stream.read(CHUNK, 
                        exception_on_overflow=False)
        rms = audioop.rms(data, 2)
        decibel = 20 * math.log10(rms)
        print(decibel)

    stream.stop_stream()
    stream.close()
    p.terminate()
    
    
if __name__ == '__main__':
    decb(1) #Значение - это выбранный микрофон

Ответы (0 шт):