Как извлечь звуковые функции для каждого видеокадра с помощью pyAudioAnalysis

Я пробую что-то вроде извлечения аудио-функций для каждого видеокадра. Я знаю, что в видеофайле 30 видеокадров и 16000 звуковых кадров в секунду. Я использую pyAudioAnalysis python lib для достижения цели, но безуспешно. Вот мой код.

from __future__ import print_function
from pyAudioAnalysis import audioBasicIO
from pyAudioAnalysis import ShortTermFeatures,MidTermFeatures
import matplotlib.pyplot as plt
import os,shlex, subprocess
import pandas as pd
import numpy as np

# -acodec pcm_s16le  -vn -ar 16000
command_line = "ffmpeg -i test.mp4 -ac 1 -ar 16000  -vn test_mono.wav"
#command_line = "ffmpeg -i test.mp4 -ab 160k -ac 2 -ar 44100 -vn test_stereo.wav"
args = shlex.split(command_line)
print(args)
processResult = subprocess.call(args) # Success!
print(processResult)
[SamplingRate, signals] = audioBasicIO.read_audio_file("test_mono.wav")
print(SamplingRate)

#mid_feature_extraction(signal, sampling_rate, mid_window, mid_step,short_window, short_step):
MidFeatures,ShortFeatures,MidFeatureLabels=MidTermFeatures.mid_feature_extraction(signals, SamplingRate, 0.043*SamplingRate, 
                                                                                  0.043*SamplingRate,0.00016*SamplingRate,
                                                                                  0.00016*SamplingRate)
print('Mid Features Extr Success')
MidFeatures_Dataframe = pd.DataFrame(data=MidFeatures.transpose(), columns=MidFeatureLabels)
print(type(MidFeatures))
#print(MidFeatures)
print(type(ShortFeatures))
#print(ShortFeatures)
print(type(MidFeatureLabels))
#print(MidFeatureLabels)
MidFeatures_Dataframe.to_csv('Audio_MidFeatures.csv')
print('Mid Features File Success')

По моим расчетам, я должен получить 338 строк звуковых функций, и после долгих усилий я получил 326 строк с указанными выше параметрами, но все еще не знаю, как это сделать. Если кто-нибудь может мне помочь, здесь работают окно и шаги. Я знаю основные концепции окна и шага, которые работают в CNN, но не вникаю в этот контекст. И когда я пытаюсь настроить краткосрочное окно или краткосрочный шаг в MidTermFeatures.mid_feature_extraction, я получаю следующую ошибку.

ValueError: несоответствие формы: массив значений формы (12,) не может быть передан в результат индексации формы (11,)

0 ответов

Другие вопросы по тегам