欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python中常見的幾種音頻數(shù)據(jù)讀取、保存方式總結(jié)

 更新時間:2024年06月22日 15:32:41   作者:idealmu  
Python是一種非常適合進行音頻處理和音頻分析的語言,因為它有許多強大的庫可以使用,下面這篇文章主要給大家介紹了關(guān)于python中常見的幾種音頻數(shù)據(jù)讀取、保存方式,文中通過代碼介紹的非常詳細,需要的朋友可以參考下

1. soundfile 庫的使用

soundfile庫是一個Python庫,主要用于讀取和寫入音頻文件。它支持多種音頻格式,包括WAV、AIFF、FLAC和OGG等。通過soundfile庫,用戶可以方便地將numpy數(shù)組存儲到音頻文件或者將音頻文件加載到numpy數(shù)組中。此外,soundfile庫還提供了一些函數(shù),用于處理音頻數(shù)據(jù)。它的使用簡單且靈活,方便進行音頻處理和分析的工作。

1.1 read 讀文件

讀取音頻文件數(shù)據(jù)

import soundfile as sf
# wav numpy 型數(shù)據(jù),sr是采樣率
filename = "xx/xx.wav"
wav, sr = sf.read(filename, dtype='float64)

可通過dtype將任意的音頻文件數(shù)據(jù)格式轉(zhuǎn)為float64,float32,int16,int32 的numpy型數(shù)據(jù),其中float64,float32是歸一化后的結(jié)果。dtype 默認值為float64。

1.2 write 保存文件

保存音頻文件數(shù)據(jù)

# save_filename, 保存的音頻文件路徑,data保存的數(shù)據(jù),samplerate是采樣率
sf.wrtie(save_filename,data,samplerate)

支持寫入的數(shù)據(jù)也為float64,float32,int16,int32,并保存相應(yīng)格式的數(shù)據(jù)

2. torchaudio 庫的使用

torchaudio是PyTorch深度學(xué)習(xí)框架的一部分,主要用于處理和分析音頻數(shù)據(jù)。它提供了豐富的音頻信號處理工具、特征提取功能以及與深度學(xué)習(xí)模型結(jié)合的接口,使得在PyTorch中進行音頻相關(guān)的機器學(xué)習(xí)和深度學(xué)習(xí)任務(wù)變得更加便捷。通過使用torchaudio,開發(fā)者能夠輕松地將音頻數(shù)據(jù)轉(zhuǎn)換為適合深度學(xué)習(xí)模型輸入的形式,并利用PyTorch的高效張量運算和自動梯度功能進行訓(xùn)練和推理。此外,torchaudio還支持多聲道音頻處理和GPU加速,以滿足不同應(yīng)用場景的需求。

2.1 load 讀文件

加載音頻文件數(shù)據(jù)

import torchaudio
file_path = "xx/xx.wav"
waveform, sr = torchaudio.load(file_path, normalize=True)

主要說明:

可以讀取float32, int16, int32類型數(shù)據(jù),返回的是torch.tensor類型的數(shù)據(jù);
normalize=True時,返回的數(shù)據(jù)是歸一化到(-1,1)的float32數(shù)據(jù);
normalize=False時,返回的是float32、int16或者int32數(shù)據(jù),具體需要看file_path本身是什么類型的音頻數(shù)據(jù);
normalize默認值為True。

2.2 save 保存文件

保存音頻數(shù)據(jù)到文件

# out_path, 保存的音頻文件路徑,waveform保存的數(shù)據(jù),sr是采樣率
torchaudio.save(out_path, waveform, sr)

根據(jù)waveform的格式自動保存為float32、int16或者int32

3. from scipy.io import wavfile 庫的使用

scipy.io.wavfile庫是SciPy科學(xué)計算庫中的一個模塊,主要用于讀取和寫入WAV格式的音頻文件。該庫提供了函數(shù)用于將音頻數(shù)據(jù)存儲為WAV文件或者將WAV文件加載為numpy數(shù)組,方便進行音頻數(shù)據(jù)的處理和分析。用戶可以使用scipy.io.wavfile庫來讀取音頻文件的采樣率和數(shù)據(jù),以及將音頻數(shù)據(jù)寫入WAV文件。此外,該庫還提供了一些函數(shù)用于處理音頻數(shù)據(jù),如獲取音頻數(shù)據(jù)的聲道數(shù)、比特深度等信息。通過scipy.io.wavfile庫,用戶可以方便地進行音頻文件的讀寫操作,并結(jié)合其他Python庫進行音頻數(shù)據(jù)處理和分析。

3.1 read 讀文件

from scipy.io import wavfile
file_name = "xx/xx.wav"
sr, wav_data = wavfile.read(file_name)

返回的是float32、int16、int32型numpy數(shù)據(jù),具體格式根據(jù)file_name文件的音頻格式

3.2 save 保存文件

# filename, 保存的音頻文件路徑,wav_data保存的數(shù)據(jù),sr是采樣率
wavfile.wrtie(filename, sr, wav_data)

根據(jù)wav_data的格式自動保存為float32、int16或者int32。

注:以上float32、float64數(shù)據(jù)是歸一化后的結(jié)果,與其他轉(zhuǎn)換為int16 / 2 ** 15,int32 / 2 ** 31

附: soundfile安裝報錯與解決

①問題描述

在終端使用pip install soundfile安裝soundfile時報錯。

②問題解決

python處理音頻文件經(jīng)常要使用soundfile庫。ubuntu系統(tǒng)在pip安裝soundfile庫時報錯,是因為缺乏依賴包libsndfile1,所以要先安裝依賴包,然后再安裝soundfile。命令如下:

step1:終端輸入sudo apt-get install libsndfile1

step2:終端輸入pip install soundfile

總結(jié)

到此這篇關(guān)于python中常見的幾種音頻數(shù)據(jù)讀取、保存方式的文章就介紹到這了,更多相關(guān)python音頻數(shù)據(jù)讀取保存方式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python 元組和列表的區(qū)別

    python 元組和列表的區(qū)別

    這篇文章主要介紹了python 元組和列表的區(qū)別,幫助大家更好的理解和學(xué)習(xí)python 數(shù)據(jù)類型的相關(guān)知識,感興趣的朋友可以了解下
    2020-11-11
  • python中Pexpect的工作流程實例講解

    python中Pexpect的工作流程實例講解

    在本篇文章里小編給大家整理的是一篇關(guān)于python中Pexpect的工作流程實例講解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2021-03-03
  • 探索Python神奇算術(shù)用代碼輕松求和的幾種方法

    探索Python神奇算術(shù)用代碼輕松求和的幾種方法

    求和是數(shù)學(xué)中最基本的運算之一,也是編程中常見的任務(wù)之一,Python 提供了多種方法來計算和求和數(shù)字,本文將掏出計算求和的不同方法,包括使用循環(huán)、內(nèi)置函數(shù)以及第三方庫
    2023-11-11
  • Python中使用scapy模擬數(shù)據(jù)包實現(xiàn)arp攻擊、dns放大攻擊例子

    Python中使用scapy模擬數(shù)據(jù)包實現(xiàn)arp攻擊、dns放大攻擊例子

    這篇文章主要介紹了Python中使用scapy模擬數(shù)據(jù)包實現(xiàn)arp攻擊、dns放大攻擊例子,本文重點在于scapy有使用上,需要的朋友可以參考下
    2014-10-10
  • Python遍歷列表時刪除元素案例

    Python遍歷列表時刪除元素案例

    這篇文章主要介紹了Python遍歷列表時刪除元素案例,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的朋友可以參考一下
    2022-09-09
  • python妙用之編碼的轉(zhuǎn)換詳解

    python妙用之編碼的轉(zhuǎn)換詳解

    在日常滲透,漏洞挖掘,甚至是CTF比賽中會遇到各種編碼,常常伴隨著這些編碼之間的各種轉(zhuǎn)換。下面這篇文章主要介紹了python中編碼轉(zhuǎn)換妙用的相關(guān)資料,需要的朋友們可以參考借鑒,下面來一起看看吧。
    2017-04-04
  • Pycharm使用之設(shè)置代碼字體大小和顏色主題的教程

    Pycharm使用之設(shè)置代碼字體大小和顏色主題的教程

    今天小編就為大家分享一篇Pycharm使用之設(shè)置代碼字體大小和顏色主題的教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • python中的測試框架

    python中的測試框架

    這篇文章主要介紹了python中測試框架的相關(guān)資料,幫助大家更好的理解和使用python進行測試,感興趣的朋友可以了解下
    2020-11-11
  • Python中的簡寫操作(for、if簡寫、匿名函數(shù))

    Python中的簡寫操作(for、if簡寫、匿名函數(shù))

    這篇文章主要介紹了Python中的簡寫操作(for、if簡寫、匿名函數(shù)),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Python對excel的基本操作方法

    Python對excel的基本操作方法

    這篇文章主要介紹了Python對excel的基本操作,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02

最新評論