我有一些长的音频文件,我想使用python.Ex:The音频将这个音频文件分割成多个短长度的音频文件,长的长度超过1小时,并想分割成多个短长度的5s文件。我想在每个5s中提取整个音频文件的特征。
发布于 2020-08-29 19:01:16
你的问题有两个问题。
拆分audio
它们都有相同的,潜在的,关键信息:采样频率。
音频信号的持续时间(以秒为单位)和用于音频文件的采样频率定义了音频文件具有的采样量。音频样本(简而言之)是硬盘或计算机内存中音频信号的一个值。
典型wav文件的音频采样量是根据公式sr * dur计算的,其中sr是以Hz为单位的采样频率(例如,CD质量信号为44100 ),dur是音频文件的持续时间(以秒为单位)。例如,2秒的CD音频文件具有44100 * 2 = 88200样本。
所以:
要在Python中拆分音频文件,首先必须在一个变量中读取它。例如,有大量的库和函数(以随机顺序):
scipy.io.wavfile.readwave模块还有其他的。您可以查看此SO post,了解有关读取wav文件的更多信息。
然后,您只需获取N个样本,例如my_audio_1 = whole_audio_file[0:5*sr]。
但是!
如果你只想每X秒提取一次特征,那么就不需要手动拆分音频。大多数音频特征提取库都会为你做到这一点。
例如,在librosa中,您可以控制FFT点的数量,这大致相当于您要从中提取特征的音频的长度。例如,您可以在这里检查:https://librosa.org/doc/latest/feature.html
https://stackoverflow.com/questions/63645290
复制相似问题