SimpleFrog's picture
Rename app.py to app2.py
e5d0693 verified
raw
history blame
1.88 kB
import streamlit as st
import torch
import tempfile
import os
from transformers import WhisperProcessor, WhisperForConditionalGeneration
from datasets import load_dataset
# Configuration de l'interface Streamlit
st.title("🔊 Transcription Audio avec Whisper Fine-tuné")
st.write("Upload un fichier audio et laisse ton modèle fine-tuné faire le travail !")
# 🔹 Charger le modèle fine-tuné et le processeur
def load_model():
model_name = "SimpleFrog/whisper_finetuned" # Remplace par ton nom de repo sur Hugging Face
processor = WhisperProcessor.from_pretrained(model_name)
model = WhisperForConditionalGeneration.from_pretrained(model_name)
model.eval() # Mode évaluation
return processor, model
processor, model = load_model()
# 🔹 Upload d'un fichier audio
uploaded_file = st.file_uploader("Upload un fichier audio", type=["mp3", "wav", "m4a"])
if uploaded_file is not None:
# Sauvegarder temporairement l'audio
with tempfile.NamedTemporaryFile(delete=False, suffix=".wav") as temp_audio:
temp_audio.write(uploaded_file.read())
temp_audio_path = temp_audio.name
# Charger et traiter l'audio
st.write("📄 **Transcription en cours...**")
audio_input = processor(temp_audio_path, return_tensors="pt", sampling_rate=16000)
input_features = audio_input.input_features
# Générer la transcription
with torch.no_grad():
predicted_ids = model.generate(input_features)
# Décoder la sortie
transcription = processor.batch_decode(predicted_ids, skip_special_tokens=True)[0]
# Afficher la transcription
st.subheader("📝 Transcription :")
st.text_area("", transcription, height=200)
# Supprimer le fichier temporaire après l'affichage
os.remove(temp_audio_path)
st.write("🔹 Modèle fine-tuné utilisé :", "SimpleFrog/whisper_finetuned")