想在循环中的一堆音频文件中找到音频的平均长度
want to find the average length of audio in a bunch of audio files in a loop
使用此代码同样有效但是如何显示这些音频文件的平均长度,以及如何找到最长和最短持续时间的文件?
import librosa
import glob
import librosa
path=glob.glob('E:/...*/*.wav')
for i in range(len(path)) :
y, sr = librosa.load(path[i], sr=16000)
z=librosa.get_duration(y)
Z=Z+z
Z/len(path)
您可以使用这样的代码。使用 get_duration(filename=...)
使其无需加载文件即可运行,速度要快得多。这里我们使用 list comprehension 遍历路径并将所有持续时间收集到一个列表中。
import glob
import librosa
import numpy
paths = glob.glob('E:/...*/*.wav')
durations = [ librosa.get_duration(filename=p) for p in paths ]
stats = {
'mean': numpy.mean(durations),
'max': numpy.max(durations),
'min': numpy.min(durations),
}
print(stats)
使用此代码同样有效但是如何显示这些音频文件的平均长度,以及如何找到最长和最短持续时间的文件?
import librosa
import glob
import librosa
path=glob.glob('E:/...*/*.wav')
for i in range(len(path)) :
y, sr = librosa.load(path[i], sr=16000)
z=librosa.get_duration(y)
Z=Z+z
Z/len(path)
您可以使用这样的代码。使用 get_duration(filename=...)
使其无需加载文件即可运行,速度要快得多。这里我们使用 list comprehension 遍历路径并将所有持续时间收集到一个列表中。
import glob
import librosa
import numpy
paths = glob.glob('E:/...*/*.wav')
durations = [ librosa.get_duration(filename=p) for p in paths ]
stats = {
'mean': numpy.mean(durations),
'max': numpy.max(durations),
'min': numpy.min(durations),
}
print(stats)