这是我参与11月更文挑战的第12天,活动详情查看:2021最后一次更文挑战
环境
- windows 10 64位
 - anaconda with python 3.8
 - playsound 1.3.0
 
前言
前文 Python文字语音播报 介绍过使用库 pyttsx3 来实现语音的播报。pyttsx3 接收的是字符串,也就是文本,本文介绍是另外一个库 playsound,它播报的内容来自语音文件,比如 mp3 文件。playsound 支持多平台,仅仅依赖于 python。
安装
官方给出的安装方法是
pip install playsound
但是我在执行的时候,发现报错了,提示去下载其对应的源码包
那就去下载吧,完成后进行解压,我这里安装过 git 的工具,所有就直接使用 git shell 来操作了,它模拟的是 linux 的环境,就可以直接使用 tar 命令进行解压
然后,我们切换到目标 python 虚拟环境,进入到源码目录,使用命令
pip install .
进行安装
使用
安装好后,使用起来非常简单
from playsound import playsound
playsound('play.mp3')
playsound 方法还有一个可选参数 block,是个布尔类型,默认是 True,如果是 False,代表的是异步执行
原理
由于各平台底层音频播放的机制不同,playsound 也是调用的各自平台自身的方法,并没有引入全新的机制
- 
windows
使用的是
windll.winmm,已经通过测试的格式包括了wav和mp3 - 
macos
使用的是
AppKit.NSSound,已经通过测试的格式包括了wav和mp3,一般来讲,QuickTime能播的,playsound也能播 - 
linux
使用的是
GStreamer,由于linux的发行版实在太多,作者也说没有完全测试,有问题可以提交issue或pr 
Python实用模块专题
更多有用的python模块,请移步