0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用moviepy來分割音頻流并降低碼率

科技綠洲 ? 來源:Python實用寶典 ? 作者:Python實用寶典 ? 2023-10-16 11:19 ? 次閱讀

本文主要介紹如何使用moviepy來 分割音頻流并降低碼率 。

1.準(zhǔn)備

開始之前,你要確保Pythonpip已經(jīng)成功安裝在電腦上,如果沒有,可以訪問這篇文章:超詳細(xì)Python安裝指南 進(jìn)行安裝。

**(可選1) **如果你用Python的目的是數(shù)據(jù)分析,可以直接安裝Anaconda:Python數(shù)據(jù)分析與挖掘好幫手—Anaconda,它內(nèi)置了Python和pip.

**(可選2) **此外,推薦大家用VSCode編輯器,它有許多的優(yōu)點(diǎn):Python 編程的最好搭檔—VSCode 詳細(xì)指南。

請選擇以下任一種方式輸入命令安裝依賴

  1. Windows 環(huán)境 打開 Cmd (開始-運(yùn)行-CMD)。
  2. MacOS 環(huán)境 打開 Terminal (command+空格輸入Terminal)。
  3. 如果你用的是 VSCode編輯器 或 Pycharm,可以直接使用界面下方的Terminal.
pip install moviepy

2.Moviepy分割音頻

要使用MoviePy庫按每30秒一個切割上傳上來的mp3/wav并降低文件碼率,我們可以按照以下步驟操作。

1、導(dǎo)入MoviePy庫和所需的其他庫:

import os
from moviepy.editor import *

2、定義一個函數(shù)來切割音頻文件并降低碼率:

def split_audio_file(filename, split_duration=30, bitrate=16000):
    # 讀取音頻文件
    audio = AudioFileClip(filename)

    # 計算文件總時長和切割點(diǎn)
    total_duration = audio.duration
    split_points = list(range(0, int(total_duration), split_duration))
    split_points.append(int(total_duration))
    filelist = []
    # 切割音頻文件并降低碼率
    for i in range(len(split_points) - 1):
        start_time = split_points[i]
        end_time = split_points[i+1]
        split_audio = audio.subclip(start_time, end_time)
        split_audio.write_audiofile(f"{os.path.splitext(filename)[0]}_{i}.wav", fps=bitrate)
        filelist.append(f"{os.path.splitext(filename)[0]}_{i}.wav")
    audio.close()
    return filelist

函數(shù)接受三個參數(shù):filename表示要處理的音頻文件名,split_duration表示要按照多長時間切割文件(單位為秒),bitrate表示要設(shè)置的輸出碼率(單位為比特率)。

在函數(shù)中,我們先讀取音頻文件,然后計算切割點(diǎn)。接著,我們用循環(huán)遍歷每個切割點(diǎn),將音頻文件切割成小文件并降低碼率,最后輸出為新的音頻文件。

3、調(diào)用函數(shù)處理音頻文件:

filename = "your_audio_file.mp3"  # 要處理的音頻文件名
split_duration = 30  # 按每30秒一個切割文件
bitrate = "64k"  # 設(shè)置輸出碼率為64kbps
split_audio_file(filename, split_duration, bitrate)

在調(diào)用函數(shù)時,將要處理的音頻文件名、切割文件的時長和輸出碼率作為參數(shù)傳遞給函數(shù)即可。該函數(shù)將把處理后的音頻文件輸出到當(dāng)前目錄下。

3.Mp3的輸出碼率

請注意,不能把輸出碼率調(diào)的太低。MP3文件的輸出碼率會影響音頻的質(zhì)量和文件大小。輸出碼率越高,音頻的質(zhì)量越好,但文件大小也會越大。相反,輸出碼率越低,音頻的質(zhì)量會降低,但文件大小會更小。

MP3文件的碼率是指每秒鐘所需的比特數(shù)(即比特率)。在進(jìn)行編碼時,MP3算法會根據(jù)設(shè)置的碼率來決定壓縮音頻數(shù)據(jù)的量,從而影響輸出文件的大小和質(zhì)量。通常,較高的碼率會產(chǎn)生更高的音頻質(zhì)量,但也會占用更多的存儲空間和帶寬。

如果輸出碼率設(shè)置得太低,會導(dǎo)致音頻質(zhì)量受到明顯的損失,可能會出現(xiàn)音頻雜音、失真和低頻截斷等問題。如果輸出碼率設(shè)置得太高,文件大小會變得非常大,可能會使傳輸和存儲變得困難。

因此,在選擇輸出碼率時,需要根據(jù)具體情況權(quán)衡音頻質(zhì)量和文件大小的要求,以及傳輸和存儲的限制。一般來說,128 kbps是常用的MP3輸出碼率,可產(chǎn)生較好的音質(zhì)和適當(dāng)?shù)奈募笮 ?/p>

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 音頻
    +關(guān)注

    關(guān)注

    29

    文章

    2830

    瀏覽量

    81257
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4277

    瀏覽量

    62323
  • 編輯器
    +關(guān)注

    關(guān)注

    1

    文章

    800

    瀏覽量

    31055
收藏 人收藏

    評論

    相關(guān)推薦

    基于模式的實時音頻分割與控制系統(tǒng)

    單位的回溯和前進(jìn);飛行員語音指令的再次搜尋和確認(rèn);語言教學(xué)中的改變語速和根據(jù)教學(xué)模式的控制;基于語音的銀行排隊系統(tǒng)等等。為此,設(shè)計了音頻分割與控制系統(tǒng),實現(xiàn)了自動識別聲音間歇,并在分割
    發(fā)表于 03-05 20:40

    音頻分割和多模式控制的設(shè)計與實現(xiàn)

    目前,很多音頻相關(guān)的應(yīng)用系統(tǒng)都迫切要求對音頻流進(jìn)行實時的識別\分割和以某種特定模式(PAT-TERN)進(jìn)行播放,而不再是錄音、播放等簡單的回放控制.為此,我們設(shè)計了音頻
    發(fā)表于 03-06 22:42

    音頻分割和多模式控制的設(shè)計與實現(xiàn)

    目前,很多音頻相關(guān)的應(yīng)用系統(tǒng)都迫切要求對音頻流進(jìn)行實時的識別\分割和以某種特定模式(PAT-TERN)進(jìn)行播放,而不再是錄音\播放等簡單的回放控制.為此,我們設(shè)計了音頻
    發(fā)表于 03-06 22:44

    為什么TI8148的h264編碼碼率總是超過設(shè)置的參數(shù)?

    Hi all, ? ? ? ?測試TI8148(DVRRDK4.0)編碼效率的時候發(fā)現(xiàn),實際傳輸?shù)?b class='flag-5'>碼率最大值普遍超過設(shè)置的碼率低碼率下平均值也經(jīng)常超過設(shè)置的碼率參數(shù)。編碼方式使用的
    發(fā)表于 05-25 06:07

    視頻碼率很大,請問有沒有好方法控制碼率?

    運(yùn)動量很大時,圖像的碼率會很大,會達(dá)到10M左右,視頻可能會卡頓或者花屏,CBR與VBR均不能降低碼率。請問:有沒有好方法控制碼率?謝謝。
    發(fā)表于 05-31 05:31

    請教關(guān)于TMS320DM8148音視頻編解碼器應(yīng)用

    200ms,低碼率要求 標(biāo)清分辨率的碼率低于512K,720P25分辨率低于2M,不知實際的效果怎樣?2)要求HE-AAC,AAC-LC音頻編碼3)要求音視頻采用 TS流進(jìn)行封裝請問
    發(fā)表于 07-25 06:00

    如何實現(xiàn)低碼率語音編碼MELP聲碼器?

    語音編碼技術(shù)在當(dāng)今數(shù)字通信尤其在無線系統(tǒng)中發(fā)揮著越來越重要的作用。利用語音編碼技術(shù)可有效降低信息存儲量、提高信道利用率?;旌霞罹€性預(yù)測(MELP)語音編碼算法能在較低碼率下提供較高的語音質(zhì)量、自然度和清晰度,已成為美國國防部新的2.4 Kb/s的語音編碼標(biāo)準(zhǔn)。
    發(fā)表于 08-19 07:34

    怎樣去設(shè)計一種低碼率實時H.264視頻編碼器?

    一種基于NiosII的低碼率實時H.264視頻編碼器設(shè)計
    發(fā)表于 06-07 07:06

    基于向量場節(jié)點(diǎn)的圖像分割算法

    人工干預(yù)使蛇模型只能用于半自動的圖像分割,該文在梯度向量(GVF)蛇模型的基礎(chǔ)上提出一種基于場節(jié)點(diǎn)與最小路徑方法的全自動圖像分割算法。在圖像的GVF 場上檢測出
    發(fā)表于 03-25 08:53 ?14次下載

    基于NiosII的低碼率實時H264視頻編碼器

    筆者基于NiosII 設(shè)計了一種低碼率實時應(yīng)用的編碼系統(tǒng)。該系統(tǒng)充分利用FPGA 的并行設(shè)計結(jié)構(gòu),對視頻數(shù)據(jù)采用高壓縮比的H.264 標(biāo)準(zhǔn)編碼,能很好地滿足低碼率實時編碼的要求
    發(fā)表于 11-26 15:22 ?35次下載

    基于模式的實時音頻分割與控制系統(tǒng)

    摘要:在音頻相關(guān)的系統(tǒng)中,迫切需要利用語音識別技術(shù),對音頻自動識別和分割,以及設(shè)計不同的模式,利用消息-動作自動機(jī)進(jìn)行各種復(fù)雜控制。介紹了一種新的基于模式的
    發(fā)表于 08-31 17:24 ?12次下載

    低碼率語音編碼MELP的SOPC實現(xiàn)

    討論了低碼率語音編碼MELP的編解碼過程,有效降低了語音編碼碼率并能使說話者個人語音特征減弱,特別適合需要弱化說話者語音特點(diǎn)的場合。給出了其FPGA的硬件實現(xiàn)框圖,據(jù)此
    發(fā)表于 12-01 16:57 ?33次下載
    <b class='flag-5'>低碼率</b>語音編碼MELP的SOPC實現(xiàn)

    低碼率語音編碼MELP聲碼器的SOPC實現(xiàn)

    利用語音編碼技術(shù)可有效降低信息存儲量、提高信道利用率?;旌霞罹€性預(yù)測(MELP)語音編碼算法能在較低碼率下提供較高的語音質(zhì)量、自然度和清晰度,已成為美國國防部新的2.
    發(fā)表于 06-03 09:07 ?1364次閱讀
    <b class='flag-5'>低碼率</b>語音編碼MELP聲碼器的SOPC實現(xiàn)

    利用FPGA的并行設(shè)計結(jié)構(gòu)實現(xiàn)低碼率實時應(yīng)用H.264標(biāo)準(zhǔn)編碼系統(tǒng)設(shè)計

    H.264標(biāo)準(zhǔn)作為新一代視頻編碼標(biāo)準(zhǔn),是面向多比特率的視頻編碼標(biāo)準(zhǔn),也稱JVT/AVC標(biāo)準(zhǔn),既可用于高碼率的HDTV和數(shù)字存儲系統(tǒng),也可用于低碼率的實時通信系統(tǒng)。在相同的圖像質(zhì)量情況下,H.264比H.263和MPEG一4可以節(jié)省20%~50%的
    的頭像 發(fā)表于 11-19 09:40 ?2474次閱讀
    利用FPGA的并行設(shè)計結(jié)構(gòu)實現(xiàn)<b class='flag-5'>低碼率</b>實時應(yīng)用H.264標(biāo)準(zhǔn)編碼系統(tǒng)設(shè)計

    基于NiosII的低碼率實時H.264視頻編碼器

    關(guān)鍵詞:NiosII , 視頻編碼 引言 H.264標(biāo)準(zhǔn)作為新一代視頻編碼標(biāo)準(zhǔn),是面向多比特率的視頻編碼標(biāo)準(zhǔn),也稱JVT/AVC標(biāo)準(zhǔn),既可用于高碼率的HDTV和數(shù)字存儲系統(tǒng),也可用于低碼率的實時通信
    發(fā)表于 02-27 07:04 ?477次閱讀
    基于NiosII的<b class='flag-5'>低碼率</b>實時H.264視頻編碼器