Come posso creare un'onda sound dall'audio?
Ecco come puoi farlo usando diversi linguaggi di programmazione e librerie:
1. Usando Python con librosa e matplotlib:
Questo è un metodo popolare e relativamente semplice.
`` `Python
Importa librosa
Importa librosa.display
Importa matplotlib.pyplot come plt
Carica il file audio
file_path ='your_audio_file.wav' # Sostituisci con il percorso del file
Y, sr =librosa.load (file_path)
Visualizza la forma d'onda
plt.figure (figsize =(14, 5))
librosa.display.waveshow (y, sr =sr)
plt.title ('Wave Form')
plt.xlabel ('time (s)')
plt.ylabel ('ampiezza')
plt.show ()
facoltativamente, per salvare la figura:
plt.savefig ('waveform.png')
`` `
Questo codice fa quanto segue:
* Importa librerie necessarie: `librosa` per elaborazione audio e` matplotlib` per la trama.
* Carica l'audio: `librosa.load ()` legge il file audio e restituisce i dati audio (`y`) e la velocità di esempio (` sr`).
* Visualizza la forma d'onda: `librosa.display.waveshow ()` crea la trama. Gestisce automaticamente il ridimensionamento del tempo in base alla velocità del campione.
2. Usando Python con Scipy e Matplotlib:
Questo approccio utilizza librerie di livello inferiore, dandoti più controllo ma richiedendo un po 'più di codice:
`` `Python
Import Scipy.io.Wavfile
Importa matplotlib.pyplot come plt
Importa Numpy come NP
Carica il file audio
Tasso, data =Scipy.io.wavfile.Read ('your_audio_file.wav')
Traccia la forma d'onda
plt.figure (figsize =(14, 5))
plt.plot (dati)
plt.title ('Wave Form')
plt.xlabel ('campione')
plt.ylabel ('ampiezza')
plt.show ()
Per audio stereo, traccia ogni canale separatamente
Se data.ndim ==2:
plt.figure (figsize =(14, 5))
plt.plot (dati [:, 0], etichetta ='canale sinistro')
plt.plot (dati [:, 1], etichetta ='canale destro')
Plt.Legend ()
plt.title ('Wave Form (stereo)')
plt.xlabel ('campione')
plt.ylabel ('ampiezza')
plt.show ()
`` `
Questo codice:
* Usa `Scipy.io.wavfile` per leggere il file WAV. Si noti che questo caricherà i dati audio grezzi; Potrebbe essere necessario gestire diversi tipi di dati (ad esempio, convertirsi in punto mobile).
* Traccia i dati direttamente usando `matplotlib.pyplot.plot ()`. L'asse x rappresenta il numero di campionamento, non il tempo (a differenza dell'esempio librosa).
prima di eseguire uno dei due codice:
* Installa le librerie necessarie: Dovrai installare `librosa`,` matplotlib`, `Scipy` e` numpy`. Puoi farlo usando PIP:`Pip Installa librosa matplotlib Scipy numpy`
* Sostituisci `'your_audio_file.wav'` con il percorso effettivo del tuo file audio. Assicurati che il file sia un file WAV; Altri formati potrebbero richiedere librerie aggiuntive o passaggi di conversione.
Ricorda che questi metodi visualizzano Soundwave. L'onda sound reale è il fenomeno fisico delle variazioni della pressione dell'aria; La visualizzazione è una rappresentazione grafica dei dati digitali che rappresentano tali variazioni.