Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -1,20 +1,25 @@
|
|
1 |
import streamlit as st
|
2 |
-
import
|
3 |
import tempfile
|
4 |
import os
|
|
|
|
|
5 |
|
6 |
-
#
|
7 |
-
st.title("🔊 Transcription Audio avec Whisper
|
8 |
-
st.write("Upload un fichier audio et laisse
|
9 |
|
10 |
-
# Charger le modèle
|
11 |
-
@st.cache_resource
|
12 |
def load_model():
|
13 |
-
|
|
|
|
|
|
|
|
|
14 |
|
15 |
-
model = load_model()
|
16 |
|
17 |
-
# Upload d'un fichier audio
|
18 |
uploaded_file = st.file_uploader("Upload un fichier audio", type=["mp3", "wav", "m4a"])
|
19 |
|
20 |
if uploaded_file is not None:
|
@@ -23,13 +28,25 @@ if uploaded_file is not None:
|
|
23 |
temp_audio.write(uploaded_file.read())
|
24 |
temp_audio_path = temp_audio.name
|
25 |
|
26 |
-
#
|
27 |
st.write("📄 **Transcription en cours...**")
|
28 |
-
result = model.transcribe(temp_audio_path, language="fr")
|
29 |
|
30 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
st.subheader("📝 Transcription :")
|
32 |
-
st.text_area("",
|
33 |
|
34 |
# Supprimer le fichier temporaire après l'affichage
|
35 |
os.remove(temp_audio_path)
|
|
|
|
|
|
|
|
1 |
import streamlit as st
|
2 |
+
import torch
|
3 |
import tempfile
|
4 |
import os
|
5 |
+
from transformers import WhisperProcessor, WhisperForConditionalGeneration
|
6 |
+
from datasets import load_dataset
|
7 |
|
8 |
+
# Configuration de l'interface Streamlit
|
9 |
+
st.title("🔊 Transcription Audio avec Whisper Fine-tuné")
|
10 |
+
st.write("Upload un fichier audio et laisse ton modèle fine-tuné faire le travail !")
|
11 |
|
12 |
+
# 🔹 Charger le modèle fine-tuné et le processeur
|
|
|
13 |
def load_model():
|
14 |
+
model_name = "SimpleFrog/whisper_finetuned" # Remplace par ton nom de repo sur Hugging Face
|
15 |
+
processor = WhisperProcessor.from_pretrained(model_name)
|
16 |
+
model = WhisperForConditionalGeneration.from_pretrained(model_name)
|
17 |
+
model.eval() # Mode évaluation
|
18 |
+
return processor, model
|
19 |
|
20 |
+
processor, model = load_model()
|
21 |
|
22 |
+
# 🔹 Upload d'un fichier audio
|
23 |
uploaded_file = st.file_uploader("Upload un fichier audio", type=["mp3", "wav", "m4a"])
|
24 |
|
25 |
if uploaded_file is not None:
|
|
|
28 |
temp_audio.write(uploaded_file.read())
|
29 |
temp_audio_path = temp_audio.name
|
30 |
|
31 |
+
# Charger et traiter l'audio
|
32 |
st.write("📄 **Transcription en cours...**")
|
|
|
33 |
|
34 |
+
audio_input = processor(temp_audio_path, return_tensors="pt", sampling_rate=16000)
|
35 |
+
input_features = audio_input.input_features
|
36 |
+
|
37 |
+
# Générer la transcription
|
38 |
+
with torch.no_grad():
|
39 |
+
predicted_ids = model.generate(input_features)
|
40 |
+
|
41 |
+
# Décoder la sortie
|
42 |
+
transcription = processor.batch_decode(predicted_ids, skip_special_tokens=True)[0]
|
43 |
+
|
44 |
+
# Afficher la transcription
|
45 |
st.subheader("📝 Transcription :")
|
46 |
+
st.text_area("", transcription, height=200)
|
47 |
|
48 |
# Supprimer le fichier temporaire après l'affichage
|
49 |
os.remove(temp_audio_path)
|
50 |
+
|
51 |
+
st.write("🔹 Modèle fine-tuné utilisé :", "SimpleFrog/whisper_finetuned")
|
52 |
+
|