Piton

Hogyan játszhatunk hangot Pythonban

Hogyan játszhatunk hangot Pythonban

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 playound

Pé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 python3
a 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.

A Doom telepítése és lejátszása Linuxon
Bevezetés a Doom-ba A Doom sorozat a 90-es években keletkezett az eredeti Doom megjelenése után. Azonnali sláger volt, és ettől kezdve a játéksorozat ...
Vulkan Linux felhasználók számára
A grafikus kártyák minden új generációjával azt látjuk, hogy a játékfejlesztők átlépik a grafikus hűség határait, és egy lépéssel közelebb kerülnek a ...
OpenTTD vs Simutrans
Saját közlekedési szimuláció létrehozása szórakoztató, pihentető és rendkívül csábító lehet. Ezért meg kell győződnie arról, hogy a lehető legtöbb ját...