Python播放MP3等声音文件
最近在搞一个基于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)
ModuleNotFoundError: No module named 'Play_mp3'
我已经反复确认库已经安装
因为playsound库不好用,选择了play_mp3试试,但是发现play_mp3就是封装了的
playsound...
your copy is wrong.
from pydub import AudioSegment
from pydub.playback import play
song = AudioSegment.from_wav("sound.wav")