Sådan afspilles lyd i Python
Det er en nem opgave at afspille lyd ved hjælp af Python-script, fordi dette sprog indeholder mange moduler, der skal bruges til at afspille eller optage lyd. Ved at bruge disse moduler kan du afspille lydfiler såsom mp3, wav og andre lydfiltyper. Du skal først installere lydmodulet, før du bruger modulet i scriptet. Denne vejledning viser, hvordan du installerer forskellige typer Python-moduler til at afspille lyd.
Afspil lyd ved hjælp af playound
Det Afspil lyd modul er det enkleste modul til brug for lydafspilning. Dette modul fungerer på både Python 2 og Python 3 og er testet til kun at afspille wav- og mp3-filer. Den indeholder kun en metode, navngivet Afspil lyd(), med et argument for Linux at tage lydfilnavnet til afspilning.
Installation:
Kør følgende pip3-kommando for at installere dette modul i Python 3:
$ pip3 installerer playoundEksempel: Afspil wav- og mp3-filer ved hjælp af playound
I det følgende script tages et wav-filnavn som input først, og filen afspilles ved hjælp af Afspil lyd() metode. Derefter vil et mp3-filnavn blive indtastet og spillet via den samme metode.
#!/ usr / bin / env python3# Importer afspilningsmodul
fra playsound import playound
# Indtast et eksisterende wav-filnavn
wavFile = input ("Indtast et wav-filnavn:")
# Afspil wav-filen
playound (wavFile)
# Indtast et eksisterende mp3-filnavn
mp3File = input ("Indtast et mp3-filnavn:")
# Afspil mp3-filen
playound (mp3File)
Produktion:
Hvis begge filer findes, begynder lydfilen at afspilles.
Afspil lyd ved hjælp af pydub
Det pydub modul understøtter både Python 2 og Python 3. Dette modul har mange andre nyttige funktioner end Python-lydmoduler. Pydub-modulet understøtter forskellige typer lydfiler. Dette modul kan bruges til at opdele segmenter af enhver lydfil eller tilføje segmenter til lydfilerne. Du kan også tilføje en simpel effekt oven på lyden. Dette modul afhænger direkte af to andre moduler, kaldet ffmpeg og libavcodec-ekstra. Før du installerer pydub-modulet, skal du først installere disse moduler.
Installation:
Kør følgende kommandoer for at installere pydub-pakken med Python:
$ sudo apt-get install ffmpeg libavcodec-ekstra$ pip3 installer pydub
Eksempel 1: Afspil lokale wav- og mp3-filer
Dette modul bruger form_fil () metode til afspilning af wav-fil og form_mp3 () metode til afspilning af en mp3-fil. Det Spil() metoden bruges her til at afspille wav- og mp3-filen:
#!/ usr / bin / env python3fra pydub importerer AudioSegment
fra pydub.afspilning importafspilning
# Indtast et eksisterende wav-filnavn
wavFile = input ("Indtast et wav-filnavn:")
# indlæs filen i pydub
lyd = AudioSegment.from_file (wavFile)
udskriv ("Afspiller wav-fil ...")
# afspil filen
Afspil lyd)
# Indtast et eksisterende mp3-filnavn
mp3File = input ("Indtast et mp3-filnavn:")
# indlæs filen i pydub
musik = AudioSegment.from_mp3 (mp3File)
udskrive ("Afspilning af mp3-fil ...")
# afspil filen
afspille musik)
Produktion:
Hvis der findes både wav- og mp3-filnavne, afspilles lyden, og følgende output vises:
Eksempel 2: Download og afspil wav- og mp3-filer fra URL
Følgende eksempel viser, hvordan enhver wav- eller mp3-fil kan afspilles efter download af filen fra en gyldig URL-placering. Urllib-modulet bruges i scriptet til at downloade lydfilen.
#!/ usr / bin / env python3# Importer nødvendige moduler
fra pydub importerer AudioSegment
fra pydub.afspilning importafspilning
import urllib
# Indstil wav-filnavnet
filnavn = "service-bell.wav "
# Download wav-filen fra url
udskriv ("downloader wav-fil ...")
urllib.anmodning.urlretrieve ("http: // soundbible.com / grab.php?id = 2218 & type = wav ", filnavn)
# indlæs filen i pydub
lyd = AudioSegment.fra_fil (filnavn)
udskriv ("Afspiller wav-fil ...")
# afspil filen
Afspil lyd)
# Indstil mp3-filnavnet
filnavn = "fugle.mp3 "
# Download en mp3-fil
udskrive ("downloade mp3-fil ...")
urllib.anmodning.urlretrieve ("http: // soundbible.com / grab.php?id = 2207 & type = mp3 ", filnavn)
# indlæs filen i pydub
birdsound = AudioSegment.from_mp3 (filnavn)
udskrive ("Afspilning af mp3-fil ...")
# Afspil resultatet
leg (fuglelyd)
print ("Færdig.")
Produktion:
Lydfilen begynder at afspille efter downloadet, og følgende output vises:
Afspil lyd ved hjælp af tksnack
Det tksnack modul afhænger af et andet modul, der hedder tkinter, for at aktivere et tk objekt i scriptet. tksnack kommandoer kan bruges efter initialisering af tk objekt. Du skal installere begge dele tkinker og tksnack pakker til Python 3.
Installation:
$ sudo apt-get install python3-tk$ sudo apt-get install python3-tksnack
Eksempel: Afspil wav-fil ved hjælp af tksnack
I det følgende script initialiseres tkSnack-modulet ved hjælp af tkinter-objektet og det næste Spil() metoden bruges til at afspille wav-filen. Her, den blokering argument specificerer, at lyden afspilles asynkront.
#!/ usr / bin / env python3# Importér nødvendige moduler
importer tkinter
importer tkSnack
importer os
# Initialiser tk-objektet for at bruge tksnack
rod = tkinter.Tk ()
tkSnack.initializeSnack (rod)
#Definer tksnack-objekt
lyd = tkSnack.Lyd()
# Indtast et eksisterende wav-filnavn
wavFile = input ("Indtast et wav-filnavn:")
hvis os.sti.findes (wavFile):
# Læs filen
lyd.læse (wavFile)
# Afspil lyd
lyd.play (blokering = 1)
andet:
# Udskriv meddelelsen, hvis filstien ikke findes
print ("Wav-fil findes ikke.")
Produktion:
Lyden begynder at afspilles, hvis wav-filen findes, og følgende output vises:
Afspil lyd ved hjælp af simpleaudio
Det simpleaudio modul er en pakke med Python 3, der kan afspille lydlyde. Dette modul er hovedsageligt designet til at afspille wav-filer og NumPy-arrays. Du bliver nødt til at installere pakken, før du bruger dette modul. Denne lydpakke afhænger direkte af en anden pakke kaldet libasound2-dev. Du bliver nødt til at installere libasound2-dev pakke først, og derefter kan du installere simpleaudio pakke.
Installation:
Kør følgende kommando for at installere pakkerne:
$ sudo apt-get install libasound2-dev$ pip3 installerer simpleaudio
Eksempel: Afspil wav-fil ved hjælp af simpleaudio
I det følgende script tages ethvert wav-filnavn som input. Hvis filen findes, vil scriptet afspille lydfilen; Ellers viser scriptet en fejlmeddelelse.
#!/ usr / bin / env python3# Importer simpelt lydmodul
import simpleaudio som sa
# Indtast et eksisterende wav-filnavn
wavFile = input ("Indtast et wav-filnavn:")
# Afspil lyden, hvis wav-filen findes
prøve:
# Definer objekt, der skal spilles
w_object = sa.WaveObject.from_wave_file (wavFile)
# Definer objekt, der skal styre spillet
p_object = w_object.Spil()
udskrive ("Lyden afspilles ...")
p_objekt.Vent_Færdig ()
print ("Færdig.")
# Udskriv fejlmeddelelse, hvis filen ikke findes
undtagen FileNotFoundError:
udskriv ("Wav-filen findes ikke")
Produktion:
Lydfilen afspilles, og følgende output vises efter afspilning af lyden:
Konklusion
De grundlæggende anvendelser af fire Python-moduler til at afspille lyd forklares i denne vejledning ved hjælp af et antal eksempler. Lydafspilningsopgaven vises kun i denne vejledning, men du kan optage, redigere og forskellige lydrelaterede opgaver ved hjælp af Python-script.