国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

(Python) 在Python中對(duì)WAV音頻文件進(jìn)行分割與拼接

這篇具有很好參考價(jià)值的文章主要介紹了(Python) 在Python中對(duì)WAV音頻文件進(jìn)行分割與拼接。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

在本文中,我們將介紹如何使用Python來(lái)處理音頻文件,主要集中在wav文件的分割和拼接方面。

1. 分割WAV文件

對(duì)于音頻處理來(lái)說(shuō),分割文件是一項(xiàng)基本任務(wù)。在Python中,我們可以使用wave模塊來(lái)讀取.wav文件,并使用SciPy中的signal模塊來(lái)進(jìn)行分割。

1.1. 讀取WAV文件

使用wave.open()函數(shù)打開(kāi).wav文件,我們可以得到文件的基本信息,如聲道數(shù)、采樣率等。

import wave

wf = wave.open("audio.wav", "rb")

# 獲取音頻文件基本信息
nchannels = wf.getnchannels()  # 聲道數(shù)
sampwidth = wf.getsampwidth()  # 采樣位寬
framerate = wf.getframerate()  # 采樣率
nframes = wf.getnframes()      # 采樣點(diǎn)數(shù)

1.2. 分割WAV文件

我們可以通過(guò)設(shè)置起始和結(jié)束幀數(shù),來(lái)實(shí)現(xiàn)wav文件的分割。下面的代碼是將一個(gè)10s的音頻文件按照2s的長(zhǎng)度分割為5個(gè)文件。

import wave
import numpy as np
from scipy import signal

wf = wave.open("audio.wav", "rb")
nchannels = wf.getnchannels()
sampwidth = wf.getsampwidth()
framerate = wf.getframerate()
nframes = wf.getnframes()

duration = nframes / framerate
print("音頻文件時(shí)長(zhǎng):%.2fs" % duration)

# 設(shè)置分割的長(zhǎng)度為2s
length = 2 * framerate
start = 0

for i in range(5):
    # 截取片段
    wf.setpos(start)
    data = wf.readframes(length)

    # 保存為新文件
    new_wf = wave.open("segment_%d.wav" % i, "wb")
    new_wf.setnchannels(nchannels)
    new_wf.setsampwidth(sampwidth)
    new_wf.setframerate(framerate)
    new_wf.writeframes(data)
    new_wf.close()
    
    # 更新起始位置
    start += length

2. 拼接WAV文件

除了分割文件,我們還需要拼接文件的功能。在Python中,我們同樣可以使用wave模塊來(lái)進(jìn)行wav文件的讀取,并使用numpy中的concatenate函數(shù)來(lái)進(jìn)行拼接。

2.1. 讀取多個(gè)WAV文件

使用wave.open()函數(shù)打開(kāi)多個(gè).wav文件,我們可以將它們讀入內(nèi)存中,然后使用numpy中的concatenate函數(shù)來(lái)進(jìn)行拼接。下面的代碼將5個(gè)2s的音頻文件拼接為一個(gè)10s的文件。

import wave
import numpy as np

# 讀取多個(gè).wav文件
wfiles = []
for i in range(5):
    wfiles.append(wave.open("segment_%d.wav" % i, "rb"))

# 獲取音頻文件基本信息
nchannels = wfiles[0].getnchannels()
sampwidth = wfiles[0].getsampwidth()
framerate = wfiles[0].getframerate()

# 拼接為一個(gè)文件
data = np.array([])
for wf in wfiles:
    frames = wf.readframes(wf.getnframes())
    frames = np.frombuffer(frames, dtype=np.int16)
    data = np.append(data, frames)

# 保存為新文件
wf = wave.open("output.wav", "wb")
wf.setnchannels(nchannels)
wf.setsampwidth(sampwidth)
wf.setframerate(framerate)
wf.writeframes(data.tobytes())
wf.close()

總結(jié):

通過(guò)wave模塊和SciPy中的signal模塊,我們可以輕松地對(duì).wav文件進(jìn)行分割和拼接。這將為音頻處理和音頻數(shù)據(jù)分析提供一定的便利。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-831850.html

到了這里,關(guān)于(Python) 在Python中對(duì)WAV音頻文件進(jìn)行分割與拼接的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 音頻數(shù)據(jù)分割單獨(dú)處理后再拼接出現(xiàn)跳躍間斷點(diǎn)的處理方法

    音頻數(shù)據(jù)分割單獨(dú)處理后再拼接出現(xiàn)跳躍間斷點(diǎn)的處理方法

    ? +hezkz17進(jìn)數(shù)字音頻系統(tǒng)研究開(kāi)發(fā)交流答疑 1如圖所示 ? 問(wèn)題1: 對(duì)于一個(gè)81920字節(jié)的音頻文件,如果是分割成小塊4096輸入(無(wú)重疊,均分),在頻域上做去噪算法,每4k數(shù)據(jù)返回到時(shí)域上再拼接成80k的處理結(jié)果文件,發(fā)現(xiàn)處理結(jié)果有異常有跳躍間斷點(diǎn),像是頻譜泄露?分割也需要

    2024年02月16日
    瀏覽(21)
  • Python中對(duì)基本文件操作

    Python中對(duì)基本文件操作

    保存數(shù)據(jù)放在磁盤中 f=open(‘文件’,‘w’)或者f=open(‘文件’,‘r’) 3.1 寫數(shù)據(jù)(write) 如果文件不存在那么創(chuàng)建,如果存在那么就先清空,然后寫入數(shù)據(jù) 對(duì)象=open(“文件”,w) 對(duì)象.write(“寫入數(shù)據(jù)”) 對(duì)象.close 3.2讀數(shù)據(jù)(read) 以讀的方式打開(kāi)文件,讀取數(shù)據(jù) 對(duì)象 = open(“文

    2024年02月12日
    瀏覽(25)
  • android音頻學(xué)習(xí)筆記之wav頭文件

    android音頻學(xué)習(xí)筆記之wav頭文件

    如何存儲(chǔ)和解析wav文件 定義:wav格式,就是微軟開(kāi)發(fā)的一種文件格式規(guī)范,文件分為兩部分 (1)第一部分:文件頭,記錄重要的參數(shù)信息,對(duì)于音頻而言,包括:采樣率,通道數(shù),位寬等等 (2)第二部分:數(shù)據(jù)塊,也就是一幀一幀的二進(jìn)制數(shù)據(jù),對(duì)于音頻而言,就是原始

    2023年04月08日
    瀏覽(21)
  • Unity加載并播放本地.wav音頻文件

    Unity加載并播放本地.wav音頻文件

    使用UnityWebRequestMultimedia加載.wav文件,并轉(zhuǎn)成AudioClip對(duì)象,然后使用AudioSource進(jìn)行播放。播放使用協(xié)程函數(shù)。 加載你的電腦桌面上的test.wav文件并播放。 如需要加載其它格式音頻,請(qǐng)將UnityWebRequest www = UnityWebRequestMultimedia.GetAudioClip(“file:///” + fileName, AudioType.WAV);中的AudioType換

    2024年02月04日
    瀏覽(32)
  • python中對(duì)文件路徑的獲取

    1、獲取當(dāng)前文件的絕對(duì)路徑 輸出:E:pythonprojecttestpath_test.py 2、獲取當(dāng)前文件的所在目錄 輸出:E:pythonprojecttest 3、獲取當(dāng)前文件所在目錄的上一級(jí)目錄 輸出:E:pythonproject 4、獲取指定文件的路徑(例如想獲得project文件夾下的test.txt文件路徑) 輸出: E:pythonprojecttest

    2024年02月03日
    瀏覽(26)
  • python加上ffmpeg實(shí)現(xiàn)音頻分割

    python加上ffmpeg實(shí)現(xiàn)音頻分割

    前言: 這是一個(gè)系列的文章,主要是使用python加上ffmpeg來(lái)對(duì)音視頻文件進(jìn)行處理,包括音頻播放、音頻格式轉(zhuǎn)換、音頻文件分割、視頻播放等。 系列文章鏈接: 鏈接1: python使用ffmpeg來(lái)制作音頻格式轉(zhuǎn)換工具(優(yōu)化版) 鏈接2:<Python>PyQt5+ffmpeg,簡(jiǎn)單視頻播放器的編寫(解

    2024年02月04日
    瀏覽(22)
  • 如何進(jìn)行字符串的分割和拼接?

    字符串的分割和拼接是在C語(yǔ)言編程中常見(jiàn)的操作,尤其在處理文本數(shù)據(jù)時(shí)非常重要。在本文中,我將詳細(xì)解釋如何在C語(yǔ)言中進(jìn)行字符串的分割和拼接,包括使用標(biāo)準(zhǔn)庫(kù)函數(shù)和手動(dòng)操作字符串?dāng)?shù)組的方法,以及一些實(shí)際應(yīng)用示例。 字符串分割是將一個(gè)字符串拆分成多個(gè)子字符

    2024年02月09日
    瀏覽(18)
  • C# 將音頻PCM數(shù)據(jù)封裝成wav文件

    之前實(shí)現(xiàn)了《C++ 將音頻PCM數(shù)據(jù)封裝成wav文件》,最近將其改成了C#版本。使用C#實(shí)現(xiàn)錄音功能時(shí)還是需要寫wav文件的,直接用C#實(shí)現(xiàn)也是比較簡(jiǎn)單的,這樣可以免去不必要的依賴。 首先需要構(gòu)造wav頭部,wav文件音頻信息全部保存在頭部,我們要做的就是在PCM數(shù)據(jù)的前面加入w

    2024年02月07日
    瀏覽(21)
  • 音頻文件PCM、WAV、MP3的區(qū)別以及文件合并

    音頻文件PCM、WAV、MP3的區(qū)別以及文件合并

    采樣率即采樣頻率,指的一秒內(nèi)的采樣次數(shù),它反映了采樣點(diǎn)之間的間隔大小。常說(shuō)的 44.1KHz 采樣率,也即 1 秒采集了 44100 個(gè)樣本。間隔越小,丟失的信息越少,數(shù)字聲音就越逼真細(xì)膩,要求的存儲(chǔ)量也就越大。由于計(jì)算機(jī)的工作速度和存儲(chǔ)容量有限,而且人耳的聽(tīng)覺(jué)上限為

    2024年02月15日
    瀏覽(91)
  • 【音視頻 | wav】wav音頻文件格式詳解——包含RIFF規(guī)范、完整的各個(gè)塊解析、PCM轉(zhuǎn)wav代碼

    【音視頻 | wav】wav音頻文件格式詳解——包含RIFF規(guī)范、完整的各個(gè)塊解析、PCM轉(zhuǎn)wav代碼

    ??博客主頁(yè)??:??https://blog.csdn.net/wkd_007?? ??博客內(nèi)容??:??嵌入式開(kāi)發(fā)、Linux、C語(yǔ)言、C++、數(shù)據(jù)結(jié)構(gòu)、音視頻?? ??本文內(nèi)容??:??介紹wav音頻格式?? ??金句分享??:??子曰:父母在,不遠(yuǎn)游,游必有方。 ——《論語(yǔ)·里仁篇》。意思是,父母還健在時(shí),就不要

    2024年02月06日
    瀏覽(36)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包