Kako lahko ustvarim zvočni valovanje iz zvoka?
Takole lahko to storite z različnimi programskimi jeziki in knjižnicami:
1. Uporaba Pythona z librozo in matplotlib:
To je priljubljena in razmeroma preprosta metoda.
`` `Python
uvoz Librosa
uvoz librosa.display
uvozite matplotlib.pyplot kot plt
Naložite zvočno datoteko
file_path ='your_audio_file.wav' # Zamenjajte s svojo potjo datoteke
y, sr =librosa.load (datoteka_path)
Prikažite valovno obliko
plt.Figure (slsize =(14, 5))
librosa.display.waveShow (y, sr =sr)
plt.title ('valovna oblika')
PLT.XLABEL ('Čas (s)')
plt.ylabel ('amplituda')
plt.show ()
po želji shranite sliko:
plt.Savefig ('valform.png')
`` `
Ta koda naredi naslednje:
* Uvozi potrebne knjižnice: `Librosa` za obdelavo zvoka in` matplotlib 'za načrtovanje.
* naloži zvok: `librOsa.load ()` bere zvočno datoteko in vrne zvočne podatke (`y`) in hitrost vzorca (` sr`).
* prikazuje valovno obliko: `librbosa.display.waveShow ()` ustvari zaplet. Samodejno obravnava časovno skaliranje glede na hitrost vzorca.
2. Uporaba Pythona s Scipy in Matplotlib:
Ta pristop uporablja knjižnice nižje stopnje, kar vam daje več nadzora, vendar zahteva malo več kode:
`` `Python
uvoz scipy.io.wavfile
uvozite matplotlib.pyplot kot plt
uvozi numpy kot np
Naložite zvočno datoteko
hitrost, podatki =scipy.io.wavfile.read ('your_audio_file.wav')
Narišite valovno obliko
plt.Figure (slsize =(14, 5))
Plt.plot (podatki)
plt.title ('valovna oblika')
PLT.XLABEL ('vzorec')
plt.ylabel ('amplituda')
plt.show ()
za stereo zvok narišite vsak kanal ločeno
Če data.Dim ==2:
plt.Figure (slsize =(14, 5))
plt.plot (podatki [:, 0], nalepka ='Left Channel')
plt.plot (podatki [:, 1], nalepka ='desni kanal')
plt.legend ()
plt.title ('valovna oblika (stereo)')
PLT.XLABEL ('vzorec')
plt.ylabel ('amplituda')
plt.show ()
`` `
Ta koda:
* Za branje datoteke wav uporablja `scipy.io.wavfile`. Upoštevajte, da bo to naložilo surove zvočne podatke; Morda boste morali ravnati z različnimi podatkovnimi vrstami (npr. Pretvorba v plavajoče točke).
* Podatke nariše neposredno z `matplotlib.pyplot.plot ()`. Os X predstavlja vzorčno številko, ne čas (za razliko od primera Librosa).
Preden zaženete katero koli kodo:
* Namestite potrebne knjižnice: Morali boste namestiti `Librosa`,` matplotlib`, `scipy` in` numpy`. To lahko storite s pomočjo pip:`pip namestite librlosa matplotlib scipy numpy`
* Zamenjajte `'your_audio_file.wav'` z dejansko potjo do zvočne datoteke. Prepričajte se, da je datoteka datoteka WAV; Drugi formati bodo morda zahtevali dodatne knjižnice ali korake pretvorbe.
Ne pozabite, da te metode vizualizirajo Soundwave. Dejanski zvočni valovanje je fizični pojav sprememb zračnega tlaka; Vizualizacija je grafična predstavitev digitalnih podatkov, ki predstavljajo te različice.
- --热点Elektronske tehnologije Online