Spaces:
Sleeping
Sleeping
File size: 1,974 Bytes
35d6662 4551503 c940f0b 4551503 c940f0b 4551503 c940f0b 4551503 c940f0b 4551503 c940f0b 4551503 c940f0b 4551503 c940f0b 4551503 abc8e80 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
import warnings
warnings.filterwarnings("ignore")
import gradio as gr
from transformers import AutoProcessor, AutoModelForSpeechSeq2Seq
import torch
import torchaudio
# Charger le modèle audio-to-text
model_name = "fixie-ai/ultravox-v0_4_1-llama-3_1-8b"
# Initialiser le modèle et le processeur
try:
device = "cuda" if torch.cuda.is_available() else "cpu"
processor = AutoProcessor.from_pretrained(model_name)
model = AutoModelForSpeechSeq2Seq.from_pretrained(model_name).to(device)
print(f"Modèle chargé avec succès sur {device}")
except Exception as e:
print(f"Erreur lors du chargement du modèle: {e}")
processor = None
model = None
def transcribe_audio(audio):
"""
Fonction pour transcrire l'audio en texte
"""
if model is None or processor is None:
return "Erreur: Le modèle n'a pas pu être chargé."
try:
device = "cuda" if torch.cuda.is_available() else "cpu"
# Charger l'audio
waveform, sample_rate = torchaudio.load(audio)
# Préparer l'input
inputs = processor(waveform.squeeze().numpy(), sampling_rate=sample_rate, return_tensors="pt").to(device)
# Générer la transcription
with torch.no_grad():
generated_ids = model.generate(**inputs)
# Décoder le résultat
transcription = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]
return transcription
except Exception as e:
return f"Erreur lors de la transcription: {str(e)}"
# Interface Gradio
interface = gr.Interface(
fn=transcribe_audio,
inputs=gr.Audio(sources=["microphone", "upload"], type="filepath"),
outputs=gr.Textbox(label="Transcription"),
title="Audio to Text avec Ultravox",
description="Uploadez un fichier audio ou enregistrez votre voix pour obtenir la transcription en texte."
)
if __name__ == "__main__":
interface.launch(ssr_mode=False)
|