自动提取音频
对批量音频文件分割成等长音频段
参考1:python对批量WAV音频进行等长分割https://blog.csdn.net/vitA_gsm/article/details/99756032
参考2:Python对批量音频文件(wav)进行分段切割并保存https://blog.csdn.net/Barry_J/article/details/83382065
在参考其他博客时,自己出现的问题:
CutTimeDef = 1 # 以1s截断文件
此时运行出来并不是以1s来截取音频的,虽然根据音频长度会有相应多的音频文件生成(例如一个20s的音频文件会产生20个1s的音频文件),但是前半部分生成的文件是正常的,但是后半部分的文件就完全没有声音。所以自己根据代码进行了调整。不仅要将CutTimeDef = 1
改成CutTimeDef = 2
而且循环条件也要改成while StepTotalNum < nframes*2
。这样整个代码运行下来自动生成的文件内容才正确。(也可能是我能力不够,最终先正常运行就行,以后再提高吧!!!)
wave_data.shape = -1, 2
,使用这个代码会报错(好像是cannot reshape xxx)。所以改成了wave_data.reshape(-1, nframes)
。
以下是python代码实现
# coding=gbk
import os
import wave
import numpy as np
import pylab as plt
CutTimeDef = 2 # 以1s截断文件
# CutTimeDef = 2 while StepTotalNum < nframes*2: 时截取1s的音频时间
path = r"E:\emotion_recognition\audios\audios"
files = os.listdir(path)
files = [path + "\\" + f for f in files if f.endswith(