使用Python播放音频文件(.wav)最简单的方法是什么? "最简单"的意思是最具平台独立性且需要最少的依赖项。Pygame当然是一个选择,但它似乎对于仅需播放音频来说有些过度。
使用Python播放音频文件(.wav)最简单的方法是什么? "最简单"的意思是最具平台独立性且需要最少的依赖项。Pygame当然是一个选择,但它似乎对于仅需播放音频来说有些过度。
对于 Windows 操作系统,您可以使用内置的 winsound 模块。
import winsound
winsound.PlaySound('sound.wav', winsound.SND_FILENAME)
你应该能够在Linux中使用ossaudiodev:
from wave import open as waveOpen
from ossaudiodev import open as ossOpen
s = waveOpen('tada.wav','rb')
(nc,sw,fr,nf,comptype, compname) = s.getparams( )
dsp = ossOpen('/dev/dsp','w')
try:
from ossaudiodev import AFMT_S16_NE
except ImportError:
from sys import byteorder
if byteorder == "little":
AFMT_S16_NE = ossaudiodev.AFMT_S16_LE
else:
AFMT_S16_NE = ossaudiodev.AFMT_S16_BE
dsp.setparameters(AFMT_S16_NE, nc, fr)
data = s.readframes(nf)
s.close()
dsp.write(data)
dsp.close()
(ossaudiodev致谢:Bill Dandreta http://mail.python.org/pipermail/python-list/2004-October/288905.html)
pip install playsound
安装。享受吧! - ArtOfWarfare这似乎有些荒谬且难以实现,但你可以始终使用Windows(或您喜欢的任何操作系统)来为您管理声音!
import os
os.system("start C:/thepathyouwant/file")
简单,没有扩展功能,有点慢且有些瑕疵,但可用。
导入sys
从子进程中导入调用
如果sys.platform == 'linux2':
调用(["xdg-open","sound.mp3"])
elif sys.platform == 'darwin':
调用(["afplay","sound.mp3"])
说实话,浪费时间在所有这些不正常的声音库上是很昂贵的。将xdg-open
替换为mpg123
将在Linux上提供afplay
功能。 - Louis Maddoxsh: start: command not found
。 - Julio MarinsThe Snack Sound Toolkit可以播放wav、au和mp3文件。
s = Sound()
s.read('sound.wav')
s.play()
对于这个问题,绝对要使用Pyglet。它是一个相当大的包,但它是纯Python编写的,没有扩展模块。这肯定是最容易部署的。它还具有出色的格式和编解码器支持。
import pyglet
music = pyglet.resource.media('music.mp3')
music.play()
pyglet.app.run()
pyglet.media.sources.riff.WAVEFormatException: Not a WAVE file
- Schützemusic=pyglet.media.load(path)
而不是music=pyglet.resource.media(path)
时,您可以指定文件的绝对路径。 - Sayyor Yimport pygame
import time
pygame.init()
pygame.mixer.music.load("test.wav")
pygame.mixer.music.play()
time.sleep(10)
这也可以播放 .mp3 文件。
pyMedia的声音示例就是这样。这应该是你所需要的全部。
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 )
我喜欢pygame,下面的命令应该可以工作:
pygame.init()
pygame.mixer.Sound('sound.wav').play()
pyglet.media.load()
而不是pyglet.resource.media()
可以让我加载文件。sound.play()
只播放文件的前一小部分,除非我运行pyglet.app.run()
,否则会阻塞其他所有事情...wxPython支持在Windows和Unix上播放wav文件,但我不确定是否包括Mac。然而,据我所知,它只支持wav文件 - 不支持其他常见格式,如mp3或ogg。
from sound4python import sound
import random
a = []
for idx in xrange(1*16000):
a.append(random.randint(-16384,16384))
sound(a)
from sound4python import sound
...
sound(a)
对于Linux用户,如果需要进行低级PCM数据操作,请尝试alsaaudio模块。该包中还有一个playwav.py示例。