tojonatolotra commited on
Commit
c940f0b
·
verified ·
1 Parent(s): 4551503

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +25 -8
app.py CHANGED
@@ -1,28 +1,45 @@
1
  import gradio as gr
2
- from transformers import pipeline
3
  import torch
 
4
 
5
  # Charger le modèle audio-to-text
6
  model_name = "fixie-ai/ultravox-v0_4_1-llama-3_1-8b"
7
 
8
- # Initialiser le pipeline (peut nécessiter des ajustements selon le modèle)
9
  try:
10
- transcriber = pipeline("automatic-speech-recognition", model=model_name, device=0 if torch.cuda.is_available() else -1)
 
 
 
11
  except Exception as e:
12
  print(f"Erreur lors du chargement du modèle: {e}")
13
- transcriber = None
 
14
 
15
  def transcribe_audio(audio):
16
  """
17
  Fonction pour transcrire l'audio en texte
18
  """
19
- if transcriber is None:
20
  return "Erreur: Le modèle n'a pas pu être chargé."
21
 
22
  try:
23
- # Transcription de l'audio
24
- result = transcriber(audio)
25
- return result["text"]
 
 
 
 
 
 
 
 
 
 
 
 
26
  except Exception as e:
27
  return f"Erreur lors de la transcription: {str(e)}"
28
 
 
1
  import gradio as gr
2
+ from transformers import AutoProcessor, AutoModelForSpeechSeq2Seq
3
  import torch
4
+ import torchaudio
5
 
6
  # Charger le modèle audio-to-text
7
  model_name = "fixie-ai/ultravox-v0_4_1-llama-3_1-8b"
8
 
9
+ # Initialiser le modèle et le processeur
10
  try:
11
+ device = "cuda" if torch.cuda.is_available() else "cpu"
12
+ processor = AutoProcessor.from_pretrained(model_name)
13
+ model = AutoModelForSpeechSeq2Seq.from_pretrained(model_name).to(device)
14
+ print(f"Modèle chargé avec succès sur {device}")
15
  except Exception as e:
16
  print(f"Erreur lors du chargement du modèle: {e}")
17
+ processor = None
18
+ model = None
19
 
20
  def transcribe_audio(audio):
21
  """
22
  Fonction pour transcrire l'audio en texte
23
  """
24
+ if model is None or processor is None:
25
  return "Erreur: Le modèle n'a pas pu être chargé."
26
 
27
  try:
28
+ device = "cuda" if torch.cuda.is_available() else "cpu"
29
+
30
+ # Charger l'audio
31
+ waveform, sample_rate = torchaudio.load(audio)
32
+
33
+ # Préparer l'input
34
+ inputs = processor(waveform.squeeze().numpy(), sampling_rate=sample_rate, return_tensors="pt").to(device)
35
+
36
+ # Générer la transcription
37
+ with torch.no_grad():
38
+ generated_ids = model.generate(**inputs)
39
+
40
+ # Décoder le résultat
41
+ transcription = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]
42
+ return transcription
43
  except Exception as e:
44
  return f"Erreur lors de la transcription: {str(e)}"
45