用python播放聲音文件(mp3、wav、m4a等)

用python播放聲音文件(mp3、wav、m4a等)

前段時間在搞一個基於python的語音助手,其中需要用到python播放音頻的功能,要在windows上和樹莓派上運行,但是在網上找了好久,都沒有找到合適的解決方案(pygame 和 PyAudio勉強能用,但是效果不理想)。無奈只能想辦法Google一下,找到了一篇比較基礎的文章,詳細的介紹了怎樣用一些庫來實現播放音頻的功能,簡單實用。爲了方便以後使用,我把文章簡要的翻譯記錄如下:

原文地址:https://pythonbasics.org/python-play-sound/

 

【文章大意】

用python播放聲音文件很簡單,下面介紹一些可以播放聲音的第三方庫,這些解決方案都是跨平臺的,可以在windows、Mac和Linux上使用。

這些方法主要的不同點在於簡單程度和支持的文件類型上,他們都支持python3環境。在編程的時候,要確保.py文件和聲音文件在一個目錄下,或者在代碼中指定聲音文件的絕對地址。

 

方法一:playsound module

playsound module是一個可以跨平臺使用的庫,不需要其他依賴的庫,直接利用pip或者IDE的庫管理功能安裝就行。

from playsound import playsound

playsound(‘test.mp3’)

 

只需要上面兩行代碼就可以聽到聲音啦。可以用來播放mp3和wav文件等。

 

方法二:pydub

可以通過pip安裝,pydub還能調用底層的PyAudio和ffmpeg庫。

from pydub import AudioSebment

from pydub.playback import play



song = AudioSegment.from_wav(‘test.wav’)

play(song)

 

方法三:snack sound kit

這個比較強大,可以播放wav、AU、AIFF、MP3、CSL、SD、SMP和NIST/Sphere類型的文件,但是這個庫已經好久沒有更新維護了。

可以通過 apt install python3-tksnack 安裝,老的版本名字爲 python-tksnack。

這個庫需要Tkinker做支撐,也就是說要使用它得先安裝Tkinter。

from Tkinker import *

import tkSnack



root = Tk()

tkSnack.installzeSnack(root)



snd = tkSnack.Sound()

snd.read(‘test.mp3’)

snd.play(blocking = 1)

 

方法四:本地播放器

可以使用電腦或樹莓派自身的播放器軟件播放音頻文件,在windows上只要指定默認的播放器即可,在Linux等上面可以通過終端安裝播放軟件,比如mpg123.

import os



file = ‘test.mp3’

os.system(‘mpg123’+ file)

 

【時間倉促,代碼還沒來得及一一測試,感興趣的可以看下原文https://pythonbasics.org/python-play-sound/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章