Уровень голоса в Python

я хочу создать программу на Python, которая при повышения уровня голоса меняла бы картинку в Tkinter, но картинка не меняется.

Вот код:

import sounddevice as sd
import numpy as np
from tkinter import *
from PIL import Image, ImageTk

window = Tk()

speak = ImageTk.PhotoImage(Image.open("speak.png"))
normal = ImageTk.PhotoImage(Image.open("normal.png"))
speak_level = 30

def print_sound(indata, outdata, frames, time, status):
    volume_norm = np.linalg.norm(indata)*10
    if volume_norm >= speak_level:
        main_image.configure(image=speak)
        main_image.image = speak
    if volume_norm < speak_level:
        main_image.configure(image=normal)
        main_image.image = normal

main_image = Label(window, image=normal).pack()

window.mainloop()

with sd.Stream(callback=print_sound):
    sd.sleep(10000)

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