日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

moviepy音视频开发:音频剪辑基类AudioClip

發布時間:2024/3/26 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 moviepy音视频开发:音频剪辑基类AudioClip 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? 前往老猿Python博文目錄 ?

一、背景知識介紹

1.1、聲音三要素:

  • 音調:人耳對聲音高低的感覺稱為音調(也叫音頻)。音調主要與聲波的頻率有關。聲波的頻率高,則音調也高。
  • 音量:也就是響度。人耳對聲音強弱的主觀感覺稱為響度。響度和聲波振動的幅度有關。一般說來,聲波振動幅度越大則響度也越大。
  • 音色:也就是音品。音色是人們區別具有同樣響度、同樣音調的兩個聲音之所以不同的特性,或者說是人耳對各種頻率、各種強度的聲波的綜合反應。音色與聲波的振動波形有關,或者說與聲音的頻譜結構有關。
    更多關于聲音三要素的內容請參考《音頻基礎知識》。

2.1、數字音頻常用概念

  • 采樣率(Sample Rate):每秒從連續信號中提取并組成離散信號的采樣個數,它用赫茲(Hz)來表示。一般音樂CD的采樣率是44100Hz,所以視頻編碼中的音頻采樣率保持在這個級別就完全足夠了,通常視頻轉換器也將這個采樣率作為默認設置。常用的音頻采樣頻率有8kHz、11.025kHz、22.05kHz、16kHz、37.8kHz、44.1kHz、48kHz等,采樣頻率越高音質越好,但資源消耗越高。22.05kHz的采樣頻率是常用的, 44.1kHz已是CD音質, 超過48kHz或96kHz的采樣對人耳已經沒有意義
  • 采樣位數(Sample Bits):也稱采樣精度,有點類似顏色表示的位數,指使用數字表示聲音信號的數字的二進制位數,位數越多表示聲音的精度越高。1 字節(8bit) 只能表示 256 中聲音值,2 字節(16bit) 可以表示 65536 個聲音值等。采用位數越高聲音精度越高,播放的聲音與源音的差距越小,但存儲開銷越大
  • 通道數(channel):也稱為聲道數,即聲音通道的數目,分為單聲道mono;立體聲stereo。聲道多,效果好,兩個聲道,說明只有左右兩邊有聲音傳過來,四聲道,說明前后左右都有聲音傳過來。moviepy1.03的版本只支持單聲道和雙聲道。
  • 幀(frame):幀記錄了一個聲音單元,其長度為樣本長度(采樣位數)和通道數的乘積
  • 碼率(Bit Rate):也稱為位速或比特率,指視頻或音頻文件在單位時間內使用的數據流量,針對編碼格式,表示壓縮編碼后每秒的音頻數據量大小。計算公式:比特率 = 采樣率 x 采樣位數 x 通道數,單位kbps,這里的k為1000
  • 塊(chunk):一般的音頻都是分為若干個塊(chunk)保存,每個chunk塊包含音頻的數據片段和控制信息,可能包含了塊的控制信息如塊的大小、聲道、采樣率、位深等信息以及真正的音頻數據流(大小由控制頭確認)等,不同格式的文件塊的控制信息內容不同。在moviepy中處理音頻(如保存音頻)時,塊就是通用的數據塊,沒有考慮控制信息,通過設定塊大小來讀寫指定大小的數據。
  • 更多關于音頻參數的說明請參考《音頻基礎知識》、《音頻 屬性詳解(涉及采樣率、通道數、位數、比特率、幀等)》。

    二、AudioClip簡介

    AudioClip是一個音頻剪輯的基類,其父類是Clip。AudioClip帶有make_frame屬性,該屬性根據時間參數t返回一個形如[f_t]或[f_t1,f_t2]的列表,[f_t]、[f_t1,f_t2]分別對應單聲道音頻numpy數組和立體聲音頻numpy數組。這些數組的每個元素都是為-1到1之間的浮點數。

    老猿理解AudioClip對應的音頻幀數據是一個列表,這個列表有如下特征:
    1、列表的長度等于音頻的通道數,目前僅支持1和2,即單聲道和雙聲道;
    2、列表中的元素為-1到1之間的浮點數,其精度與采樣位數相關;
    3、列表中元素的大小除了表示音調還表征了音量。

    三、構造方法

    調用語法:

    __init__(self, make_frame=None, duration=None, fps=None)

    參數說明:
    • make_frame:幀的構建方法,幀的構建方法用于根據時間構建幀,該方法是get_frame獲取幀時調用的方法。幀的構建可以從已有剪輯中獲取或變換,也可以代碼自己填充;
    • duration:音頻剪輯的時長
    • fps:這里的fps可以理解為音頻的采用率
    功能說明:

    構造方法用于使用參數同名的實例變量記錄參數傳入的make_frame、duration和fps,如果make_frame非空則會通過make_frame獲取開始位置的音頻幀后獲取音頻的通道數記錄到實例變量nchannels屬性,如果duration非空,則會同時更新實例變量duration和end。

    四、iter_chunks方法

    iter_chunks方法返回一個迭代器,通過這個迭代器可以返回一個包含音頻剪輯內容塊的數組。

    調用語法:

    iter_chunks(self, chunksize=None, chunk_duration=None, fps=None,quantize=False, nbytes=2, logger=None)

    參數說明:
    • chunksize:塊的大小
    • chunk_duration:塊包含的音頻時長,其值不為None時,則chunksize=chunk_duration*fps向下取整,如果chunksize有值也被計算值覆蓋
    • fps:塊輸出的采樣頻率,如果為None則等于剪輯的fps屬性
    • quantize:是否量化處理,如果為True,則將音頻幀對應的音頻數據進行如下處理:
  • 將每個元素的大小超出[-0.99,0.99]這個范圍的,則大于0.99的被設置為0.99,小于-0.99的被設置為-0.99
  • 將每個元素的值乘以2的n次方,n的計算方法為:n=采樣位數-1,采用位數=nbytes*8
  • 取整返回
    • nbytes:音頻采用位數,缺省值為2字節即16位
    • logger:是否開啟日志,字符串類型,"bar"表示進度條、None 表示不設置、或任何程序日志記錄器的名字

    返回的迭代器包含的數據塊數=(fps*剪輯的時長)/chunksize+1,這個方法可以在需要對音頻剪輯進行變換處理時使用。

    五、to_soundarray方法

    to_soundarray方法將音頻片段轉換為一個可以使用pygame播放或者使用wav格式保存的數組。

    調用語法:

    to_soundarray(self, tt=None, fps=None, quantize=False, nbytes=2, buffersize=50000)

    參數說明:
    • tt:為時間浮點數或時間浮點數的列表,用于獲取對應時間的音頻數據
    • fps:采用頻率,如果為None則等于剪輯的fps屬性
    • quantize:是否量化處理,請參見iter_chunks方法參數說明
    • nbytes:音頻采用位數,缺省值為2字節即16位
    • buffersize:緩沖區大小,從剪輯中轉換時,該大小即為處理塊的大小

    返回值為一個音頻數據的np一維數組或二維數組,分別對應tt為時間浮點數或時間浮點數的列表兩種情況。如果quantize為False,返回數組的元素為【-1,1】之間的浮點數,否則為整數(請參見iter_chunks方法參數說明)。

    六、max_volume方法

    max_volume方法是取音頻剪輯的最大音量,最大音量也就是音頻數組元素絕對值的最大值。

    調用語法:max_volume(self, stereo=False, chunksize=50000, logger=None)
    說明:
    • stereo:是否立體聲,該參數為True且剪輯的聲道數為2才會在處理時作為立體聲處理,否則作為單聲道處理

    在老猿的驗證環境下,max_volume存在兩個BUG,詳細的情況請參考《moviepy音視頻剪輯:AudioClip的max_volume方法報TypeError: bad operand type for abs(): ‘list‘錯》、《moviepy AudioClip的max_volume方法報錯ValueError: operands could not be broadcast together with shapes(2,)》的介紹。

    七、write_audiofile方法

    write_audiofile方法用于將音頻剪輯的內容輸出到指定文件,該方法替換了低版本的to_audiofile方法。

    調用語法:write_audiofile(self, filename, fps=None, nbytes=2, buffersize=2000, codec=None, bitrate=None, ffmpeg_params=None, write_logfile=False, verbose=True, logger='bar')
    參數說明:
    • filename:文件名,類型包括文件如mp3、wav、ogg、m4a等都可以
    • fps:幀率,與音頻采樣率含義相同,每秒編碼的幀數,如果為None且音頻剪輯設置了fps則以剪輯額的fps屬性值作為輸出,否則以缺省值44100輸出
    • nbytes:音頻的采用的位數
    • buffersize:輸出緩沖區大小,以該大小作為輸出時數據讀取塊的大小
    • bitrate:碼率,音頻比特率
    • codec:用于音頻編碼的編解碼器,如果沒有指定則系統根據輸出文件名類型來確認。默認值為“libmp3lame”,除非視頻擴展名為“ogv”或“webm”,在這2種情況下,默認值為“libvorbis”。 如果是16位wav音頻設置為 ‘pcm_s16le’、32位wav音頻則設置為 ‘pcm_s32le’
    • write_logfile:如果為True,將為音頻輸出記錄日志文件。日志文件將以“.log”結尾,包含輸出文件的名稱
    • verbose:已經廢棄使用,留下來是為了兼容性,以前用于打開/關閉消息。現在使用logger=None。
    • ffmpeg_params:需額外傳遞的其他ffmpeg參數,用列表傳遞,形如:[’-option1’,‘value1’,’-option2’,‘value2’]
    • logger:字符串類型,"bar"表示進度條、None 表示不設置、或任何程序日志記錄器的名字

    更多moviepy的介紹請參考《PyQt+moviepy音視頻剪輯實戰文章目錄》或《moviepy音視頻開發專欄》。

    關于收費專欄

    本文為免費專欄文章,本文對應收費專欄文章《moviepy音視頻開發:音頻剪輯基類AudioClip詳解》。與本文章內容對比,收費專欄部分文章內容介紹更深入或案例更多。

    老猿的付費專欄《使用PyQt開發圖形界面Python應用》專門介紹基于Python的PyQt圖形界面開發基礎教程,付費專欄《moviepy音視頻開發專欄》詳細介紹moviepy音視頻剪輯合成處理的類相關方法及使用相關方法進行相關剪輯合成場景的處理,兩個專欄加起來只需要19.9元,都適合有一定Python基礎但無相關專利知識的小白讀者學習。這2個收費專欄都有對應免費專欄,只是收費專欄的文章介紹更具體、內容更深入、案例更多。

    對于缺乏Python基礎的同仁,可以通過老猿的免費專欄《專欄:Python基礎教程目錄》從零開始學習Python。

    如果有興趣也愿意支持老猿的讀者,歡迎購買付費專欄。

    跟老猿學Python、學5G!

    ? ? 前往老猿Python博文目錄 ?

    總結

    以上是生活随笔為你收集整理的moviepy音视频开发:音频剪辑基类AudioClip的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 日本人性爱视频 | 免费在线观看不卡av | 蜜桃av噜噜一区二区三区麻豆 | 四色永久访问 | 中文字幕在线观看视频www | 激情综合激情 | 91九色蝌蚪 | 岛国av动作片 | 激情综合图区 | 国产高清视频一区二区 | 欧美黑人做爰爽爽爽 | 欧美精品一级 | 疯狂做受xxxx国产 | h片在线播放 | 中文字幕日韩欧美 | 国产成人资源 | 免费av一级片 | av一道本| 福利社午夜影院 | 日韩有码专区 | 中文字幕第十一页 | www视频在线观看免费 | 亚洲色婷婷一区二区三区 | 青青草午夜 | 欧美一区二区三区久久久 | 国产成人精品午夜福利Av免费 | 久久久久18 | 国产精品另类 | 亚洲视频在线观看一区二区三区 | 国产盗摄精品一区二区酒店 | 欧美日韩免费在线 | 久久久久久久久久久综合 | 在线观看a网站 | 操操综合 | 国产一区二区波多野结衣 | 热播之家 | 欧美精品一区二区三区在线播放 | 国产精品黑丝 | 成人www视频 | 嫩草国产在线 | 不卡av网站 | 暗呦丨小u女国产精品 | 96国产视频 | 欧美精品做受xxx性少妇 | 久久国产成人精品 | 欧美天天性| 国自产拍偷拍精品啪啪一区二区 | 99碰碰| 制服.丝袜.亚洲.中文.综合懂 | 久久久精品国产sm调教网站 | 精品国产第一页 | 国产精品二区视频 | 日韩精品久久一区二区 | 蜜乳av懂色av粉嫩av | 美国av大片| 91美女视频在线观看 | av直接看| 影音先锋婷婷 | 真实的国产乱xxxx在线91 | 亚州av片| 国产又粗又大又爽视频 | 欧产日产国产精品98 | 爱情岛论坛永久入址测速 | 性按摩玩人妻hd中文字幕 | 驯服少爷漫画免费观看下拉式漫画 | 国产玖玖 | 亚洲天堂久久 | 久久久影视 | 超碰日韩在线 | av免费观看网址 | 久久精品国产亚洲av嫖农村妇女 | av黄色在线播放 | 韩国伦理在线看 | 精品色哟哟 | 蜜臀久久99静品久久久久久 | 激情欧美一区二区免费视频 | 日本一区二区三区视频在线 | 成人午夜视频一区二区播放 | 啪啪五月天| 中国丰满人妻videoshd | 黄色三级大片 | 成人漫画网站 | 999精品在线观看 | 国产一区 在线播放 | 欧美一级不卡视频 | 日本少妇aaa | 欧美xxxxx高潮喷水麻豆 | 综合久久国产 | 免费成人美女女电影 | 人人人妻人人澡人人爽欧美一区 | 少妇精品无码一区二区免费视频 | 一区二区三区日 | 女人叫床高潮娇喘声录音mp3 | 亚洲av片不卡无码久久 | 老版水浒传83版免费播放 | 热久久久 | 天天玩夜夜操 | 国产免费一区二区三区最新6 | 久久精品视频免费观看 |