JES má základní podporu pro úpravu zvuku, ale můžete ji použít k provádění některých užitečných úkolů.

JES je program, který umožňuje programově upravovat obrázky, zvuky a videa. JES má mnoho vestavěných funkcí a nástrojů pro ladění, které vám pomohou naučit se jazyk Jython.

Při importu souboru pomocí JES můžete vizuálně prozkoumat jeho zvukové vlny pomocí samostatného okna. Můžete také manipulovat s hodnotami amplitudy těchto zvukových vln v určitých bodech. To vám může pomoci upravit zvukový soubor, abyste dosáhli různých efektů.

Jak změnit hlasitost zvukového klipu

Když vás vykreslit obrázek v JES, můžete přistupovat k jednotlivým pixelům, které obsahuje. Můžete dosáhnout jistých techniky zpracování obrazu úpravou hodnot červené, zelené a modré barvy pro každý pixel.

Podobně zvukový soubor obsahuje mnoho jednotlivých „vzorků“, což jsou malé kousky zvukových dat. Importovaný zvuk můžete upravit změnou hodnoty amplitudy u každého vzorku.

Kód použitý v tomto projektu je k dispozici zde úložiště GitHub pod licencí MIT.

instagram viewer
  1. Otevřete aplikaci JES v počítači.
  2. Vytvořte novou funkci nazvanou changeVolume(), která jako vstup převezme objem, na který chcete změnit:
    defchangeVolume(objem):
  3. Uvnitř funkce otevřete výzvu a požádejte uživatele, aby vybral platný zvukový soubor. Přestože JES není kompatibilní se soubory mp3, stále můžete importovat soubory WAV. Přidejte nějaké ověření, abyste se ujistili, že je soubor kompatibilní:
    soubor = pickAFile() 

    -li soubor != Žádnýa soubor.endswith(".wav"):
    # Kód pro platný soubor
    jiný:
    tisk("Vybrán neplatný soubor. Vyberte prosím platný soubor WAV.")

  4. Pokud je vybraný soubor platný, vytvořte z něj zvukový objekt:
    zvuk = makeSound (soubor)
  5. Projděte každý vzorek zvuku:
    pro i v rozsah(0, getLength (zvuk)):
  6. Zkontrolujte, zda uživatel prošel nahoru do funkce pro zvýšení hlasitosti. Pokud ano, získejte ukázkovou hodnotu tohoto indexu pomocí vestavěné funkce getSampleValueAt(). Zvyšte hlasitost zdvojnásobením amplitudy a pomocí setSampleValueAt() nastavte novou hodnotu:
    -li objem == 'nahoru':
    sampleVal = getSampleValueAt (zvuk, i)
    setSampleValueAt (zvuk, i, sampleVal * 2)
  7. Zkontrolujte, zda uživatel prošel dolů do funkce pro zmírnění hlasitosti. Pokud ano, získejte hodnotu vzorku na tomto indexu a místo toho ji vydělte 2, abyste snížili amplitudu:
    -li objem == 'dolů':
    sampleVal = getSampleValueAt (zvuk, i)
    setSampleValueAt (zvuk, i, sampleVal / 2)
  8. Pomocí funkce explore() otevřete okno průzkumníka pro zvuk:
    prozkoumat (zvuk)
  9. Klikněte na Načíst program tlačítko, umístěné mezi programovací oblastí a příkazovým řádkem. Pokud budete vyzváni, uložte soubor:
  10. Spusťte funkci changeVolume() na příkazovém řádku a předejte funkci „nahoru“ jako argument:
    changeVolume("nahoru")
  11. Pomocí okna Průzkumník souborů přejděte na platný zvukový soubor:
  12. Klikněte na Přehrát celý zvuk pomocí nového okna:
  13. V příkazovém řádku spusťte znovu changeVolume() s hodnotou "down" jako argument a vyberte soubor:
    changeVolume("dolů")
  14. V okně průzkumníka uvidíte, že zvukové vlny jsou menší. Klikněte na Přehrát celý zvuk pomocí nového okna:

Jak převrátit zvukový klip

Zvuk můžete obrátit vytvořením nového prázdného zvuku a zkopírováním každého vzorku původního zvuku do nového zvuku v opačném pořadí.

  1. V nové funkci vyzve uživatele, aby vybral soubor WAV a zkontroloval, zda je soubor platný:
    defreverzní zvuk():
    soubor = pickAFile()

    -li soubor != Žádnýa soubor.endswith(".wav"):
    # Kód pro platný soubor
    jiný:
    tisk("Vybrán neplatný soubor. Vyberte prosím platný soubor WAV.")

  2. Vytvořte nový zvukový objekt z vybraného souboru:
    zvuk = makeSound (soubor) 
  3. Pomocí vestavěné funkce makeEmptySound() vytvořte nový prázdný zvukový objekt. Ten se bude skládat ze stejného počtu vzorků jako původní zvuk. Hodnota amplitudy pro každý vzorek bude 0:
    newReversedSound = makeEmptySound (getLength (zvuk))
  4. Projděte každý vzorek nového prázdného zvukového objektu:
    pro i v rozsah(0, getLength (newReversedSound)):
  5. Pro každý vzorek v tomto bodě získáte vzorek na opačném konci zvuku. Pokud je například délka vzorku 100 a aktuální index je 0, získá se hodnota vzorku na indexu 99. Podobně, pokud je aktuální index 3, získá vzorová hodnota na indexu 96:
    sampleVal = getSampleValueAt (zvuk, getLength (zvuk) - 1 - i)
  6. Zkopírujte hodnotu vzorku z druhého konce zvuku do aktuálního indexu nového zvuku:
    setSampleValueAt (newReversedSound, i, sampleVal)
  7. Prozkoumejte nový obrácený zvuk. Můžete také prozkoumat původní zvuk pro účely srovnání:
    prozkoumat (zvuk)
    prozkoumat (newReversedSound)
  8. Klikněte na Načíst program tlačítko, umístěné mezi programovací oblastí a příkazovým řádkem. Pokud budete vyzváni, uložte soubor.
  9. Spusťte funkci pomocí příkazového řádku:
    reverzní zvuk()
  10. Prohlédněte si původní zvuk a obrácený zvuk pomocí oken průzkumníka. Klikněte na Přehrát celý zvuk tlačítko pro poslech rozdílů:

Jak spojit dva zvukové klipy dohromady

Chcete-li spojit dva zvukové klipy, můžete požádat uživatele, aby vybral dva samostatné soubory WAV. Zkopírujte každý vzorek obou zvuků do nového zvukového objektu.

  1. Vytvořte novou funkci s názvem joinSounds():
    defjoinSounds():
  2. Pomocí funkce pickAFile() vyzvěte uživatele, aby vybral první soubor. Pokud je neplatný, vytiskněte chybovou zprávu:
    soubor1 = pickAFile()

    -li soubor1 == Žádnýnebone soubor1.endswith(".wav"):
    tisk("Vybrán neplatný soubor. Vyberte prosím platný soubor WAV.")

  3. Pomocí funkce pickAFile() znovu požádejte uživatele o druhý platný zvukový soubor:
    soubor2 = pickAFile() 

    -li soubor2 == Žádnýnebone soubor2.endswith(".wav"):
    tisk("Vybrán neplatný soubor. Vyberte prosím platný soubor WAV.")

  4. Vytvořte dva zvukové objekty ze dvou vybraných zvukových souborů:
    zvuk1 = makeSound (soubor1) 
    zvuk2 = makeSound (soubor2)
  5. Sečtěte délky dvou zvuků a vypočítejte délku nového spojeného zvuku. Vytvořte nový prázdný zvukový objekt pomocí délky:
    newSoundLength = getLength (zvuk1) + getLength (zvuk2)
    joinSound = makeEmptySound (newSoundLength)
  6. Projděte každý vzorek prvního zvuku. Zkopírujte hodnotu vzorku u každého indexu do nového zvuku:
    pro i v rozsah(0, getLength (zvuk1)):
    sampleVal = getSampleValueAt (zvuk1, i)
    setSampleValueAt (joinedSound, i, sampleVal)
  7. Projděte každý vzorek druhého zvuku. Zkopírujte hodnotu vzorku u každého indexu do nového zvuku po prvním zvuku:
    pro i v rozsah(0, getLength (zvuk2)):
    sampleVal = getSampleValueAt (zvuk2, i)
    endOfFirstSound = getLength (zvuk1) - 1
    setSampleValueAt (joinedSound, endOfFirstSound + i, sampleVal)
  8. Prozkoumejte zvuk pomocí funkce explore():
    prozkoumat (připojeno ke zvuku)
  9. Klikněte na Načíst program tlačítko, umístěné mezi programovací oblastí a příkazovým řádkem. Pokud budete vyzváni, uložte soubor.
  10. Spusťte funkci pomocí příkazového řádku:
    joinSounds()
  11. Prohlédněte si spojený zvuk v novém okně a klikněte na Přehrát celý zvuk tlačítko pro poslech zvuku:

Import a úprava zvukových souborů pomocí JES

Nyní chápete, jak importovat zvukové soubory a upravovat je pomocí JES. JES nabízí mnoho dalších vestavěných funkcí, které vám umožní provádět ještě pokročilejší úpravy zvuku.

O dalších dostupných funkcích se můžete dozvědět více pomocí okna nápovědy JES.