日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

python3从零学习-5.11.2、 aifc - 读取和写入AIFF和aifc文件

發(fā)布時間:2024/3/26 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python3从零学习-5.11.2、 aifc - 读取和写入AIFF和aifc文件 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

源代碼:Lib / aifc.py

這個模塊提供了對讀寫AIFF和AIFF- c文件的支持。AIFF是一種音頻交換文件格式,用于在文件中存儲數(shù)字音頻樣本。AIFF-C是該格式的更新版本,它包含了壓縮音頻數(shù)據(jù)的能力。

?

音頻文件有許多描述音頻數(shù)據(jù)的參數(shù)。采樣率或幀率是聲音每秒被采樣的次數(shù)。頻道的數(shù)量表明,如果音頻是單聲道,立體聲,或quadro。每個幀由每個通道一個樣本組成。樣本大小是以字節(jié)為單位的每個樣本的大小。因此,一個幀由nchannels *采樣字節(jié)組成,而一秒鐘的音頻由nchannels *采樣字節(jié)組成。

?

例如,CD質(zhì)量的音頻有兩個字節(jié)(16位)的樣本大小,使用兩個通道(立體聲)和有44100幀/秒的幀率。這使得幀大小為4字節(jié)(2*2),一秒鐘的值占用2*2*44100字節(jié)(176,400字節(jié))。

?

模塊aifc定義了以下功能:

?

aifc.open(file, mode=None)

打開一個AIFF或AIFF- c文件,并返回一個帶有下面描述的方法的對象實例。參數(shù)文件是命名文件的字符串或文件對象。當必須打開文件進行讀取時,模式必須為'r'或'rb',當必須打開文件進行寫入時,模式必須為'w'或'wb'。如果省略,文件。如果存在,則使用mode,否則使用'rb'。當用于寫入時,文件對象應(yīng)該是可查找的,除非您提前知道總共要寫入多少個示例并使用writeframesraw()和setnframes()。open()函數(shù)可以在with語句中使用。當with塊完成時,將調(diào)用close()方法。

open()在打開文件進行讀取時返回的對象有以下方法:

?

aifc.getnchannels()

返回音頻通道的數(shù)量(1為單聲道,2為立體聲)。

?

aifc.getsampwidth()

以字節(jié)為單位返回單個樣本的大小。

?

aifc.getframerate()

返回采樣率(每秒音頻幀數(shù))。

?

aifc.getnframes()

返回文件中音頻幀的數(shù)目。

?

aifc.getcomptype()

返回長度為4的字節(jié)數(shù)組,描述音頻文件中使用的壓縮類型。對于AIFF文件,返回值為b' none '。

?

aifc.getcompname()

返回可轉(zhuǎn)換為音頻文件中使用的壓縮類型的人類可讀描述的字節(jié)數(shù)組。對于AIFF文件,返回值為b'未壓縮'。

?

aifc.getparams()

返回一個namedtuple () (nchannels sampwidth,幀速率,nframes, comptype, compname),與得到*()方法的輸出相同。

?

aifc.getmarkers()

返回音頻文件中的標記列表。標記由三個元素組成的元組。第一個是標記ID(一個整數(shù)),第二個是標記在幀中從數(shù)據(jù)開始的位置(一個整數(shù)),第三個是標記的名稱(一個字符串)。

?

aifc.getmark(id)

返回getmarkers()中描述的具有給定id的標記的元組。

?

aifc.readframes(nframes)

從音頻文件讀取并返回下一個nframes幀。返回的數(shù)據(jù)是一個字符串,每個幀包含所有通道的未壓縮樣本。

?

aifc.rewind()

倒回讀指針。下一個readframes()將從頭開始。

?

aifc.setpos(pos)

查找指定的幀號。

?

aifc.tell()

返回當前幀號。

?

aifc.close()

關(guān)閉AIFF文件。調(diào)用此方法后,將不再使用該對象。

?

當文件被打開以便寫入時,open()返回的對象具有上述所有方法,除了readframes()和setpos()。此外,存在以下方法。get*()方法只能在調(diào)用相應(yīng)的set*()方法之后調(diào)用。在第一個writeframes()或writeframesraw()之前,除了幀數(shù)以外的所有參數(shù)都必須填寫。

?

aifc.aiff()

創(chuàng)建一個AIFF文件。默認情況下,創(chuàng)建一個AIFF-C文件,除非文件名稱以'結(jié)尾。在這種情況下,默認是一個aiff文件。

?

aifc.aifc()

創(chuàng)建一個AIFF-C文件。默認情況下,創(chuàng)建一個AIFF-C文件,除非文件名稱以'結(jié)尾。在這種情況下,默認是一個aiff文件。

?

aifc.setnchannels(nchannels)

指定音頻文件中的通道數(shù)。

?

aifc.setsampwidth(width)

指定音頻樣本的大小,以字節(jié)為單位。

?

aifc.setframerate(rate)

指定采樣頻率(單位為每秒幀數(shù))。

?

aifc.setnframes(nframes)

指定要寫入音頻文件的幀數(shù)。如果沒有設(shè)置該參數(shù),或者設(shè)置不正確,則文件需要支持查找。

?

aifc。setcomptype(type, name)

指定壓縮類型。如果沒有指定,音頻數(shù)據(jù)將不會被壓縮。在AIFF文件中,壓縮是不可能的。name參數(shù)應(yīng)該是人類可讀的對壓縮類型的描述,作為字節(jié)數(shù)組,類型參數(shù)應(yīng)該是長度為4的字節(jié)數(shù)組。目前支持以下壓縮類型:b' none ', b' ulaw ', b' alaw ', b' g722 '。

?

aifc。setparams(nchannels, sampwidth, framerate, comptype, compname)

立即設(shè)置以上所有參數(shù)。參數(shù)是由各種參數(shù)組成的元組。這意味著可以使用getparams()調(diào)用的結(jié)果作為setparams()的參數(shù)。

?

aifc。setmark(id, pos, name)

在給定位置添加具有給定id(大于0)和給定名稱的標記??梢栽赾lose()之前的任何時候調(diào)用此方法。

?

aifc.tell()

返回輸出文件中的當前寫入位置。與setmark()結(jié)合使用。

?

aifc.writeframes(data)

將數(shù)據(jù)寫入輸出文件。此方法只能在設(shè)置了音頻文件參數(shù)后調(diào)用。

?

aifc.writeframesraw(data)

類似于writeframes(),除了音頻文件的頭沒有被更新。

?

aifc.close ()

關(guān)閉AIFF文件。文件的頭被更新以反映音頻數(shù)據(jù)的實際大小。調(diào)用此方法后,將不再使用該對象。

?

總結(jié)

以上是生活随笔為你收集整理的python3从零学习-5.11.2、 aifc - 读取和写入AIFF和aifc文件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。