Hogyan hozhatok létre hanghullámot az audioból?
Így lehet ezt megtenni különböző programozási nyelvek és könyvtárak felhasználásával:
1. Python használata librosa és matplotlib segítségével:
Ez egy népszerű és viszonylag egyértelmű módszer.
`` `Python
Librosa importálása
Import librosa.display
Importálja a matplotlib.pyplot -ot PLT -ként
Töltse be az audio fájlt
File_path ='your_audio_file.wav' # Cserélje ki a fájl elérési útját
y, sr =librosa.load (File_path)
jelenítse meg a hullámformát
PLT.figure (FigSize =(14, 5))
librosa.display.waveshow (y, sr =sr)
Plt.Title ('hullámforma')
PLT.XLABEL ('Idő (S)')
PLT.YLABEL ('amplitúdó')
pult.show ()
Opcionálisan az ábra mentése érdekében:
plt.savefig ('waveform.png')
`` `
Ez a kód a következőket teszi:
* importálja a szükséges könyvtárakat: `librosa` audio feldolgozáshoz és„ matplotlib ”a ábrázoláshoz.
* betölti a hangot: `librosa.load ()` leolvassa az audio fájlt, és visszaadja az audioadatokat (`y`) és a mintaarányt (` sr`).
* megjeleníti a hullámformát: `librosa.display.waveshow ()` létrehozza a telek. A mintaarány alapján automatikusan kezeli az idő skálázását.
2. Python használata Scipy és matplotlib segítségével:
Ez a megközelítés alacsonyabb szintű könyvtárakat használ, több irányítást biztosítva, de egy kicsit több kódot igényel:
`` `Python
import scipy.io.wavfile
Importálja a matplotlib.pyplot -ot PLT -ként
Import Numpy mint NP
Töltse be az audio fájlt
sebesség, data =scipy.io.wavfile.read ('your_audio_file.wav')
ábrázolja a hullámformát
PLT.figure (FigSize =(14, 5))
Plt.plot (adatok)
Plt.Title ('hullámforma')
PLT.XLABEL ('Minta')
PLT.YLABEL ('amplitúdó')
pult.show ()
sztereo audio esetén az egyes csatornákat külön -külön ábrázolja
Ha data.ndim ==2:
PLT.figure (FigSize =(14, 5))
Plt.plot (adatok [:, 0], címke ='bal csatorna')
Plt.plot (adatok [:, 1], címke ='jobb oldali csatorna')
Plt.Legend ()
Plt.Title ('hullámforma (sztereo)')
PLT.XLABEL ('Minta')
PLT.YLABEL ('amplitúdó')
pult.show ()
`` `
Ez a kód:
* A `scipy.io.wavfile" -et használja a WAV fájl elolvasásához. Vegye figyelembe, hogy ez betölti a nyers audio adatokat; Lehetséges, hogy kezelnie kell a különböző adattípusokat (például átalakítva a lebegőpontra).
* Az adatokat közvetlenül a `matplotlib.pyplot.plot ()` használatával ábrázolja. Az x tengely a mintaszámot, nem pedig az időt jelöli (ellentétben a librosa példával).
A kód futtatása előtt:
* Telepítse a szükséges könyvtárakat: Telepítenie kell a `librosa`,` matplotlib`, `scipy` és` numpy` -ot. Ezt megteheti a PIP használatával:`PIP install librosa matplotlib scipy numpy"
* Cserélje ki a `'your_audio_file.wav''" -et az audio fájl tényleges elérési útjára. Győződjön meg arról, hogy a fájl WAV fájl; Más formátumokhoz további könyvtárak vagy konverziós lépések szükségesek.
Ne feledje, hogy ezek a módszerek megjelenítik a hanghullámot. A tényleges hanghullám a légnyomás -variációk fizikai jelensége; A megjelenítés a digitális adatok grafikus ábrázolása, amely ábrázolja ezeket a variációkat.