有点简单的答案是:这取决于您上传的音频剪辑。
您需要的第一个直觉是,当音频剪辑以数字方式存储时,由于计算机的性质,它必须被分割成单独的组件。如果每秒这些组件的数量太少,音频对我们来说听起来会很不稳定。但是,如果每秒有足够数量的这些单独的组件,我们将无法感知数字音频剪辑和真实音频之间的差异。那么,这个每秒组件的属性是什么?它被称为采样率。采样率是每秒采集的样本数。
因此,您上传的每个音频剪辑都将具有特定的采样率。在每个样本中,您可以获得诸如音频幅度之类的值。让我举一个 Python 包 Librosa 的例子。
import librosa
# Load an example file in .ogg format
fileName = librosa.util.example_audio_file()
audioData, sampleRate = librosa.load(fileName)
print(audioData)
>>> [ -4.756e-06, -6.020e-06, ..., -1.040e-06, 0.000e+00]
print(audioData.shape)
>>> (1355168,)
print(sampleRate)
>>> 22050
# We can use the number of samples and the sampling rate to get the duration of the audio
librosa.core.get_duration(audioData, 22050) # output is seconds
>>> 61.4
audio_features 数组中切片/样本之间的时间间隔是多少?
时间间隔将取决于音频的采样率。如果采样率为每秒 22,050 个样本,则每个样本之间的时间间隔将为 1/22,050 秒。
可以为每个数组元素获取时间戳吗
通过快速搜索,我找到了一个名为 samples_to_time 的 Librosa 函数。
librosa.samples_to_time(np.arange(0, 22050, 512))
>>> array([ 0. , 0.023, 0.046, 0.07 , 0.093, 0.116, 0.139,
0.163, 0.186, 0.209, 0.232, 0.255, 0.279, 0.302,
0.325, 0.348, 0.372, 0.395, 0.418, 0.441, 0.464,
0.488, 0.511, 0.534, 0.557, 0.58 , 0.604, 0.627,
0.65 , 0.673, 0.697, 0.72 , 0.743, 0.766, 0.789,
0.813, 0.836, 0.859, 0.882, 0.906, 0.929, 0.952,
0.975, 0.998])
如果你有兴趣做一个项目,我的建议是查看一些关于音频处理的 Youtube 视频。此外,librosa 库非常方便。如果您打算使用 Python(一个不错的选择),您应该阅读他们的文档。