最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python利用Pydub實(shí)現(xiàn)自動(dòng)分割音頻

 更新時(shí)間:2023年05月05日 15:25:29   作者:黃昏中起飛的貓頭鷹  
pydub是一個(gè)輕量級(jí)的音頻處理庫(kù),安裝方便,使用簡(jiǎn)單。而且pydub提供了豐富的音頻處理功能,包括切割、合并、轉(zhuǎn)換等。本文將利用Pydub實(shí)現(xiàn)自動(dòng)分割音頻功能,感興趣的可以了解一下

隨著短視頻應(yīng)用的普及,越來越多人開始了解并嘗試制作自己的短視頻作品。而在制作短視頻時(shí),背景音樂的選擇和使用也是非常重要的一步。很多人喜歡選擇一首長(zhǎng)音樂,再通過剪輯軟件將其剪成多段來使用,這種做法雖然可行,但效率較低。

在這種情況下,我們可以使用音頻分割技術(shù)來快速剪輯出需要的音頻段,以便于在短視頻中使用。在 Python 中,我們可以使用 Pydub 庫(kù)來進(jìn)行音頻分割。

I. 簡(jiǎn)介

pydub是Python的一個(gè)音頻處理庫(kù),可以處理各種音頻格式,如mp3、wav、flv等等。它是一個(gè)輕量級(jí)、快速且易于使用的庫(kù)。silence庫(kù)是pydub的一個(gè)擴(kuò)展庫(kù),可以在音頻文件中根據(jù)靜默部分進(jìn)行分割,非常方便。

II. 安裝

使用pip安裝pydub庫(kù):

pip install pydub

III. 使用

下面是一個(gè)使用pydub=分割音頻文件的示例代碼:

from pydub import AudioSegment
from pydub.silence import split_on_silence

# 讀取音頻文件
audio = AudioSegment.from_file("audio.mp3", format="mp3")

# 設(shè)置分割參數(shù)
min_silence_len = 700  # 最小靜音長(zhǎng)度
silence_thresh =-10  # 靜音閾值,越小越嚴(yán)格
keep_silence = 600  # 保留靜音長(zhǎng)度

# 識(shí)別計(jì)算分割歌曲數(shù)量
num_segments = int(audio.duration_seconds/60/3)  # 每首歌曲大概三分鐘,計(jì)算歌曲數(shù)量

# 分割音頻文件
for i in range(-10, 0):
    segments = split_on_silence(audio, min_silence_len=min_silence_len, silence_thresh=i, keep_silence=keep_silence)
    if len(segments) <= num_segments:
        print(f"分割成功,共分割出 {len(segments)} 段")
        break
    else:
        print(f"當(dāng)前閾值為 {i},分割出 {len(segments)} 段,繼續(xù)嘗試")

上面的代碼首先使用AudioSegment類從audio.mp3文件中讀取音頻數(shù)據(jù),然后設(shè)置了分割參數(shù)min_silence_len、silence_thresh和keep_silence。min_silence_len是最小靜音長(zhǎng)度,silence_thresh是靜音閾值,keep_silence是保留靜音長(zhǎng)度。這些參數(shù)的具體含義可以根據(jù)實(shí)際情況進(jìn)行調(diào)整。最后,根據(jù)分割參數(shù)使用split_on_silence函數(shù)對(duì)音頻文件進(jìn)行分割。

分割成功后,我們可以輸出分割后的音頻文件,驗(yàn)證是否達(dá)到了我們預(yù)期的效果。至此,我們就完成了音頻文件的自動(dòng)分割,可以將分割后的文件用于其他需要使用的場(chǎng)景了。

補(bǔ)充

除了利用Pydub實(shí)現(xiàn)自動(dòng)分割音頻,本文還為大家整理了其他Python實(shí)現(xiàn)音頻分割的方法,希望對(duì)大家有所幫助

方法一:

from pydub import AudioSegment
from pydub.utils import make_chunks
import os, re

# # 循環(huán)目錄下所有文件
for each in os.listdir("D:/PycharmProjects/拾音器/"):  # 循環(huán)目錄

    filename = re.findall(r"(.*?)\.mp3", each)  # 取出.mp3后綴的文件名
    print(each)
    if each:

        mp3 = AudioSegment.from_file('D:/PycharmProjects/拾音器//{}'.format(each), "mp3")  # 打開mp3文件
        #         # # mp3[17*1000+500:].export(filename[0], format="mp3") # 切割前17.5秒并覆蓋保存,與以下代碼不可同時(shí)使用
        size = 10000  # 切割的毫秒數(shù) 10s=10000

        chunks = make_chunks(mp3, size)  # 將文件切割為10s一塊

        for i, chunk in enumerate(chunks):
            chunk_name = "{}-{}.mp3".format(each.split(".")[0], i)    # 也可以自定義名字
            print(chunk_name)
            chunk.export('D:/PycharmProjects/拾音器2/{}'.format(chunk_name), format="mp3")  # 新建的保存文件夾

方法二:

"""
把原音頻,按csv中的標(biāo)注結(jié)果分割成幾個(gè)音頻,如text是無,忽略。否則從sDate到eDate 進(jìn)行分割。
"""
import os
import pandas as pd
import json
from pydub import AudioSegment
 
csv_url = "D:\csv\\"
wav_url = "D:\標(biāo)注音頻與示例\\"
save_wav = "D:\wav\\new_wav\\"
 
for path in os.listdir(csv_url):
    data_frame = pd.read_csv(csv_url + path, encoding='utf-8')
    name_list = data_frame["storeFileName"]
    result_list = data_frame["finalResult"]
    for nl, rl in zip(name_list, result_list):
        new_wav_url = save_wav + nl.split(".")[0] + "\\"
        if not os.path.exists(new_wav_url):
            os.makedirs(new_wav_url)
        result = json.loads(rl)
        txt_url = new_wav_url + nl.split(".")[0]+".txt"
        with open(txt_url, "w", encoding='utf-8') as fn:
            fn.write(nl+"\n")
            fn.write(rl)
            fn.close()
        audio = AudioSegment.from_wav(wav_url + nl)
        for text in result['text']:
            if text['defData']['text'] != '無':
                sTime = text['defData']['sTime'] * 1000
                dTime = text['defData']['dTime'] * 1000
                eTime = sTime + dTime
                # 音頻切割按開始時(shí)間到結(jié)束時(shí)間切割
                audio_chunk = audio[sTime:eTime]

                audio_chunk.export(new_wav_url + nl.split(".")[0] + "-" + str(text['id']) + ".wav", format="wav")

到此這篇關(guān)于Python利用Pydub實(shí)現(xiàn)自動(dòng)分割音頻的文章就介紹到這了,更多相關(guān)Python Pydub分割音頻內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python加載帶有注釋的Json文件實(shí)例

    Python加載帶有注釋的Json文件實(shí)例

    今天小編就為大家分享一篇Python加載帶有注釋的Json文件實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Python實(shí)現(xiàn)無損放大圖片的示例代碼

    Python實(shí)現(xiàn)無損放大圖片的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用Python語言實(shí)現(xiàn)一個(gè)簡(jiǎn)單的無損放大圖片小程序,可以支持將JPG/PNG圖片無損放大上萬像素,感興趣的可以了解一下
    2022-08-08
  • Python的NLTK模塊詳細(xì)介紹與實(shí)戰(zhàn)案例

    Python的NLTK模塊詳細(xì)介紹與實(shí)戰(zhàn)案例

    自然語言處理庫(kù)NLTK在Python中的應(yīng)用廣泛,提供了分詞、詞性標(biāo)注、句法分析等多種功能,本文介紹了NLTK的核心功能、基本概念以及通過具體實(shí)戰(zhàn)案例(如文本分詞、去除停用詞、詞干提取等)展示了其在NLP任務(wù)中的實(shí)際應(yīng)用
    2024-09-09
  • python獲取全國(guó)城市pm2.5、臭氧等空氣質(zhì)量過程解析

    python獲取全國(guó)城市pm2.5、臭氧等空氣質(zhì)量過程解析

    這篇文章主要介紹了python獲取全國(guó)城市pm2.5、臭氧等空氣質(zhì)量過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • Python?queue雙端隊(duì)列模塊及用法小結(jié)

    Python?queue雙端隊(duì)列模塊及用法小結(jié)

    雙端隊(duì)列是一種具有隊(duì)列和棧性質(zhì)的線性數(shù)據(jù)結(jié)構(gòu),本文主要介紹了Python?queue雙端隊(duì)列模塊及用法小結(jié),文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-02-02
  • Python判斷一個(gè)文件夾內(nèi)哪些文件是圖片的實(shí)例

    Python判斷一個(gè)文件夾內(nèi)哪些文件是圖片的實(shí)例

    今天小編就為大家分享一篇Python判斷一個(gè)文件夾內(nèi)哪些文件是圖片的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • 使用Python實(shí)現(xiàn)圖片批量重命名工具

    使用Python實(shí)現(xiàn)圖片批量重命名工具

    這篇文章主要為大家介紹了一個(gè)基于Python開發(fā)的圖形界面工具,用于批量重命名文件夾中的圖片文件,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以參考下
    2025-04-04
  • 用python統(tǒng)計(jì)代碼行的示例(包括空行和注釋)

    用python統(tǒng)計(jì)代碼行的示例(包括空行和注釋)

    今天小編就為大家分享一篇用python統(tǒng)計(jì)代碼行的示例(包括空行和注釋),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Django 實(shí)現(xiàn) Websocket 廣播、點(diǎn)對(duì)點(diǎn)發(fā)送消息的代碼

    Django 實(shí)現(xiàn) Websocket 廣播、點(diǎn)對(duì)點(diǎn)發(fā)送消息的代碼

    這篇文章主要介紹了Django 實(shí)現(xiàn) Websocket 廣播、點(diǎn)對(duì)點(diǎn)發(fā)送消息,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • 詳解python 注釋、變量、類型

    詳解python 注釋、變量、類型

    本文通過實(shí)例代碼較詳細(xì)的給大家介紹了python 注釋、變量、類型的相關(guān)操作及實(shí)現(xiàn)代碼,感興趣的朋友跟隨腳本之家小編一起看看吧
    2018-08-08

最新評(píng)論

威宁| 图木舒克市| 琼海市| 日喀则市| 葫芦岛市| 正宁县| 乐业县| 江源县| 沁源县| 鄂伦春自治旗| 沙坪坝区| 古浪县| 杭锦旗| 昌邑市| 彭阳县| 通许县| 顺义区| 房山区| 青铜峡市| 巫溪县| 太保市| 夏津县| 安化县| 五原县| 彰武县| 斗六市| 灵台县| 巴中市| 曲水县| 大安市| 夏河县| 海晏县| 廉江市| 荔浦县| 夏津县| 绥化市| 汪清县| 游戏| 藁城市| 巴楚县| 钦州市|