JES are suport de bază pentru editarea sunetului, dar îl puteți folosi pentru a efectua câteva sarcini utile.

JES este un program care vă permite să modificați imagini, sunetele și videoclipurile în mod programatic. JES are multe funcții încorporate și instrumente de depanare pentru a vă ajuta să învățați limbajul Jython.

Când importați un fișier folosind JES, puteți examina vizual undele sonore ale acestuia, folosind o fereastră separată. De asemenea, puteți manipula valorile amplitudinii acestor unde sonore în anumite puncte. Acest lucru vă poate ajuta să editați fișierul de sunet pentru a obține efecte diferite.

Cum să schimbați volumul unui clip audio

Cand tu redați o imagine în JES, puteți accesa pixelii individuali pe care îi conține. Puteți obține anumite tehnici de procesare a imaginilor prin editarea valorilor culorilor roșu, verde și albastru pentru fiecare pixel.

În mod similar, un fișier de sunet conține multe „eșantioane” individuale care sunt bucăți mici de date de sunet. Puteți edita un sunet importat schimbând valoarea amplitudinii la fiecare probă.

instagram viewer

Codul folosit în acest proiect este disponibil în acesta Repoziție GitHub sub licența MIT.

  1. Deschideți aplicația JES pe computer.
  2. Creați o nouă funcție numită changeVolume(), care preia volumul pe care doriți să îl modificați ca intrare:
    defschimba volumul(vol):
  3. În interiorul funcției, deschideți o solicitare pentru a cere utilizatorului să selecteze un fișier de sunet valid. Deși JES nu este compatibil cu fișierele mp3, puteți importa în continuare fișiere WAV. Adăugați ceva validare pentru a vă asigura că fișierul este compatibil:
    fișier = pickAFfile() 

    dacă fisier != Nici unulși file.endswith(".wav"):
    # Cod pentru fișierul valid
    altfel:
    imprimare(„Fișier nevalid selectat. Vă rugăm să alegeți un fișier WAV valid.")

  4. Dacă fișierul selectat este valid, creați un obiect sonor din el:
    sunet = faceSound (fișier)
  5. Buclă prin fiecare probă de sunet:
    pentru i în gamă(0, getLength (sunet)):
  6. Verificați dacă utilizatorul a trecut sus în funcția de a crește volumul mai tare. Dacă da, obțineți valoarea eșantionului la acel index folosind funcția încorporată getSampleValueAt(). Măriți volumul dublând amplitudinea și utilizați setSampleValueAt() pentru a seta noua valoare:
    dacă vol == 'sus':
    sampleVal = getSampleValueAt (sunet, i)
    setSampleValueAt (sound, i, sampleVal * 2)
  7. Verificați dacă utilizatorul a trecut jos în funcție de a face volumul mai moale. Dacă da, obțineți valoarea eșantionului la acel indice și împărțiți-o la 2, pentru a reduce amplitudinea:
    dacă vol == 'jos':
    sampleVal = getSampleValueAt (sunet, i)
    setSampleValueAt (sound, i, sampleVal / 2)
  8. Utilizați funcția explore() pentru a deschide fereastra de explorare pentru sunet:
    explora (sunet)
  9. Faceți clic pe Încărcare program butonul, situat între zona de programare și linia de comandă. Salvați fișierul dacă vi se solicită:
  10. Rulați funcția changeVolume() pe linia de comandă, trecând „up” ca argument funcției:
    modificăVolume(„în sus”)
  11. Utilizând fereastra de explorare a fișierelor, navigați la un fișier de sunet valid:
  12. Faceți clic pe Redați întregul sunet butonul folosind noua fereastră:
  13. În linia de comandă, rulați changeVolume() din nou cu valoarea „jos” ca argument și selectați un fișier:
    modifică volum(„jos”)
  14. În fereastra exploratorului, veți vedea că undele sonore sunt mai mici. Faceți clic pe Redați întregul sunet butonul folosind noua fereastră:

Cum să inversați un clip audio

Puteți inversa un sunet creând un nou sunet gol și copiend fiecare probă a sunetului original în noul sunet în ordine inversă.

  1. Într-o funcție nouă, solicitați utilizatorului să selecteze un fișier WAV și verificați dacă fișierul este valid:
    defsunet invers():
    fișier = pickAFfile()

    dacă fisier != Nici unulși file.endswith(".wav"):
    # Cod pentru fișierul valid
    altfel:
    imprimare(„Fișier nevalid selectat. Vă rugăm să alegeți un fișier WAV valid.")

  2. Creați un nou obiect de sunet din fișierul selectat:
    sunet = faceSound (fișier) 
  3. Utilizați funcția makeEmptySound() încorporată pentru a crea un nou obiect de sunet gol. Acesta va consta din același număr de mostre ca și sunetul original. Valoarea amplitudinii pentru fiecare probă va fi 0:
    newReversedSound = makeEmptySound (getLength (sunet))
  4. Căutați în buclă fiecare probă a noului obiect de sunet gol:
    pentru i în gamă(0, getLength (newReversedSound)):
  5. Pentru fiecare probă din acel punct, obțineți proba la capătul opus al sunetului. De exemplu, dacă lungimea eșantionului este 100, iar indicele curent este 0, aceasta va obține valoarea eșantionului la indicele 99. În mod similar, dacă indicele curent este 3, aceasta va obține valoarea eșantionului la indicele 96:
    sampleVal = getSampleValueAt (sunet, getLength (sunet) - 1 -i)
  6. Copiați valoarea eșantionului de la celălalt capăt al sunetului în indexul curent al noului sunet:
    setSampleValueAt (newReversedSound, i, sampleVal)
  7. Explorați noul sunet inversat. De asemenea, puteți explora sunetul original în scopuri de comparație:
    explora (sunet)
    explora (nouReversedSound)
  8. Faceți clic pe Încărcare program butonul, situat între zona de programare și linia de comandă. Salvați fișierul dacă vi se solicită.
  9. Rulați funcția folosind linia de comandă:
    reverseSound()
  10. Vizualizați sunetul original și sunetul inversat folosind ferestrele de explorare. Faceți clic pe Redați întregul sunet butonul pentru a auzi diferențele:

Cum să alăturați două clipuri audio împreună

Pentru a uni două clipuri audio împreună, puteți cere utilizatorului să selecteze două fișiere WAV separate. Copiați fiecare probă din ambele sunete pe noul obiect de sunet.

  1. Creați o nouă funcție numită joinSounds():
    defjoinSounds():
  2. Utilizați funcția pickAFile() pentru a solicita utilizatorului să selecteze primul fișier. Dacă este invalid, tipăriți un mesaj de eroare:
    fisier1 = pickAFfile()

    dacă fisier1 == Nici unulsaunu file1.endswith(".wav"):
    imprimare(„Fișier nevalid selectat. Vă rugăm să alegeți un fișier WAV valid.")

  3. Utilizați din nou funcția pickAFile() pentru a cere utilizatorului un al doilea fișier de sunet valid:
    fisier2 = pickAFfile() 

    dacă fisier2 == Nici unulsaunu file2.endswith(".wav"):
    imprimare(„Fișier nevalid selectat. Vă rugăm să alegeți un fișier WAV valid.")

  4. Creați două obiecte sonore din cele două fișiere de sunet selectate:
    sound1 = faceSound (fișier1) 
    sound2 = faceSound (fișier2)
  5. Adăugați lungimile celor două sunete împreună pentru a calcula lungimea noului sunet alăturat. Creați un nou obiect de sunet gol folosind lungimea:
    newSoundLength = getLength (sound1) + getLength (sound2)
    joinedSound = makeEmptySound (newSoundLength)
  6. Buclă prin fiecare probă a primului sunet. Copiați valoarea eșantionului de la fiecare index pe noul sunet:
    pentru i în gamă(0, getLength (sound1)):
    sampleVal = getSampleValueAt (sound1, i)
    setSampleValueAt (joinedSound, i, sampleVal)
  7. Buclă prin fiecare probă a celui de-al doilea sunet. Copiați valoarea eșantionului de la fiecare index pe noul sunet, după primul sunet:
    pentru i în gamă(0, getLength (sound2)):
    sampleVal = getSampleValueAt (sound2, i)
    endOfFirstSound = getLength (sound1) - 1
    setSampleValueAt (joinedSound, endOfFirstSound + i, sampleVal)
  8. Explorați sunetul folosind funcția explore():
    explora (joinedSound)
  9. Faceți clic pe Încărcare program butonul, situat între zona de programare și linia de comandă. Salvați fișierul dacă vi se solicită.
  10. Rulați funcția folosind linia de comandă:
    joinSounds()
  11. Vizualizați sunetul unit folosind noua fereastră și faceți clic pe Redați întregul sunet butonul pentru a auzi sunetul:

Importarea și editarea fișierelor de sunet folosind JES

Acum înțelegeți cum să importați fișiere de sunet și să le editați folosind JES. Există atât de multe alte funcții încorporate pe care JES le are de oferit, care vă vor permite să faceți o editare a sunetului și mai avansată.

Puteți afla mai multe despre celelalte funcții disponibile folosind fereastra de ajutor JES.