Python 播放音頻

解決 Python 播放的方案很多,而且各個看上去好像都很有效责语。找一個合適你用的炮障,還真有點難。mp3play坤候、pymedia胁赢、pyaudio、pyglet白筹、pygame智末,有些直接報錯,有些只支持 Windows徒河,最讓我吐槽的是 pygame系馆。

選擇 pygame

經(jīng)過各種測試,唯一讓我還算滿意的是 pygame顽照,使用簡單由蘑。但網(wǎng)上的例子就沒一個完整的,導(dǎo)致播放音頻時語速不正確 (讓我各種抓狂)代兵。音頻語速不正確的原因是 pygame.mixer.init() 初始化使用了默認值尼酿,按照 mixer.init 參數(shù)說明 需要傳入第一個參數(shù) frequency (采樣頻率)值后解決問題,根據(jù)說明剩下三個參數(shù)采用默認就好植影。實例中使用了 music 模塊 詳情查看 mixter.music 說明文檔裳擎。

import pygame, time 

pygame.mixer.init(8640)                   # 初始化初混音器模塊參數(shù)
pygame.mixer.music.load("test.wav")       # 加載音頻
pygame.mixer.music.play()                 # 播放
time.sleep(5)                             # 等待音頻播放完成
pygame.mixer.music.stop()                 # 播放完成

一個最簡單音頻播放就完成了。

獲取采用頻率和播放時長

我使用的是 wav 格式的音頻何乎,所以我選擇了 wave 庫對音頻文件進行解析句惯,使用 pip install wave 進行安裝土辩,使用其它格式需要自己挑選解析庫。

import wave

# 打開需要進行的文件
fhandle = wave.open(test.wav, "rb")

# 讀取格式信息
params = fhandle.getparams()
# nchannels, sampwidth, framerate,  nframes, comptype,  compname
#  聲道數(shù),     采樣寬度,   采樣頻率,    采樣點數(shù),  壓縮類型, 壓縮類型的描述抢野。

# wave模塊只支持非壓縮的數(shù)據(jù)拷淘,因此可以忽略最后兩個信息。 
nchannels, sampwidth, framerate, nframes = params[:4]
print(nchannels, sampwidth, framerate, nframes)
playTime = nframes / float(framerate)    # 播放時長
fhandle.close()

上述代碼完成了對采樣頻率和播放時間等信息的獲取指孤∑粞模可參考 https://blog.csdn.net/sinat_33588424/article/details/80239375https://docs.python.org/3/library/wave.html 了解 wave 的詳細使用。

完整的音頻播放實例
import pygame
import wave
import time

fhandle = wave.open("test.wav", "rb")
params = fhandle.getparams()
nchannels, sampwidth, framerate, nframes = params[:4]
fhandle.close()

pygame.mixer.init(framerate)
pygame.mixer.music.load("test.wav")
pygame.mixer.music.play()
playTime = nframes/float(framerate)
time.sleep(playTime)
pygame.mixer.music.stop()

再也不用擔心 wav 播放語速不正常的問題恃轩。

Music 模塊方法簡要說明
方法 說明
pygame.mixer.music.load 加載音樂文件
pygame.mixer.music.play 播放加載完成的音樂文件
pygame.mixer.music.rewind 重新播放音頻
pygame.mixer.music.stop 停止播放
pygame.mixer.music.pause 暫停播放
pygame.mixer.music.unpause 回復(fù)播放
pygame.mixer.music.fadeout 淡出
pygame.mixer.music.set_volume 設(shè)置音量
pygame.mixer.music.get_volume 獲取音量
pygame.mixer.music.get_busy 檢查音樂是否正在播放
pygame.mixer.music.set_pos 設(shè)置開始播放的位置
pygame.mixer.music.get_pos 獲取音樂已經(jīng)播放的時間
pygame.mixer.music.queue 將音樂文件放入待循環(huán)列表
pygame.mixer.music.set_endevent 音樂播放完成時發(fā)送事件
pygame.mixer.music.get_endevent 獲取音樂播放完成發(fā)送的事件類型
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末结洼,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子叉跛,更是在濱河造成了極大的恐慌松忍,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件筷厘,死亡現(xiàn)場離奇詭異鸣峭,居然都是意外死亡,警方通過查閱死者的電腦和手機酥艳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進店門摊溶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人充石,你說我怎么就攤上這事莫换。” “怎么了骤铃?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵拉岁,是天一觀的道長。 經(jīng)常有香客問我惰爬,道長膛薛,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任补鼻,我火速辦了婚禮,結(jié)果婚禮上雅任,老公的妹妹穿的比我還像新娘风范。我一直安慰自己,他們只是感情好沪么,可當我...
    茶點故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布硼婿。 她就那樣靜靜地躺著,像睡著了一般禽车。 火紅的嫁衣襯著肌膚如雪寇漫。 梳的紋絲不亂的頭發(fā)上刊殉,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天,我揣著相機與錄音州胳,去河邊找鬼记焊。 笑死,一個胖子當著我的面吹牛栓撞,可吹牛的內(nèi)容都是我干的遍膜。 我是一名探鬼主播,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼瓤湘,長吁一口氣:“原來是場噩夢啊……” “哼瓢颅!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起弛说,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤挽懦,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后木人,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體信柿,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年虎囚,在試婚紗的時候發(fā)現(xiàn)自己被綠了角塑。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡淘讥,死狀恐怖圃伶,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蒲列,我是刑警寧澤窒朋,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站蝗岖,受9級特大地震影響侥猩,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜抵赢,卻給世界環(huán)境...
    茶點故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一欺劳、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧铅鲤,春花似錦划提、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至骇塘,卻和暖如春伊履,著一層夾襖步出監(jiān)牢的瞬間韩容,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工唐瀑, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留群凶,地道東北人。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓介褥,卻偏偏與公主長得像座掘,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子柔滔,可洞房花燭夜當晚...
    茶點故事閱讀 44,843評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 傳入音頻文件字節(jié)碼即可播放音頻
    sixiyizai閱讀 4,675評論 0 1
  • 語音文件 PCM 我們在音頻處理的時候經(jīng)常會接觸到PCM數(shù)據(jù):它是模擬音頻信號經(jīng)模數(shù)轉(zhuǎn)換(A/D變換)直接形成的二...
    周周_hey閱讀 11,408評論 3 5
  • 香比昨淡,枝上芳華稀超全,花瓣點點落地咆霜。海棠白,刺玫黃嘶朱,晚櫻惹人迷蛾坯。看頻疏遏,卻無語脉课。 可知落紅有無情,流水...
    心待月閱讀 340評論 3 8
  • 今天中午去上了一趟特殊的課财异,給49個三年級的小朋友講非暴力溝通倘零,帶小朋友真是一件有挑戰(zhàn)的事情呀。 主題是《班級感受...
    紅梅Honey閱讀 217評論 0 0
  • 親子日記第108天 星期四 晴 早起包的水餃戳寸,大寶說還是很硬呈驶,吃了兩個,滿牙上的韭菜很多疫鹊,抓緊漱口再刷牙袖瞻,...
    吉祥_0486閱讀 78評論 0 0