首发于Python
Python播放MP3等声音文件

Python播放MP3等声音文件

9 人赞同了该文章

最近在搞一个基于python的语音聊天机器人,因为采用的百度AI平台中的语音合成功能,输出的MP3的格式,需要用到Python播放MP3的功能,但是在网上找了好久,都没有找到合适的解决方案,原来比较好的mp3Play库只支持Python2,比较多种方式后,目前采用play_mp3,为了方便以后使用,现将结果记录如下:

用Python播放声音文件虽然很简单,但是有些播放效果不好,下面是一些可以播放声音的第三方库,这些第三方库都是跨平台的,可以在Windows、Mac和Linux上使用。 均支持Python3环境。编程时,要确保.py文件和声音文件在一个目录下,或者在代码中指定声音文件的绝对地址。

方法一:playsound module

playsound module是一个可以跨平台使用的库,不需要其他依赖的库,直接利用pip install playsound安装就行。

from playsound import playsound
playsound('mysong.mp3')

只需要输入上面两行代码就可以实现,可以用来播放mp3和wav文件等,但有时会出现找不到文件的错误,并跳出执行环境,从网上查了很多,有的是说文件名出现空格的缘故,通过以下方式处理,运行时依然出问题。

speakpath = "mysong.mp3"
speakpath = speakpath.replace(" ", "%20")
playsound(speakpath)

方法二:play_mp3

看了看是2020年10月份新出的第三方库,比较简单,两行代码;调用前需要通过Pip install Play_mp3安装。

import Play_mp3
play_mp3.play(filename-here)

我目前暂时在使用这种方式来播放MP3的文件。

方法三:pydub

可以通过pip安装,pydub还能调用底层的PyAudio和ffmpeg库。

from pydub import AudioSebment

from pydub.playback import play
song = AudioSegment.from_wav(‘mysong.wav’)

play(song)

方法四:snack sound kit

可以播放WAV、AU、AIFF、MP3、CSL、SD、SMP和NIST/Sphere类型的文件,可以通过 apt install python3-tksnack 安装,这个库需要Tkinker做支撑,也就是说要使用它得先安装Tkinter。

from Tkinker import *
import tkSnack
root = Tk()
tkSnack.installzeSnack(root)
snd = tkSnack.Sound()
snd.read(‘mysong.mp3’)
snd.play(blocking = 1)

方法五:本地播放器

可以使用电脑自身的播放器软件播放音频文件,在windows上需要指定默认的播放器即可,在Linux等上面可以通过终端安装播放软件,但是效果感知不好。

import os

file = ‘mysong.mp3’

os.system(‘mpg123’+ file)

发布于 2021-03-29 12:12
写下你的评论...

3 条评论
默认
最新
影子

ModuleNotFoundError: No module named 'Play_mp3'

我已经反复确认库已经安装

2022-08-28
汪汪汪汪得体

因为playsound库不好用,选择了play_mp3试试,但是发现play_mp3就是封装了的

playsound...

02-02
余帆
[尴尬]
your copy is wrong.



from pydub import AudioSegment
from pydub.playback import play

song = AudioSegment.from_wav("sound.wav")
2022-04-14

文章被以下专栏收录

想来知乎工作?请发送邮件到 jobs@zhihu.com