1. Kamerák
  2. Autóhifi és elektronika
  3. Otthoni audió
  4. Személyes audió
  5. Televíziók
  6. Okos otthon
  >> Elektronikus Technológia >  >> Személyes audió >> Digitális hangrögzítők

Hogyan hozhatok létre egy hullámformát az audio -ból?

A hullámforma -megjelenítés létrehozása az audio -ból több lépést foglal magában, és a bonyolultság a kívánt részletességtől és a kifinomultságtól függ. Itt van a folyamat bontása, az egyszerűtől a fejlett módszerektől kezdve:

1. Egyszerű módszer (könyvtárak használata):

Ez a megközelítés a legegyszerűbb, és nem igényel mélyreható audiofeldolgozási ismereteket. Kihasználja a könyvtárakat, amelyek kezelik az Ön számára nehéz emelést. Így tenné ezt a Python használatával a „librosa” és a „matplotlib” könyvtárakkal:

`` `Python

Librosa importálása

Import librosa.display

Importálja a matplotlib.pyplot -ot PLT -ként

Töltse be az audio fájlt

audio_file ="your_audio_file.wav" # Cserélje ki az audio fájl elérési útját

y, sr =librosa.load (audio_file)

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ő (k)")

PLT.YLABEL ("amplitúdó")

pult.show ()

`` `

A kód futtatása előtt:

* Telepítse a szükséges könyvtárakat: `PIP Install Librosa matplotlib"

* Cserélje ki a "" your_audio_file.wav "`: az audio fájl tényleges elérési útjával. A fájlnak WAV fájlnak kell lennie a legjobb kompatibilitás érdekében. A Librosa képes más formátumokat kezelni, de a WAV -t általában előnyben részesítik ehhez a feladathoz.

2. Közbenső módszer (kézi feldolgozás):

Ez nagyobb irányítást biztosít, de megköveteli az audio alapok megértését. Közvetlenül az audio adatokkal fog működni:

`` `Python

importhullám

Import Numpy mint NP

Importálja a matplotlib.pyplot -ot PLT -ként

Nyissa meg a WAV fájlt

a wave.open -rel ("your_audio_file.wav", "rb") wf:

num_channels =wf.getNchannels ()

Same_width =wf.getSampWidth ()

Frame_rate =wf.getFramerate ()

num_frames =wf.getNfames ()

Data =wf.ReadFames (NUM_FRAMES)

konvertálja az adatokat Numpy tömbre

data =np.frombuffer (adatok, dtype =np.int16) # Állítsa be a dtype -t, ha a minta_width különbözik

Ha sztereó, konvertáljon monó (átlagos csatornák)

-re

Ha num_channels ==2:

Data =np.mean (data.Reshape (-1, 2), tengely =1)

normalizálja az adatokat

Data =Data / NP.Max (NP.ABS (Data))

idővektor

idő =np.arange (0, num_frames) / Frame_rate

ábrázolja a hullámformát

PLT.figure (FigSize =(14, 5))

Plt.plot (idő, adatok)

Plt.Title ("hullámforma")

PLT.XLABEL ("Idő (k)")

PLT.YLABEL ("amplitúdó")

pult.show ()

`` `

Ez a kód:

* Megnyitja a WAV fájlt a „Wave” modul segítségével.

* Olvassa el a nyers audio adatokat.

* A könnyebb manipuláció érdekében átalakítja egy numpy tömbré.

* A sztereo audio -t úgy kezeli, hogy a csatornákat átlagolja a mono hullámforma létrehozásához.

* A jobb megjelenítés érdekében normalizálja az adatokat -1 és 1 közötti tartományra.

* Létrehoz egy idővektorot a ábrázoláshoz.

* A hullámformát ábrázolja a „matplotlib” használatával.

3. Fejlett módszerek (FFT, spektrogramok):

A részletesebb elemzéshez a Fast Fourier Transform (FFT) segítségével elemezheti az audio jel frekvenciakomponenseit, spektrogramok létrehozásához. Az olyan könyvtárak, mint a „librosa” és a „SCIPY”, hatékony FFT megvalósításokat biztosítanak. Ez túlmutat egy egyszerű magyarázat keretein, de magában foglalja az időtartomány jelének átalakítását a frekvenciatartományba a frekvenciák időbeli megjelenítéséhez. A Librosa `librosa.feature.mel_spectrogram` nagyszerű kiindulási pont ehhez.

A megfelelő módszer kiválasztása:

* Egyszerű módszer: A legjobb a gyors hullámforma vizualizációhoz anélkül, hogy mély audio megértésre lenne szükség.

* Közép módszer: További irányítást és betekintést nyújt a nyers audio adatokba.

* Fejlett módszer: Szükség van a részletes frekvenciaanalízishez és megjelenítéshez (spektrogramok).

Ne felejtse el telepíteni a szükséges könyvtárakat ezen kódok bármelyikének futtatása előtt. Válassza ki azt a módszert, amely a legjobban megfelel az Ön igényeinek és a megértés szintjének. A fenti példák a Python -ot használják, de hasonló funkcionalitás érhető el más programozási nyelveken, például a JavaScript (könyvtárakkal, például webes API -vel) vagy C ++ (olyan könyvtárak használata, mint az SDL).

  1. Hogyan használjuk a Sony ICD 500
  2. Mi a legjobb mikrofon, amelyet a Canon Rebel T6-hoz használhat a kiváló minőségű audio felvételhez?
  3. Hogyan készítsünk Your Voice hang elektronikus
  4. Hogy kiküszöböljék zaj és Hiss Digitális Recordings
  5. Hogyan rögzítheti a hangot, miközben a játékot PVR -vel rögzíti?