Syventävä spektrogrammi-analyysi

Oppitunti 0003 · AI-musiikin tuotanto · ~15 min + ääniharjoitus

Ydinajatus: oppitunnissa 0002 opit tunnistamaan elementtejä. Nyt opit miksi ne näyttävät siltä — ja miten voit lukea äänestä paljon enemmän kuin "tämä on basso". Tämä on taito, joka erottaa sinut ihmisistä, jotka vain kuuntelevat.

1. Kolme ääntä, kolme sormenjälkeä

Alla on kolme synteettistä ääntä. Jokainen on rakennettu matemaattisesti tarkasti, jotta tiedämme tasalleen mitä spektrogrammissa pitäisi näkyä — ja voit sitten verrata sitä siihen, mitä kuulet.

1Puhdas siniaalto · 220 Hz

Matemaattinen muoto: y(t) = A · sin(2π · 220 · t) — vain yksi taajuus, ei mitään muuta.

Spektrogrammissa näkyy: yksi ohut vaakaviiva 220 Hz kohdalla, ei mitään muualla. Tämä on referenssi — jokainen muu ääni "vertaa itseään" tähän.

2Särökitara · square + tanh-clip

Matemaattinen muoto: square-aalto = perustaajuus 220 Hz + parittomat harmoniset (3×, 5×, 7×, 9×, 11×) pienenevin voimakkuuksin, sitten tanh()-funktio leikkaa huiput (särö).

Spektrogrammissa näkyy: useita vaakaviivoja 220, 660, 1100, 1540, 1980, 2420 Hz kohdilla — harmoninen sarja. Mitä enemmän säröä, sitä enemmän ylätaajuuksia ja sitä "tiheämpi" spektrogrammi.

3Symbaali · kohina + ylipäästö 6 kHz

Matemaattinen muoto: valkoista kohinaa (satunnaista, kaikkia taajuuksia), suodatettuna niin että vain yli 6 kHz pääsee läpi (ylipäästösuodin), eksponentiaalisesti vaimenee.

Spektrogrammissa näkyy: leveä vaalea alue ylhäällä, ei viivoja — kohina ei ole järjestäytynyttä. Vaimenee vasemmalta oikealle, koska isku tapahtuu 0.5s kohdalla.

2. Visuaalinen vertailu

Tässä kaikki kolme vierekkäin, jotta voit nähdä erot selvästi:

Kolme ääntä vertailussa
TyyppiSpektrogrammi näyttääSyy
Puhdas siniaaltoYksi kapea viivaVain yksi taajuuskomponentti
SärökitaraUseita viivoja harmonisestiSquare-aalto = harmoninen sarja
SymbaaliLeveä vaalea alue ylhäälläSuodatettu kohina, ei taajuusrakennetta

3. Lineaarinen vai mel-spektrogrammi?

Toinen kysymys johon törmäät: miksi AI-musiikkimallit (varsinkaan diffusion-pohjaiset kuten Stable Audio) käyttävät usein mel-spektrogrammia tavallisen sijaan?

Vastaus on ihmisen kuuloaisti. Mel-asteikko on suunniteltu matkimaan sitä, miten korva erottaa taajuuksia:

Mel-spektrogrammi skaalaa taajuusakselin tämän mukaan: matalilla taajuuksilla on enemmän "tarkkuutta" (enemmän kanavia), korkeilla vähemmän. Tuloksena:

Mel-spektrogrammi vs lineaarinen

Mitä tämä tarkoittaa: mel-versiossa särökitaran harmoniset erottuvat alemmilla taajuuksilla paljon paremmin kuin lineaarisessa. Ihmiskorva kuulee ne eri tavalla — mel-spektrogrammi näyttää mitä korva oikeasti "kuulee".

4. Miksi tämä on kullanarvoinen taito AI-musiikissa

Kun kuuntelet AI-musiikkia ja jokin kuulostaa ohuelta, tukkoiselta tai lasimaiselta, mel-spektrogrammi kertoo miksi:

Pro-vinkki: ennen kuin julkaiset AI-kappaleen, avaa se Sonic Visualiser'issa tai Audacityssa ja katso mel-spektrogrammia. Etsi "mustia aukkoja" (alueita joissa ei ole energiaa lainkaan) — ne ovat usein merkki siitä, että malli ei ole tuottanut tasapainoista lopputulosta.

5. Harjoitus

Valitse jokin seuraavista ja raportoi tulokset:

  1. Avaa mikä tahansa oma kappaleesi Sonic Visualiser'issa (asenna jos ei ole) → katso mel-spektrogrammia → tunnista kolme aluetta: matalat (basso), keski (melodia/laulu), korkeat (symbaalit/ilma)
  2. Generoi Suno-kappale → avaa samaan työkaluun → vertaa: onko AI-musiikin spektrogrammi "täyteläisempi" vai "ohuempi" kuin oman kappaleesi?
  3. Lataa kolme esimerkkiääntä yllä → piirrä itse librosalla Pythonissa:
    python3 -c "
    import librosa, librosa.display, matplotlib.pyplot as plt
    y, sr = librosa.load('reference/sound-guitar.wav')
    mel = librosa.feature.melspectrogram(y=y, sr=sr, n_mels=128)
    librosa.display.specshow(librosa.power_to_db(mel, ref=np.max), sr=sr, y_axis='mel', x_axis='time')
    plt.colorbar()
    plt.show()
    "
        

📚 Lisäresursseja tekniseen syventämiseen

Jos haluat mennä pintaa syvemmälle spektrogrammien ja signaalinkäsittelyn maailmaan, nämä ovat parhaat löytämäni lähteet.

Interaktiiviset työkalut

Kirjallisuus ja kurssit

Python-harjoittelua

Syventävä matematiikka

Suositus poluksi: jos sinulla on 2-3 tuntia, tee tämä järjestyksessä — (1) Chrome Music Lab Spectrogram -leikki, (2) Academo Spectrum Analyzer mikrofonilla, (3) Sonic Visualiser + oma kappaleesi, (4) librosa-tutorial Pythonissa. Neljä askelta, kukin noin 30 min, ja ymmärrät spektrogrammin loppuelämäksi.

Lähteet