При написании программы возникла ошибка ValueError: The number of classes has to be greater than one; got 1 class подскажите как можно исправить

    import librosa
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC

# Функция для извлечения звуковых признаков из аудиофайла
def extract_features(file_path, mfcc=True, chroma=True, mel=True):
    audio_data, sr = librosa.load(file_path)
    features = []
    if mfcc:
        mfccs = librosa.feature.mfcc(y=audio_data, sr=sr, n_mfcc=13)
        features.extend(np.mean(mfccs, axis=1))
    if chroma:
        chroma = librosa.feature.chroma_stft(y=audio_data, sr=sr)
        features.extend(np.mean(chroma, axis=1))
    if mel:
        mel = librosa.feature.melspectrogram(y=audio_data, sr=sr)
        features.extend(np.mean(mel, axis=1))
    return features

# Путь к аудиофайлам для обучения модели
file_path_1 = 'C:\\Users\\Павел\\Desktop\\Павел.wav'
file_path_2 = 'C:\\Users\\Павел\\Desktop\\Андрей.wav'

# Извлечение звуковых признаков для каждого голоса
features_1 = extract_features(file_path_1)
features_2 = extract_features(file_path_2)

# Подготовка данных для обучения модели
X = np.array([features_1, features_2])
y = np.array([0, 1])  # 0 - первый голос, 1 - второй голос

# Разделение данных на обучающий и тестовый наборы
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Обучение модели
model = SVC(kernel='linear')
model.fit(X_train, y_train)

# Проверка точности модели на тестовом наборе
accuracy = model.score(X_test, y_test)
print("Точность модели:", accuracy)

# Предсказание голоса для новых данных
new_features = np.array(extract_features('C:\\Users\\Павел\\Desktop\\Вася.wav'))  # Преобразуем признаки в массив NumPy
new_features = new_features.reshape(1, -1)  # Преобразуем форму для одного образца
predicted_voice = model.predict(new_features)
print("Предсказанный голос:", predicted_voice)

Ответы (0 шт):