Hogyan játszhatunk hangot Pythonban
Könnyű feladat hangot lejátszani Python szkript segítségével, mert ez a nyelv sok modult tartalmaz a szkript használatához a hang lejátszásához vagy rögzítéséhez. Ezeknek a moduloknak a segítségével audio fájlokat, például mp3, wav és más típusú hangfájlokat játszhat le. Először telepítenie kell a hangmodult, mielőtt felhasználná a modult a szkriptben. Ez az oktatóanyag bemutatja, hogyan lehet különféle Python modulokat telepíteni a hang lejátszásához.
Hang lejátszása a lejátszás segítségével
A lejátszás modul a legegyszerűbben használható hang lejátszására. Ez a modul a Python 2 és a Python 3 készüléken is működik, és csak wav és mp3 fájlok lejátszására tesztelték. Csak egy, nevezett metódust tartalmaz lejátszás (), egyetlen érvvel, hogy a Linux vegye az audio fájlnevet a lejátszáshoz.
Telepítés:
Futtassa a következő pip3 parancsot a modul Python 3 telepítéséhez:
$ pip3 install playoundPélda: WAV- és mp3-fájlok lejátszása lejátszás segítségével
A következő szkriptben először egy wav fájlnév kerül bevitelre, és a fájl a lejátszás () módszer. Ezután egy mp3 fájlnév kerül bevitelre, és ugyanazzal a módszerrel játssza le.
#!/ usr / bin / env python3# Playback modul importálása
lejátszási hangból importál
# Adjon meg egy meglévő wav fájlnevet
wavFile = input ("Írjon be egy wav fájlnevet:")
# Játssza le a wav fájlt
lejátszás (wavFile)
# Adjon meg egy létező mp3 fájlnevet
mp3File = input ("Adjon meg egy mp3 fájlnevet:")
# Játssza le az mp3 fájlt
lejátszás (mp3File)
Kimenet:
Ha mindkét fájl létezik, akkor a hangfájl lejátszása megkezdődik.
Hang lejátszása a pydub használatával
A pydub modul támogatja a Python 2-t és a Python 3-at is. Ez a modul a Python hangmodulokon kívül számos hasznos funkcióval rendelkezik. A pydub modul különféle típusú audio fájlokat támogat. Ez a modul bármely audiofájl szegmensének felosztásához vagy szegmensek hozzáfűzéséhez használható az audiofájlokhoz. A hang tetejére egyszerű effektet is hozzáadhat. Ez a modul közvetlenül függ két másik modultól, az ún ffmpeg és libavcodec-extra. A pydub modul telepítése előtt először telepítenie kell ezeket a modulokat.
Telepítés:
Futtassa az alábbi parancsokat a Python pydub csomagjának telepítéséhez:
$ sudo apt-get install ffmpeg libavcodec-extra$ pip3 telepítse a pydub-ot
1. példa: Helyi wav és mp3 fájlok lejátszása
Ez a modul a form_file () módszer a wav fájl lejátszására és form_mp3 () módszer egy mp3 fájl lejátszására. A játék() metódust használunk itt a wav és mp3 fájl lejátszására:
#!/ usr / bin / env python3a pydub import AudioSegmentből
a pydubból.lejátszás importálás lejátszás
# Adjon meg egy meglévő wav fájlnevet
wavFile = input ("Írjon be egy wav fájlnevet:")
# töltse be a fájlt a pydub-ba
hang = AudioSegment.from_file (wavFile)
nyomtatás ("WAV fájl lejátszása ...")
# játssza le a fájlt
játék (hang)
# Adjon meg egy létező mp3 fájlnevet
mp3File = input ("Adjon meg egy mp3 fájlnevet:")
# töltse be a fájlt a pydub-ba
zene = AudioSegment.from_mp3 (mp3File)
nyomtatás ("mp3 fájl lejátszása ...")
# játssza le a fájlt
zenél)
Kimenet:
Ha wav és mp3 fájlnév is létezik, akkor a hang szól, és a következő kimenet jelenik meg:
2. példa: Wav és mp3 fájlok letöltése és lejátszása az URL-ről
A következő példa bemutatja, hogyan lehet bármilyen wav- vagy mp3-fájlt lejátszani a fájl érvényes URL-helyről való letöltése után. Az urllib modult a szkript használja a hangfájl letöltésére.
#!/ usr / bin / env python3# Importálja a szükséges modulokat
a pydub import AudioSegmentből
pydubból.lejátszás importálás lejátszás
import urllib
# Állítsa be a wav fájlnevet
fájlnév = "service-bell.wav "
# Töltse le a wav fájlt az URL-ről
nyomtatás ("wav fájl letöltése ...")
urllib.kérés.urlretrieve ("http: // hangos.com / megragad.php?id = 2218 & type = wav ", fájlnév)
# töltse be a fájlt a pydub-ba
hang = AudioSegment.from_file (fájlnév)
nyomtatás ("WAV fájl lejátszása ...")
# játssza le a fájlt
játék (hang)
# Állítsa be az mp3 fájlnevet
fájlnév = "madarak.mp3 "
# Töltsön le egy mp3 fájlt
nyomtatás ("mp3 fájl letöltése ...")
urllib.kérés.urlretrieve ("http: // hangos.com / megragad.php?id = 2207 & type = mp3 ", fájlnév)
# töltse be a fájlt a pydub-ba
madárhang = AudioSegment.from_mp3 (fájlnév)
nyomtatás ("mp3 fájl lejátszása ...")
# Játssza le az eredményt
játék (madárhang)
print ("Kész.")
Kimenet:
A hangfájl lejátszása a letöltés befejezése után kezdődik, és a következő kimenet jelenik meg:
Játsszon hangot a tksnack segítségével
A tksnack modul egy másik tkinter nevű modultól függ az a aktiválásához tk objektum a szkriptben. tksnack parancsok használhatók a tk tárgy. Telepítenie kell mindkettőt tkinker és tksnack csomagok a Python 3-hoz.
Telepítés:
$ sudo apt-get install python3-tk$ sudo apt-get install python3-tksnack
Példa: Wav fájl lejátszása a tksnack használatával
A következő szkriptben a tkSnack modult inicializáljuk a tkinter objektum és a következő használatával játék() metódust használják a wav fájl lejátszására. Itt a blokkolás argumentum megadja, hogy a hang aszinkron módon fog lejátszani.
#!/ usr / bin / env python3# Szükséges modulok importálása
import tkinter
import tkSnack
import os
# Inicializálja a tk objektumot a tksnack használatához
gyökér = tkinter.Tk ()
tkSnack.initizeSnack (root)
#Define tksnack object
hang = tkSnack.Hang()
# Adjon meg egy meglévő wav fájlnevet
wavFile = input ("Írjon be egy wav fájlnevet:")
ha os.pálya.létezik (wavFile):
# Olvassa el a fájlt
hang.read (wavFile)
# Hang lejátszása
hang.játék (blokkolás = 1)
más:
# Nyomtassa ki az üzenetet, ha a fájl elérési útja nem létezik
print ("Wav fájl nem létezik.")
Kimenet:
A hang elkezdi lejátszani, ha létezik wav fájl, és a következő kimenet jelenik meg:
Hang lejátszása az egyszerű audió használatával
A simpleaudio modul a Python 3 csomagja, amely képes audio hangok lejátszására. Ezt a modult főleg wav fájlok és NumPy tömbök lejátszására tervezték. A modul használata előtt telepítenie kell a csomagot. Ez a hangcsomag közvetlenül függ egy másik csomagtól libasound2-dev. Telepítenie kell a libasound2-dev csomagot, és utána telepítheti a simpleaudio csomag.
Telepítés:
A csomagok telepítéséhez futtassa a következő parancsot:
$ sudo apt-get install libasound2-dev$ pip3 telepítse az egyszerű audiót
Példa: Wav fájl lejátszása az egyszerű audió használatával
A következő szkriptben bármilyen wav fájlnév kerül bevitelre. Ha a fájl létezik, akkor a szkript lejátssza a hangfájlt; ellenkező esetben a parancsfájl hibaüzenetet jelenít meg.
#!/ usr / bin / env python3# Importál egy egyszerű hangmodult
import simpleeaudio as sa
# Adjon meg egy meglévő wav fájlnevet
wavFile = input ("Írjon be egy wav fájlnevet:")
# Ha a wav fájl létezik, játssza le a hangot
próbáld ki:
# Definiálandó objektum
w_object = sa.WaveObject.from_wave_file (wavFile)
# Definiáljon objektumot a játék vezérléséhez
p_object = w_object.játék()
nyomtatás ("A hang szól ...")
p_object.wait_done ()
print ("Kész.")
# Nyomtatási hibaüzenet, ha a fájl nem létezik
a FileNotFoundError kivételével:
print ("Wav fájl nem létezik")
Kimenet:
A hangfájl lejátszásra kerül, és a következő kimenet jelenik meg a hang lejátszása után:
Következtetés
Négy Python modul alapvető használatát a hang lejátszásához ebben az oktatóanyagban számos példa segítségével ismertetjük. A hanglejátszási feladat csak ebben az oktatóanyagban jelenik meg, de Python szkript használatával rögzíthet, szerkeszthet és különféle hanggal kapcsolatos feladatokat rögzíthet.