JES: llä on perustuki äänenmuokkaukseen, mutta voit käyttää sitä hyödyllisten tehtävien suorittamiseen.
JES on ohjelma, jonka avulla voit muokata kuvia, ääniä ja videoita ohjelmallisesti. JES: ssä on monia sisäänrakennettuja toimintoja ja virheenkorjaustyökaluja, jotka auttavat sinua oppimaan Jython-kielen.
Kun tuot tiedoston JES: llä, voit tarkastella sen ääniaaltoja visuaalisesti erillisen ikkunan avulla. Voit myös muokata näiden ääniaaltojen amplitudiarvoja tietyissä kohdissa. Tämä voi auttaa sinua muokkaamaan äänitiedostoa erilaisten tehosteiden aikaansaamiseksi.
Kuinka muuttaa äänileikkeen äänenvoimakkuutta
Kun sinä renderöi kuva JES: ssä, voit käyttää sen sisältämiä yksittäisiä pikseleitä. Voit saavuttaa tiettyjä kuvankäsittelytekniikat muokkaamalla kunkin pikselin punaista, vihreää ja sinistä väriarvoa.
Vastaavasti äänitiedosto sisältää useita yksittäisiä "näytteitä", jotka ovat pieniä äänidatan paloja. Voit muokata tuotua ääntä muuttamalla kunkin näytteen amplitudiarvoa.
Tässä projektissa käytetty koodi on saatavilla tästä GitHub repo MIT-lisenssillä.
- Avaa JES-sovellus tietokoneellasi.
- Luo uusi funktio nimeltä changeVolume(), joka ottaa syötteenä tilavuuden, johon haluat muuttaa:
defmuutaVolume(vol):
- Avaa toiminnon sisällä kehote pyytääksesi käyttäjää valitsemaan kelvollinen äänitiedosto. Vaikka JES ei ole yhteensopiva mp3-tiedostojen kanssa, voit silti tuoda WAV-tiedostoja. Lisää vahvistusta varmistaaksesi, että tiedosto on yhteensopiva:
tiedosto = pickAFile()
jos tiedosto != Ei mitäänja file.endswith(".wav"):
# Koodi kelvolliselle tiedostolle
muu:
Tulosta("Virheellinen tiedosto valittu. Valitse kelvollinen WAV-tiedosto.") - Jos valittu tiedosto on kelvollinen, luo siitä ääniobjekti:
ääni = makeSound (tiedosto)
- Selaa jokaisen ääninäytteen läpi:
varten i sisään range(0, getLength (ääni)):
- Tarkista, läpäisikö käyttäjä ylös toimintoon äänenvoimakkuuden lisäämiseksi. Jos näin on, hanki kyseisen indeksin näytearvo käyttämällä sisäänrakennettua getSampleValueAt()-funktiota. Lisää äänenvoimakkuutta kaksinkertaistamalla amplitudi ja aseta uusi arvo setSampleValueAt()-komennolla:
jos tilavuus == 'ylös':
sampleVal = getSampleValueAt (ääni, i)
setSampleValueAt (ääni, i, sampleVal * 2) - Tarkista, läpäisikö käyttäjä alas toimintoon pehmentääksesi äänenvoimakkuutta. Jos näin on, hanki näytearvo kyseisestä indeksistä ja jaa se sen sijaan kahdella amplitudin pienentämiseksi:
jos tilavuus == 'alas':
sampleVal = getSampleValueAt (ääni, i)
setSampleValueAt (ääni, i, sampleVal / 2) - Käytä explore()-funktiota avataksesi tutkimusikkunan äänelle:
tutkia (ääni)
- Klikkaa Lataa ohjelma -painiketta, joka sijaitsee ohjelmointialueen ja komentorivin välissä. Tallenna tiedosto pyydettäessä:
- Suorita changeVolume()-funktio komentorivillä ja välitä "ylös" funktion argumenttina:
muutaVolume("ylös")
- Siirry tiedostojenhallintaikkunan avulla kelvolliseen äänitiedostoon:
- Klikkaa Toista koko ääni -painiketta uudessa ikkunassa:
- Suorita komentorivillä changeVolume() uudelleen arvolla "down" argumenttina ja valitse tiedosto:
muutaVolume("alas")
- Tutkimusikkunassa näet, että ääniaallot ovat pienempiä. Klikkaa Toista koko ääni -painiketta uudessa ikkunassa:
Kuinka kääntää äänileike
Voit kääntää äänen luomalla uuden tyhjän äänen ja kopioimalla jokaisen alkuperäisen äänen näytteen uuteen ääneen käänteisessä järjestyksessä.
- Kehota uudessa toiminnossa käyttäjää valitsemaan WAV-tiedosto ja tarkistamaan, että tiedosto on kelvollinen:
defreverseSound():
tiedosto = pickAFile()jos tiedosto != Ei mitäänja file.endswith(".wav"):
# Koodi kelvolliselle tiedostolle
muu:
Tulosta("Virheellinen tiedosto valittu. Valitse kelvollinen WAV-tiedosto.") - Luo uusi ääniobjekti valitusta tiedostosta:
ääni = makeSound (tiedosto)
- Luo uusi tyhjä ääniobjekti käyttämällä sisäänrakennettua makeEmptySound()-funktiota. Tämä koostuu samasta määrästä näytteitä kuin alkuperäinen ääni. Kunkin näytteen amplitudiarvo on 0:
newReversedSound = makeEmptySound (getLength (ääni))
- Selaa jokaisen uuden tyhjän ääniobjektin näytteen läpi:
varten i sisään range(0, getLength (newReversedSound)):
- Hae jokaisesta näytteestä siinä vaiheessa näyte äänen vastakkaisesta päästä. Jos näytteen pituus on esimerkiksi 100 ja nykyinen indeksi on 0, tämä saa näytteen arvon indeksissä 99. Vastaavasti, jos nykyinen indeksi on 3, tämä saa näytearvon indeksissä 96:
sampleVal = getSampleValueAt (ääni, getLength (ääni) - 1 -i)
- Kopioi näytearvo äänen toisesta päästä uuden äänen nykyiseen indeksiin:
setSampleValueAt (newReversedSound, i, sampleVal)
- Tutustu uuteen käänteiseen soundiin. Voit myös tutkia alkuperäistä ääntä vertailua varten:
tutkia (ääni)
tutkia (uusiReversedSound) - Klikkaa Lataa ohjelma -painiketta, joka sijaitsee ohjelmointialueen ja komentorivin välissä. Tallenna tiedosto pyydettäessä.
- Suorita toiminto komentorivin avulla:
reverseSound()
- Tarkastele alkuperäistä ääntä ja käänteistä ääntä tutkimusikkunoiden avulla. Klikkaa Toista koko ääni painiketta kuullaksesi erot:
Kuinka yhdistää kaksi äänileikettä yhteen
Voit liittää kaksi äänileiketta yhteen pyytämällä käyttäjää valitsemaan kaksi erillistä WAV-tiedostoa. Kopioi molemmat näytteet uuteen ääniobjektiin.
- Luo uusi funktio nimeltä joinSounds():
defjoinSounds():
- Käytä pickAFile()-funktiota pyytääksesi käyttäjää valitsemaan ensimmäisen tiedoston. Jos se ei kelpaa, tulosta virheilmoitus:
tiedosto1 = valintatiedosto()
jos tiedosto1 == Ei mitääntaiei file1.endswith(".wav"):
Tulosta("Virheellinen tiedosto valittu. Valitse kelvollinen WAV-tiedosto.") - Käytä pickAFile()-funktiota uudelleen pyytääksesi käyttäjältä toista kelvollista äänitiedostoa:
tiedosto2 = valintatiedosto()
jos tiedosto2 == Ei mitääntaiei file2.endswith(".wav"):
Tulosta("Virheellinen tiedosto valittu. Valitse kelvollinen WAV-tiedosto.") - Luo kaksi ääniobjektia kahdesta valitusta äänitiedostosta:
sound1 = makeSound (tiedosto1)
sound2 = makeSound (tiedosto2) - Laske uuden yhdistetyn äänen pituus laskemalla yhteen kahden äänen pituudet. Luo uusi tyhjä ääniobjekti käyttämällä pituutta:
newSoundLength = getLength (ääni1) + getLength (ääni2)
joinedSound = makeEmptySound (newSoundLength) - Selaa jokaisen ensimmäisen äänen näytteen läpi. Kopioi kunkin indeksin näytearvo uuteen ääneen:
varten i sisään range(0, getLength (ääni1)):
sampleVal = getSampleValueAt (ääni1, i)
setSampleValueAt (joinedSound, i, sampleVal) - Selaa toisen äänen jokaisen näytteen läpi. Kopioi kunkin indeksin näytearvo uuteen ääneen ensimmäisen äänen jälkeen:
varten i sisään range(0, getLength (ääni2)):
sampleVal = getSampleValueAt (ääni2, i)
endOfFirstSound = getLength (ääni1) - 1
setSampleValueAt (joinedSound, endOfFirstSound + i, sampleVal) - Tutki ääntä explore()-funktion avulla:
tutkia (joinedSound)
- Klikkaa Lataa ohjelma -painiketta, joka sijaitsee ohjelmointialueen ja komentorivin välissä. Tallenna tiedosto pyydettäessä.
- Suorita toiminto komentorivin avulla:
joinSounds()
- Tarkastele yhdistettyä ääntä uudessa ikkunassa ja napsauta Toista koko ääni painiketta kuullaksesi äänen:
Äänitiedostojen tuonti ja muokkaaminen JES: n avulla
Nyt ymmärrät kuinka tuoda äänitiedostoja ja muokata niitä JES: n avulla. JES: llä on niin monia muita sisäänrakennettuja toimintoja, joiden avulla voit tehdä vieläkin edistyneempää äänen editointia.
Saat lisätietoja muista käytettävissä olevista toiminnoista käyttämällä JES-ohjeikkunaa.