Was ist der einfachste Weg, um eine Sounddatei (.wav) in Python abzuspielen? Mit einfachsten meine ich sowohl die meisten Plattform unabhängig und erfordern die wenigsten Abhängigkeiten. pygame ist sicherlich eine Option, aber es scheint Overkill für nur Sound.
Antworten
Zu viele Anzeigen?PyMedia's Klangbeispiel macht genau das . Das sollte alles sein, was Sie brauchen.
import time, wave, pymedia.audio.sound as sound
f= wave.open( 'YOUR FILE NAME', 'rb' )
sampleRate= f.getframerate()
channels= f.getnchannels()
format= sound.AFMT_S16_LE
snd= sound.Output( sampleRate, channels, format )
s= f.readframes( 300000 )
snd.play( s )
Ich mag pygame, und der folgende Befehl sollte funktionieren:
pygame.init()
pygame.mixer.Sound('sound.wav').play()
aber es tut nicht auf beiden meiner Computer, und es gibt begrenzte Hilfe zu diesem Thema da draußen. edit: Ich habe herausgefunden, warum der Pygame-Sound bei mir nicht funktioniert, es lädt die meisten Sounds nicht richtig, das Attribut 'Länge' ist ~0.0002, wenn ich sie lade. vielleicht lädt man sie mit etwas anderem als mygame, damit es allgemeiner funktioniert.
mit pyglet erhalte ich eine Ressource nicht gefunden Fehler Verwenden Sie das obige Beispiel, wigh sowohl relative und vollständige Pfade zu den Dateien.
mit pyglet.media.load()
anstelle von pyglet.resource.media()
lässt mich die Dateien laden.
sondern sound.play()
spielt nur den ersten Bruchteil einer Sekunde der Datei ab, es sei denn, ich führe pyglet.app.run()
was alles andere blockiert...
Ich habe gerade einen einfachen Python-Wrapper um sox herum veröffentlicht, der einen Sound mit Python abspielt. Es ist sehr einfach zu installieren, da man Python 2.6 oder höher, sox (einfach zu erhaltende Binaries für die meisten Architekturen) und den Wrapper ( https://github.com/standarddeviant/sound4python ). Wenn Sie keine Socken haben, gehen Sie hier: http://sourceforge.net/projects/sox/files/sox/
Sie würden damit Audio abspielen:
from sound4python import sound
import random
a = []
for idx in xrange(1*16000):
a.append(random.randint(-16384,16384))
sound(a)
Denken Sie daran, dass die einzigen Teile, die tatsächlich an der Audiowiedergabe beteiligt sind, genau diese sind:
from sound4python import sound
...
sound(a)
- See previous answers
- Weitere Antworten anzeigen