Как рассчитать временную шкалу аудиофайла после извлечения функций MF CC - PullRequest
0 голосов
/ 21 июня 2020

как рассчитать временную шкалу аудиофайла после извлечения функций MF CC с использованием python_speech_features

Идея состоит в том, чтобы получить временную шкалу MF CC сэмплов

import librosa
import python_speech_features

audio_file = r'sample.wav'

samples,sample_rate = librosa.core.load(audio_file,sr=16000, mono= True)

timeline = np.arange(0,len(samples))/sample_rate # prints timeline of sample.wav

print(timeline)

mfcc_feat = python_speech_features.mfcc(samples, sample_rate)

1 Ответ

1 голос
/ 21 июня 2020

python_speech_features.mf cc (...) принимает несколько дополнительных аргументов. Один из них - winstep, который указывает количество раз между кадрами функций, т. Е. mfcc функций. Значение по умолчанию 0,01 с = 10 мс. В другом контексте, например, librosa, это также известно как hop_length, которое затем указывается в примерах.

Чтобы найти вашу временную шкалу, вы должны выяснить количество функций и частоту функций. С winstep=0.01 ваши функции в секунду (ваша функция или частота кадров) составляют 100 Гц. Количество имеющихся кадров len(mfcc_feat).

Таким образом, вы получите:

import librosa
import python_speech_features
import numpy as np

audio_file = r'sample.wav'

samples, sample_rate = librosa.core.load(audio_file, sr=16000, mono=True)

timeline = np.arange(0, len(samples))/sample_rate # prints timeline of sample.wav

print(timeline)

winstep = 0.01  # happens to be the default value
mfcc_feat = python_speech_features.mfcc(samples, sample_rate, winstep=winstep)

frame_rate = 1./winstep

timeline_mfcc = np.arange(0, len(mfcc_feat))/frame_rate
print(timeline_mfcc)

Поскольку «кадр» представляет собой продолжительность 0,01 с, вы можете переместить смещение к центру кадра, т.е. на 0,005 с.

...