在显示文本时,如何在Python2.6.6中播放音频?

2024-04-27 03:19:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用Python2.6.6制作一个程序,在后台播放音频的同时显示文本。我只完成了部分课文。在

print "Well here we are again"
print "It’s always such a pleasure"
print "Remember when you tried to kill me twice?"
print "Oh, how we laughed and laughed"
print "Except I wasn’t laughing"
print "Under the circumstances I’ve been shockingly nice."

我有一个.wav文件,我想在程序开始时播放。我也希望文本与音乐一起播放(我可以指定文本在歌曲中显示的时间,例如00:00:02)。我想这是可能的音频模块的某种类型。在

谢谢!在


Tags: 文本程序hereit音频alwaysare后台
3条回答

你可能会发现pygame很有用。在

http://www.pygame.org/docs/ref/mixer.html

您需要的是Python的GStreamer。在

查看this教程,这是一个很好的起点。在

编辑: 在Windows中,您可以使用标准库中的winsound模块(哇!Python有这个参见winsound文档。在

我最近做了一个类似的事情,并使用了audiere模块

import audiere
ds = audiere.open_device()
os = ds.open_array(input, fs)
os.play()

这将打开第一个可用的音频设备,因为您在windows上,它可能是DirectSound。input只是一个numpy数组,fs是采样频率(因为输入是一个原始数组,您需要指定它)。os.play()是一个非阻塞调用,因此您可以打印您的txt或任何您需要在同一时间,有其他方法暂停/停止等。要播放其他文件类型,我只是简单地将它们转换成wav。在

下面是我如何解压缩wav文件

^{pr2}$

例如,要制作inputfs,可以这样做:

from scipy import c_
left, right, params = wave_unpack(fn)
fs = params[2]
left_float  =  left.astype('f')/2**15
right_float = right.astype('f')/2**15
stereo = c_[left_float, right_float]
input = mono = stereo.mean(1)

这很适合我,但我的要求是FFT输入,而不是卡拉OK:)

我确信只要给出一个二维数组,audiere就能实现立体播放。在

相关问题 更多 >