Python

Geluid afspelen in Python

Geluid afspelen in Python

Geluid afspelen in Python

Het is een gemakkelijke taak om geluid af te spelen met Python-script, omdat deze taal veel modules bevat om script te gebruiken om geluid af te spelen of op te nemen. Door deze modules te gebruiken, kunt u audiobestanden zoals mp3, wav en andere typen audiobestanden afspelen. U moet eerst de geluidsmodule installeren voordat u de module in het script gebruikt. Deze tutorial laat zien hoe je verschillende soorten Python-modules kunt installeren om geluid af te spelen.

Geluid afspelen Playsound gebruiken

De geluid afspelen module is de eenvoudigste module om geluid af te spelen. Deze module werkt op zowel Python 2 als Python 3 en is getest om alleen wav- en mp3-bestanden af ​​te spelen. Het bevat slechts één methode, genaamd geluid afspelen(), met één argument voor Linux om de audiobestandsnaam te gebruiken om af te spelen.

Installatie:

Voer de volgende pip3-opdracht uit om deze module in Python 3 te installeren:

$ pip3 speelgeluid installeren

Voorbeeld: wav- en mp3-bestanden afspelen met playsound

In het volgende script wordt eerst een wav-bestandsnaam als invoer genomen en wordt het bestand afgespeeld met de geluid afspelen() methode. Vervolgens wordt een mp3-bestandsnaam ingevoerd en afgespeeld via dezelfde methode.

#!/usr/bin/env python3
# Speelgeluidsmodule importeren
van playsound importeer playsound
 
# Voer een bestaande wav-bestandsnaam in
wavFile = input("Vul een wav-bestandsnaam in: ")
# Speel het wav-bestand af
speelt geluid af (wavFile)
 
# Voer een bestaande mp3-bestandsnaam in
mp3File = input("Vul een mp3-bestandsnaam in: ")
# Speel het mp3-bestand af
speelt geluid (mp3-bestand)

Uitgang:

Als beide bestanden bestaan, wordt het geluidsbestand afgespeeld.

Geluid afspelen met pydub

De pydub module ondersteunt zowel Python 2 als Python 3. Deze module heeft veel andere handige functies dan Python-geluidsmodules. De pydub-module ondersteunt verschillende soorten audiobestanden. Deze module kan worden gebruikt om segmenten van elk audiobestand te splitsen of om segmenten aan de audiobestanden toe te voegen. Je kunt ook een eenvoudig effect bovenop het geluid toevoegen. Deze module is direct afhankelijk van twee andere modules, genaamd ffmpeg en libavcodec-extra. Voordat u de pydub-module installeert, moet u deze modules eerst installeren.

Installatie:

Voer de volgende opdrachten uit om het pydub-pakket van Python te installeren:

$ sudo apt-get install ffmpeg libavcodec-extra
$ pip3 installeer pydub

Voorbeeld-1: Lokale wav- en mp3-bestanden afspelen

Deze module maakt gebruik van de formulier_bestand() methode voor het afspelen van wav-bestanden en form_mp3() methode voor het afspelen van een mp3-bestand. De Speel() methode wordt hier gebruikt om het wav- en mp3-bestand af te spelen:

#!/usr/bin/env python3
van pydub import AudioSegment
van pydub.afspelen importeren afspelen
# Voer een bestaande wav-bestandsnaam in
wavFile = input("Vul een wav-bestandsnaam in: ")
# laad het bestand in pydub
geluid = Audiosegment.from_file(wavFile)
print("WAV-bestand afspelen... ")
# speel het bestand af
geluid afspelen)
# Voer een bestaande mp3-bestandsnaam in
mp3File = input("Vul een mp3-bestandsnaam in: ")
# laad het bestand in pydub
muziek = Audiosegment.from_mp3(mp3Bestand)
print("Mp3-bestand afspelen... ")
# speel het bestand af
speel muziek)

Uitgang:

Als zowel wav- als mp3-bestandsnamen bestaan, wordt het geluid afgespeeld en verschijnt de volgende uitvoer:

Voorbeeld-2: Download en speel wav- en mp3-bestanden van URL

Het volgende voorbeeld laat zien hoe een wav- of mp3-bestand kan worden afgespeeld nadat het bestand is gedownload vanaf een geldige URL-locatie. De urllib-module wordt in het script gebruikt om het geluidsbestand te downloaden.

#!/usr/bin/env python3
# Importeer benodigde modules
van pydub import AudioSegment
van pydub.afspelen importeren afspelen
urllib importeren
# Stel de wav-bestandsnaam in
bestandsnaam = "service-bell.zwaai"
# Download het wav-bestand van url
print("download wav-bestand... ")
urllib.verzoek.urlretrieve("http://soundbible.com/grab.php?id=2218&type=wav", bestandsnaam)
# laad het bestand in pydub
geluid = Audiosegment.from_file(bestandsnaam)
print("WAV-bestand afspelen... ")
# speel het bestand af
geluid afspelen)
# Stel de mp3-bestandsnaam in
bestandsnaam = "vogels.mp3"
# Download een mp3-bestand
print("download mp3-bestand... ")
urllib.verzoek.urlretrieve("http://soundbible.com/grab.php?id=2207&type=mp3", bestandsnaam)
# laad het bestand in pydub
vogelgeluid = AudioSegment.from_mp3(bestandsnaam)
print("Mp3-bestand afspelen... ")
# Speel het resultaat af
spelen (vogelgeluid)
print("Voltooid.")

Uitgang:

Het geluidsbestand begint te spelen nadat het downloaden is voltooid en de volgende uitvoer zal verschijnen:

Geluid afspelen met tksnack

De tksnack module is afhankelijk van een andere module, genaamd tkinter, om a . te activeren tk object in het script.  tksnack commando's kunnen worden gebruikt na het initialiseren van de tk voorwerp. Je moet beide installeren tkinker en tksnack pakketten voor Python 3.

Installatie:

$ sudo apt-get install python3-tk
$ sudo apt-get install python3-tksnack

Voorbeeld: wav-bestand afspelen met tksnack

In het volgende script wordt de tkSnack-module geïnitialiseerd met behulp van het tkinter-object, en de volgende Speel() methode wordt gebruikt om het wav-bestand af te spelen. Hier de blokkeren argument geeft aan dat het geluid asynchroon wordt afgespeeld.

#!/usr/bin/env python3
# Importeer noodzakelijke modules
import tkinter
import tkSnack
importeer os
 
# Initialiseer tk object om tksnack te gebruiken
root = tkinter.Tk()
tkSnack.initialiseerSnack(root)
 
#Definieer tksnack-object
geluid = tkSnack.Geluid()
 
# Voer een bestaande wav-bestandsnaam in
wavFile = input("Vul een wav-bestandsnaam in: ")
 
als het goed is.pad.bestaat (wavFile):
# Lees het bestand
geluid.lezen (wavFile)
# Geluid afspelen
geluid.spelen(blokkeren=1)
anders:
# Druk het bericht af als het bestandspad niet bestaat
print ("Wav-bestand bestaat niet.")

Uitgang:

Het geluid begint te spelen als het wav-bestand bestaat, en de volgende uitvoer zal verschijnen:

Geluid afspelen met simpleaudio

De eenvoudige audio module is een pakket van Python 3 dat audiogeluiden kan afspelen. Deze module is voornamelijk ontworpen om wav-bestanden en NumPy-arrays af te spelen. U moet het pakket installeren voordat u deze module gebruikt. Dit geluidspakket is direct afhankelijk van een ander pakket genaamd libasound2-dev. U moet de installeren libasound2-dev pakket eerst, en daarna kunt u de eenvoudige audio pakket.

Installatie:

Voer de volgende opdracht uit om de pakketten te installeren:

$ sudo apt-get install libasound2-dev
$ pip3 installeer simpleaudio

Voorbeeld: wav-bestand afspelen met simpleaudio

In het volgende script wordt elke wav-bestandsnaam als invoer genomen:. Als het bestand bestaat, zal het script het geluidsbestand afspelen; anders geeft het script een foutmelding weer.

#!/usr/bin/env python3
# Importeer simpleaudio-geluidsmodule
importeer simpleaudio als sa
# Voer een bestaande wav-bestandsnaam in
wavFile = input("Vul een wav-bestandsnaam in: ")
 
# Speel het geluid af als het wav-bestand bestaat
proberen:
# Definieer het te spelen object
w_object = sa.GolfObject.from_wave_file(wavFile)
# Definieer object om het spel te besturen
p_object = w_object.Speel()
print("Geluid speelt... ")
p_object.wait_done()
print("Voltooid.")
# Print foutmelding als het bestand niet bestaat
behalve FileNotFoundError:
print ("Wav-bestand bestaat niet")

Uitgang:

Het geluidsbestand wordt afgespeeld en de volgende uitvoer verschijnt na het afspelen van het geluid:

Conclusie

Het basisgebruik van vier Python-modules om geluid af te spelen wordt in deze tutorial uitgelegd aan de hand van een aantal voorbeelden. De taak voor het afspelen van geluid wordt alleen in deze zelfstudie getoond, maar u kunt opnemen, bewerken en verschillende geluidsgerelateerde taken opnemen met behulp van het Python-script.

Vulkan voor Linux-gebruikers
Met elke nieuwe generatie grafische kaarten zien we game-ontwikkelaars de grenzen van grafische betrouwbaarheid verleggen en een stap dichter bij foto...
OpenTTD versus Simutrans
Je eigen transportsimulatie maken kan leuk, ontspannend en buitengewoon aanlokkelijk zijn. Daarom moet je ervoor zorgen dat je zoveel mogelijk spellen...
OpenTTD-zelfstudie
OpenTTD is een van de meest populaire simulatiegames voor bedrijven die er zijn. In dit spel moet je een geweldig transportbedrijf creëren. U begint e...