Получение "keyerror: 0" при запуске моего кода - PullRequest
0 голосов
/ 28 апреля 2020

Я получаю приведенную ниже ошибку, когда пытаюсь построить кратковременную энергетическую функцию, пожалуйста, мне нужна ваша помощь для решения этой проблемы.

Код:

import os
from tqdm import tqdm
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

from scipy.io import wavfile
from python_speech_features import mfcc
from python_speech_features import logfbank
import librosa



def plot_ste(ste):
    fig, axes = plt.subplots(nrows=1, ncols=1, sharex=False, 
                          sharey=False, figsize=(400, 50))
    fig.suptitle('Short Time Energy', size=100, y=1.02)
    i = 0
    for x in range(1):
        for y in range(1):
            data = list(ste.values())[i]
            x, win = data[0], data[1]
            axes[x,y].set_title(list(ste.keys())[i])
            axes[x,y].plot(win, x)
            axes[x,y].get_xaxis().set_visible(False)
            axes[x,y].get_yaxis().set_visible(False)
            i+=1

def ste(x, win):
  """Compute short-time energy."""
  if isinstance(win, str):
    win = scipy.signal.get_window(win, max(1, len(x) // 8))
  win = win / len(win)
  return scipy.signal.convolve(x**2, win**2, mode="same")



df = pd.read_csv('/dir/to/a.csv')
df.set_index('fname', inplace=True)

classes = list(np.unique(df.ID))


df.reset_index(inplace=True)


ste = {}

for c in classes:
     wav_file = df[df.ID==c].iloc[0, 0]
     signal, rate = librosa.load('/dir/to/wav_file')


     ste[c] = ste


plot_ste(ste)
plt.show()

Ошибка:

File "/home/Desktop/Program/stft_plot_full_Dir.py", line 35, in plot_ste
    x, win = data[0], data[1]

KeyError: 0
...