23/06/25 20:59:52.00 fGT2yVbA0.net
音声を100ms周期のフレームに分割してフレームごとにMFCC,パワー,自己相関関数を計算し、自己相関関数から局所最大値を得ようと思ってるんですが、以下のコードでそれはできているんでしょうか?
audio, sr = librosa.load(audio_file)
frames = librosa.util.frame(audio, frame_length=frame_length, hop_length=hop_length)
for i in ragne(frames.shape[1]):
frame = frames[:, i]
mfcc = librosa.feature.mfcc(y=frame, sr=sr, n_mfcc=25).flatten()
power = librosa.feature.rms(y=frame).flatten()
acf = np.correlate(frame, frame, mode='full')
acf = acf[acf.size//2:]
local_maxima = scipy.signal.argrelextrema(acf, np.greater)[0]
2:いつき
23/06/25 21:02:39.40 fGT2yVbA0.net
書き忘れてました、正しくはこちらのコードです。
audio, sr = librosa.load(audio_file)
frame_length = int(sr*0.1)
hop_length = frame_length
frames = librosa.util.frame(audio, frame_length=frame_length, hop_length=hop_length)
for i in ragne(frames.shape[1]):
frame = frames[:, i]
mfcc = librosa.feature.mfcc(y=frame, sr=sr, n_mfcc=25).flatten()
power = librosa.feature.rms(y=frame).flatten()
acf = np.correlate(frame, frame, mode='full')
acf = acf[acf.size//2:]
local_maxima = scipy.signal.argrelextrema(acf, np.greater)[0]