欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python用sndhdr模塊識別音頻格式詳解

 更新時間:2018年01月11日 13:45:29   作者:GanZiQim  
這篇文章主要介紹了Python用sndhdr模塊識別音頻格式詳解,具有一定借鑒價值,需要的朋友可以參考下

本文主要介紹了Python編程中,用sndhdr模塊識別音頻格式的相關(guān)內(nèi)容,具體如下。

sndhdr模塊

功能描述:sndhdr模塊提供檢測音頻類型的接口。

唯一一個API

sndhdr模塊提供了sndhdr.what(filename)和sndhdr.whathdr(filename)兩個函數(shù)。但實際上它們的功能是一樣的。(不知道多寫一個的意義何在,what函數(shù)在內(nèi)部調(diào)用了whathdr函數(shù)并把數(shù)據(jù)完完整整地返回)

在之前的版本,whathdr函數(shù)返回元組類型的數(shù)據(jù),在Python3.5版本之后改為返回一個namedtuple。返回的元組包括5個屬性:filetype、framerate、nchannels、nframes和sampwidth。

1.filetype代表音頻格式。值為:'aifc', ‘a(chǎn)iff', ‘a(chǎn)u', ‘hcom', ‘sndr', ‘sndt', ‘voc', ‘wav', ‘8svx', ‘sb', ‘ub', ‘ul'或者None中之一。常見的幾個格式反倒不支持。
2.framerate代表音頻文件的幀率。如果音頻文件難以解碼或者未知,該值會返回0。
3.nchannels代表通道數(shù)。如果音頻文件難以解碼或者未知,該值會返回0。
4.nframes代表幀數(shù)。如果無法確定則返回-1。
5.sampwidth代表返回樣本的長度(比特),值為8的倍數(shù),或者返回A(A-LAW格式)、u(u-LAW格式)。

>>> import sndhdr
>>> sndhdr.what('test.mp3') # 無法檢測,返回None
>>> sndhdr.what('test.wav')
SndHeaders(filetype='wav', framerate=44100, nchannels=2, nframes=12630240, sampwidth=16)

注:模塊在檢測AIFC和AIFF時使用了aifc模塊。檢測wav時使用了wave模塊。這兩個都是Python標準庫里面的模塊

自定義檢測流程

和imghdr模塊一樣,sndhdr內(nèi)部也使用了一個tests列表維護檢測函數(shù)。如果想要自行定義檢測流程,可以通過修改tests列表達到目的。

>>> import sndhdr
>>> sndhdr.tests
[<function test_aifc at 0x000001A99B527BF8>, <function test_au at 0x000001A99B527C80>, <
function test_hcom at 0x000001A99B527D08>, <function test_voc at 0x000001A99B527D90>, <f
unction test_wav at 0x000001A99B527E18>, <function test_8svx at 0x000001A99B527EA0>, <fu
nction test_sndt at 0x000001A99B527F28>, <function test_sndr at 0x000001A99B521048>]
>>> def final(h, f): # 自定義檢測函數(shù)
... print("Maybe mp3 or aac?")
...
>>> sndhdr.what("test.mp3")
>>> sndhdr.tests.append(final) # 添加自定義檢測函數(shù)到檢測列表中
>>> sndhdr.what("test.mp3")
Maybe mp3 or aac?

自行添加檢測函數(shù)需要接收兩個參數(shù)h和f,h是用來檢測的字節(jié)串,f是file對象。

命令行啟動sndhdr模塊

sndhdr用-m模式啟動的格式也跟imghdr一樣,終端中調(diào)用python -m sndhdr [-r] file1 file2...就可以了。file可以是文件或者文件夾,-r參數(shù)代表遞歸檢測。

Desktop\test>python -m sndhdr test.mp3 test.wav
test.mp3: None
test.wav: SndHeaders(filetype='wav', framerate=44100, nchannels=2, nframes=12630240, sampwidth=16)

總結(jié):sndhdr模塊內(nèi)部的結(jié)構(gòu)總體和imghdr非常相似,設(shè)計缺陷也很相似…模塊的源碼不多,也不是很難讀懂,建議有興趣的讀者可以試著讀下源碼。

以上就是本文關(guān)于Python用sndhdr模塊識別音頻格式詳解的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:

Python用imghdr模塊識別圖片格式實例解析》、Python使用base64模塊進行二進制數(shù)據(jù)編碼詳解》、hmac模塊生成加入了密鑰的消息摘要詳解

如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

相關(guān)文章

  • Python+OpenCV實現(xiàn)圖像識別替換功能詳解

    Python+OpenCV實現(xiàn)圖像識別替換功能詳解

    OpenCV-Python是一個Python庫,旨在解決計算機視覺問題。本文將利用Python+OpenCV實現(xiàn)圖像識別替換功能,感興趣的小伙伴可以動手嘗試一下
    2022-07-07
  • 跟老齊學(xué)Python之重回函數(shù)

    跟老齊學(xué)Python之重回函數(shù)

    在本教程的開始部分,就已經(jīng)引入了函數(shù)的概念:《永遠強大的函數(shù)》,之所以那時候就提到函數(shù),是因為我覺得函數(shù)之重要,遠遠超過一般。這里,重回函數(shù),一是復(fù)習(xí),二是要在已經(jīng)學(xué)習(xí)的基礎(chǔ)上,對函數(shù)有更深刻的理解。
    2014-10-10
  • 使用Python?http.server模塊共享文件的方法詳解

    使用Python?http.server模塊共享文件的方法詳解

    大家好,今天給大家介紹一下Python標準庫中的http.server模塊,這個模塊提供了一種簡單的方式來快速啟動一個HTTP服務(wù)器,文中給大家介紹了使用Python?http.server模塊共享文件的方法,需要的朋友可以參考下
    2024-05-05
  • Python利用卡方Chi特征檢驗實現(xiàn)提取關(guān)鍵文本特征

    Python利用卡方Chi特征檢驗實現(xiàn)提取關(guān)鍵文本特征

    卡方檢驗最基本的思想就是通過觀察實際值與理論值的偏差來確定理論的正確與否。本文將利用卡方Chi特征檢驗實現(xiàn)提取關(guān)鍵文本特征功能,感興趣的可以了解一下
    2022-12-12
  • python3 sqlite3限制條件查詢的操作

    python3 sqlite3限制條件查詢的操作

    這篇文章主要介紹了python3 sqlite3限制條件查詢的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • selenium WebDriverWait類等待機制的實現(xiàn)

    selenium WebDriverWait類等待機制的實現(xiàn)

    這篇文章主要介紹了selenium WebDriverWait類等待機制的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • 利用pytorch實現(xiàn)對CIFAR-10數(shù)據(jù)集的分類

    利用pytorch實現(xiàn)對CIFAR-10數(shù)據(jù)集的分類

    今天小編就為大家分享一篇利用pytorch實現(xiàn)對CIFAR-10數(shù)據(jù)集的分類,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • 使用Python?Pathlib模塊一站式解決文件路徑難題

    使用Python?Pathlib模塊一站式解決文件路徑難題

    在本文中,將詳細介紹pathlib模塊,包括如何創(chuàng)建路徑、檢查文件和目錄的存在、遍歷目錄、執(zhí)行文件操作等,此外,還將提供豐富的示例代碼來演示如何使用pathlib模塊來處理文件和目錄
    2023-11-11
  • 簡單的Python2.7編程初學(xué)經(jīng)驗總結(jié)

    簡單的Python2.7編程初學(xué)經(jīng)驗總結(jié)

    這篇文章主要是作者寫給Python2.7編程初學(xué)者的經(jīng)驗總結(jié),側(cè)重于包管理、代碼調(diào)試等實際使用方面,需要的朋友可以參考下
    2015-04-04
  • Python自動重試HTTP連接裝飾器

    Python自動重試HTTP連接裝飾器

    這篇文章主要介紹了Python自動重試HTTP連接裝飾器,有時候我們要去別的接口取數(shù)據(jù),可能因為網(wǎng)絡(luò)原因偶爾失敗,為了能自動重試,寫了這么一個裝飾器,可以實現(xiàn)自動重連2次,需要的朋友可以參考下
    2015-04-04

最新評論