如何从python终端播放音频文件

如何从python终端播放音频文件,python,audio,Python,Audio,我正在使用librosa库对.wav格式的音频文件进行数据分析。但除了特征提取之外,librosa似乎只能读取或写入数组形式的音频文件。我还想用我的分析代码播放音频文件 在Ipython笔记本中,我可以使用Ipython.display.audio在Ipython电子书中直接播放音频,但当我将代码转换为.py时,我无法工作,因此我需要一些可以用于相同目的的东西。您可以使用pydub加载音频文件(mp3、wav、ogg、raw)和simpleudio进行播放。照办 sound = pydub.Au

我正在使用
librosa
库对
.wav
格式的音频文件进行数据分析。但除了特征提取之外,
librosa
似乎只能读取或写入数组形式的音频文件。我还想用我的分析代码播放音频文件


在Ipython笔记本中,我可以使用
Ipython.display.audio
在Ipython电子书中直接播放音频,但当我将代码转换为.py时,我无法工作,因此我需要一些可以用于相同目的的东西。

您可以使用
pydub
加载音频文件(mp3、wav、ogg、raw)和
simpleudio
进行播放。照办

sound = pydub.AudioSegment.from_wav('audiofile.wav')
playback = simpleaudio.play_buffer(
    sound.raw_data, 
    num_channels=sound.channels, 
    bytes_per_sample=sound.sample_width, 
    sample_rate=sound.frame_rate
    )

瞧!你终于有了自己的节奏。要停止,只需调用playback.stop()

这是否回答了您的问题?这对我不起作用,因为我不知道流媒体的块大小,我也不想增加任何这样的开销。我想看看是否有像Ipython.display.audio这样的库已经存在,它们可以用更少的开销完成同样的任务。@Xaser给出的答案实际上比Ipython解决方案的“开销”要少。另外,
chunk\u size
你可以定义自己,你不需要事先知道。这只是一次读取的字节数。如果“开销”的意思是“我不想键入那么多”,那么考虑一下这个例子,但是它的异步含义代码实际上是在一个新的线程(下面)中发生音频的。程序继续执行,如果上面的代码在游戏或服务器中也可以,但是在终端程序中,你只能听到一小段音频,因为程序可能在需要听音频文件的时间之前就完成了。。。不知道是否可以告诉它播放同步。。。否则,它将在这个用例下工作,在之后放置一个睡眠步骤