JES-il on heli redigeerimise põhitugi, kuid saate seda kasutada kasulike ülesannete täitmiseks.
JES on programm, mis võimaldab teil pilte, helisid ja videoid programmiliselt muuta. JES-il on palju sisseehitatud funktsioone ja silumistööriistu, mis aitavad teil Jythoni keelt õppida.
Kui impordite faili JES-i abil, saate selle helilaineid visuaalselt uurida, kasutades selleks eraldi akent. Samuti saate teatud punktides manipuleerida nende helilainete amplituudiväärtustega. See võib aidata teil helifaili redigeerida, et saavutada erinevaid efekte.
Kuidas muuta heliklipi helitugevust
Kui sa renderdage pilt JES-is, pääsete juurde selles sisalduvatele üksikutele pikslitele. Saate saavutada teatud pilditöötlustehnikad redigeerides iga piksli punase, rohelise ja sinise värvi väärtusi.
Samamoodi sisaldab helifail palju üksikuid "näidiseid", mis on väikesed heliandmete killud. Imporditud heli saate redigeerida, muutes iga proovi amplituudi väärtust.
Selles projektis kasutatav kood on saadaval selles GitHubi repo MIT litsentsi alusel.
- Avage arvutis JES-rakendus.
- Looge uus funktsioon nimega changeVolume(), mis võtab sisendiks helitugevuse, mida soovite muuta:
defmuudaVolume(vol):
- Funktsiooni sees avage viip, et paluda kasutajal valida kehtiv helifail. Kuigi JES ei ühildu mp3-failidega, saate siiski WAV-faile importida. Faili ühilduvuses veendumiseks lisage kinnitust:
fail = pickAFile()
kui fail != Mitte ühtegija file.endswith(".wav"):
# Kehtiva faili kood
muidu:
print("Valitud fail. Valige kehtiv WAV-fail.") - Kui valitud fail on kehtiv, loo sellest heliobjekt:
heli = makeSound (fail)
- Sirvige läbi iga helinäidise:
jaoks i sisse vahemik(0, getLength (heli)):
- Kontrollige, kas kasutaja läbis üles funktsiooni helitugevuse suurendamiseks. Kui jah, hankige selle indeksi näidisväärtus, kasutades sisseehitatud funktsiooni getSampleValueAt(). Suurendage helitugevust, kahekordistades amplituudi, ja kasutage uue väärtuse määramiseks setSampleValueAt().
kui vol == 'üles':
sampleVal = getSampleValueAt (heli, i)
setSampleValueAt (heli, i, sampleVal * 2) - Kontrollige, kas kasutaja läbis alla funktsiooni, et muuta helitugevus pehmemaks. Kui jah, siis hankige selle indeksi näidisväärtus ja jagage see amplituudi vähendamiseks 2-ga:
kui vol == 'alla':
sampleVal = getSampleValueAt (heli, i)
setSampleValueAt (heli, i, sampleVal / 2) - Kasutage heli uurija akna avamiseks funktsiooni explore().
uurima (heli)
- Klõpsake nuppu Laadi programm nupp, mis asub programmeerimisala ja käsurea vahel. Kui küsitakse, salvestage fail:
- Käivitage käsureal funktsioon changeVolume(), edastades funktsiooni argumendina "üles":
muudaVolume("üles")
- Liikuge failiuurija aknas kehtiva helifaili juurde:
- Klõpsake nuppu Esita kogu heli nuppu kasutades uut akent:
- Käivitage käsureal uuesti changeVolume() argumendina väärtusega "down" ja valige fail:
changeVolume("alla")
- Uurija aknas näete, et helilained on väiksemad. Klõpsake nuppu Esita kogu heli nuppu kasutades uut akent:
Kuidas heliklippi ümber pöörata
Saate heli ümber pöörata, luues uue tühja heli ja kopeerides iga algse heli näidise uude helisse vastupidises järjekorras.
- Uues funktsioonis paluge kasutajal valida WAV-fail ja kontrollida, kas fail on kehtiv:
defvastupidine heli():
fail = pickAFile()kui fail != Mitte ühtegija file.endswith(".wav"):
# Kehtiva faili kood
muidu:
print("Valitud fail. Valige kehtiv WAV-fail.") - Looge valitud failist uus heliobjekt:
heli = makeSound (fail)
- Kasutage uue tühja heliobjekti loomiseks sisseehitatud funktsiooni makeEmptySound(). See koosneb samast arvust näidistest kui algne heli. Iga proovi amplituudi väärtus on 0:
newReversedSound = makeEmptySound (getLength (heli))
- Sirvige läbi iga uue tühja heliobjekti näidise:
jaoks i sisse vahemik(0, getLength (newReversedSound)):
- Iga sellel hetkel oleva proovi jaoks hankige näidis heli teisest otsast. Näiteks kui valimi pikkus on 100 ja praegune indeks on 0, saab see valimi väärtuse indeksiga 99. Samamoodi, kui praegune indeks on 3, saab see valimi väärtuse indeksi 96 juures:
sampleVal = getSampleValueAt (heli, getLength (heli) - 1 - i)
- Kopeerige näidisväärtus heli teisest otsast uue heli praegusesse indeksisse:
setSampleValueAt (newReversedSound, i, sampleVal)
- Avastage uut ümberpööratud heli. Võrdluseks saate uurida ka algset heli:
uurima (heli)
uurige (uusReversedSound) - Klõpsake nuppu Laadi programm nupp, mis asub programmeerimisala ja käsurea vahel. Kui küsitakse, salvestage fail.
- Käivitage funktsioon käsurea abil:
reverseSound()
- Vaadake uurija akende abil algset heli ja vastupidist heli. Klõpsake nuppu Esita kogu heli nuppu, et kuulda erinevusi:
Kuidas ühendada kaks heliklippi koos
Kahe heliklipi ühendamiseks võite paluda kasutajal valida kaks eraldi WAV-faili. Kopeerige mõlema heli näidis uuele heliobjektile.
- Looge uus funktsioon nimega joinSounds():
defjoinSounds():
- Kasutage funktsiooni pickAFile(), et paluda kasutajal valida esimene fail. Kui see on kehtetu, printige veateade:
fail1 = valifail()
kui fail1 == Mitte ühtegivõimitte file1.endswith(".wav"):
print("Valitud fail. Valige kehtiv WAV-fail.") - Kasutage uuesti funktsiooni pickAFile(), et küsida kasutajalt teist kehtivat helifaili:
fail2 = valifail()
kui fail2 == Mitte ühtegivõimitte file2.endswith(".wav"):
print("Valitud fail. Valige kehtiv WAV-fail.") - Looge kahest valitud helifailist kaks heliobjekti:
sound1 = makeSound (fail1)
sound2 = makeSound (fail2) - Uue ühendatud heli pikkuse arvutamiseks lisage kahe heli pikkused kokku. Looge uus tühi heliobjekt, kasutades pikkust:
newSoundLength = getLength (heli1) + getLength (heli2)
joinedSound = makeEmptySound (newSoundLength) - Sirvige läbi iga esimese heli näidis. Kopeerige iga indeksi näidisväärtus uuele helile:
jaoks i sisse vahemik(0, getLength (heli1)):
sampleVal = getSampleValueAt (heli1, i)
setSampleValueAt (joinedSound, i, sampleVal) - Sirvige läbi iga teise heli näidise. Kopeerige iga indeksi näidisväärtus uude heli pärast esimest heli:
jaoks i sisse vahemik(0, getLength (heli2)):
sampleVal = getSampleValueAt (heli2, i)
endOfFirstSound = getLength (heli1) - 1
setSampleValueAt (joinedSound, endOfFirstSound + i, sampleVal) - Uurige heli funktsiooni explore() abil:
uurima (liitunudSound)
- Klõpsake nuppu Laadi programm nupp, mis asub programmeerimisala ja käsurea vahel. Kui küsitakse, salvestage fail.
- Käivitage funktsioon käsurea abil:
joinSounds()
- Vaadake ühendatud heli uues aknas ja klõpsake nuppu Esita kogu heli nuppu heli kuulamiseks:
Helifailide importimine ja redigeerimine JES-i abil
Nüüd saate aru, kuidas helifaile importida ja JES-i abil redigeerida. JES-il on nii palju muid sisseehitatud funktsioone, mis võimaldavad teil teha veelgi täpsemaid helitöötlusi.
Teiste saadaolevate funktsioonide kohta saate lisateavet JES-i abiaknast.