msmaje's picture
Create app.py
fa2111b verified
import gradio as gr
import torch
import joblib
import librosa
import numpy as np
# Load model (adjust paths as needed)
model = torch.load("voice_recognition_fullmodel.pth")
label_encoder = joblib.load("label_encoder.joblib")
def predict(audio_file):
# Extract features
features = extract_features(audio_file)
if features is None:
return "Error processing audio"
# Prepare input
input_tensor = torch.tensor(features).unsqueeze(0).unsqueeze(0).float()
# Predict
with torch.no_grad():
outputs = model(input_tensor)
_, predicted = torch.max(outputs, 1)
user = label_encoder.inverse_transform([predicted.item()])[0]
return f"Recognized user: {user}"
# Create interface
iface = gr.Interface(
fn=predict,
inputs=gr.Audio(source="microphone", type="filepath"),
outputs="text",
title="Voice Recognition Security System",
description="Upload an audio file or record your voice to test user recognition."
)
iface.launch()