我正在用 librosa 修剪一些音頻檔案。這很好用,但是我不想保存修剪后的檔案,而是想獲得修剪前和修剪后的長度。我現在擁有的代碼可以列印我需要的所有資訊,我只需要將它放入一個 pandas 資料框中,其中 column1 = 檔案名,column2 = 修剪前的長度,column3 = 修剪后的長度。我不需要'sr'。我似乎無法弄清楚如何正確地做到這一點......感謝幫助。
這是代碼:
for file in files:
print(file)
audio, sr = librosa.load(file, sr= 16000, mono=True)
print(audio.shape, sr)
trimmed = librosa.effects.trim(audio, top_db= 45)
print(trimmed[0].shape, sr)
這是我使用 print 命令得到的輸出:
/Desktop/py_scripts/audio_experiments/wav/1031_8637_73170.wav
(39680,) 16000
(38144,) 16000
/Desktop/py_scripts/audio_experiments/wav/1060_8777_76783.wav
(28160,) 16000
(28160,) 16000
/Desktop/py_scripts/audio_experiments/wav/1128_8634_82873.wav
(74240,) 16000
(74240,) 16000
uj5u.com熱心網友回復:
您應該將資料收集到串列或字典中,然后使用它來構建資料框
import pandas as pd
file_lst, len_before_lst, len_after_lst = [], [], []
for file in files:
file_lst.append(file)
audio, sr = librosa.load(file, sr= 16000, mono=True)
len_before_lst.append(audio.shape[0])
trimmed = librosa.effects.trim(audio, top_db= 45)
len_after_lst.append(trimmed[0].shape)
df = pd.DataFrame([file_lst, len_before_lst, len_after_lst], index=['filename', 'len_before', 'len_after']).T
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/451738.html
上一篇:如何使用ECMAScript的匹配重置轉換PCRE正則運算式模式?
下一篇:barx-tick與圖片不一樣
