| import tensorflow as tf | |
| import numpy as np | |
| from audio_utils import audio_to_spectrogram | |
| MODEL_PATH = "models/audio_vit_savedmodel" | |
| model = tf.saved_model.load(MODEL_PATH) | |
| infer = model.signatures["serving_default"] | |
| def predict_audio(wav_file): | |
| spec_img = audio_to_spectrogram(wav_file) | |
| x = spec_img.astype("float32") / 255.0 | |
| x = np.expand_dims(x, axis=0) | |
| preds = infer(tf.constant(x)) | |
| prob = list(preds.values())[0].numpy()[0][0] | |
| label = "Fake" if prob >= 0.5 else "Real" | |
| confidence = prob * 100 | |
| return label, round(confidence, 2), spec_img | |