Bonjour,
Je cherche à faire un petit logiciel dans le cadre d'un projet d'informatique. Mon logiciel est sensé afficher le spectre d'un fichier audio et quelques autres petites choses. Pour ce faire j'avais pensé à faire une interface graphique (ce qui est même demandé par le sujet). Tout marche (pour le moment j'ai le titre + un bouton pour sélectionner un fichier ainsi que un espace affichant le chemin du dit fichier. Cependant, lorsque j'essaie de rajouter un bouton lié à une fonction pour afficher le spectre du fichier précédemment choisi, le script refuse tout simplement de s'exécuter (la fenêtre ne s'affiche même pas) et je ne vois pas comment faire. Python me revoie un message d'erreur de syntaxe sous le .grid du dit bouton, or tout ce que j'ai écrit me semble juste (jusqu'à preuve du contraire).
Je vous envoie donc une copie de mon script en espérant que l'on puisse me venir en aide.
Merci d'avance et Bonne soirée
Ps: le code ne commence réellement que à partir de la configuration de la fenêtre principale
Code:from tkinter import * from tkinter import filedialog import urllib import scipy.io.wavfile import pydub import matplotlib.pyplot as plt import numpy as np import matplotlib as mpl nom=0 #ouvrir un fichier def GetFiles(): filename = filedialog.askopenfilename() selected_folder.config(text=str(filename)) nom=filename return(filename) #afficher le spectre audio def show_spectrum(filename): rate,audData=scipy.io.wavfile.read(str(filename)) print(rate) print(audData) #wav number of channels mono/stereo audData.shape[1] #if stereo grab both channels channel1=audData[:,0] #left channel2=audData[:,1] #right #create a time variable in seconds time = np.arange(0, float(audData.shape[0]), 1) / rate #plot amplitude (or loudness) over time mpl.rcParams['agg.path.chunksize'] = 10000 plt.plot(time, channel1, linewidth=0.01, alpha=1, color='#0000CC') plt.xlabel('Time (s)') plt.ylabel('Amplitude') plt.grid() plt.show() #affichage de la fenêtre + personalisation root=Tk() root.title("Mega Extreme Raptor FFT Turbo PLUS 2000") root.geometry("1280x720") #root.minsize(1280, 720) #root.maxsize(1280, 720) root.config(background='#F96714') #texte label_title=Label(root, text='Mega Extreme Raptor FFT Turbo PLUS 2000', font=('full pack 2025', 30), bg='#F96714', fg='#2A4B7C') label_title.grid(row=0, column=1, sticky='w') #boutton sélection de fichiers folder_s=Button(root, text='Import a folder (.wav only):', font=("Arial", 12), bg='grey', fg='black', command=GetFiles) folder_s.grid(row=1, column=0, sticky='w') #fenêtre montrant le fichier choisi selected_folder=Label(root, text='--selected folder--', font=("Arial", 12), bg='white', fg='black') selected_folder.grid(row=1, column=1, sticky='w') #Boutton pour afficher le spectre #spectre=Button(root, text='Audio spectrum', font=("Arial", 30), bg='grey', fg='black', command=show_spectrum(str(nom)) #spectre.grid(row=2, column=0, sticky=N) root.mainloop()
-----