Spaces:
Sleeping
Sleeping
import os | |
import torch | |
from transformers import Wav2Vec2Processor | |
from src.model.emotion_classifier import Wav2Vec2EmotionClassifier | |
import librosa | |
# Charger le modèle et le processeur | |
device = torch.device("cuda" if torch.cuda.is_available() else "cpu") | |
# if st. | |
processor = Wav2Vec2Processor.from_pretrained("facebook/wav2vec2-large-xlsr-53-french") | |
model = Wav2Vec2EmotionClassifier() | |
model.load_state_dict(torch.load(os.path.join("src","model","wav2vec2_emotion.pth"), map_location=torch.device('cpu')), strict=False) | |
model.to(device) | |
def transcribe_audio(audio, sampling_rate=16000): | |
# Préparer les données d'entrée pour le modèle | |
input_values = processor(audio, sampling_rate=sampling_rate, return_tensors="pt").input_values | |
# Passer les données dans le modèle pour obtenir les logits | |
with torch.no_grad(): | |
logits = model(input_values).logits | |
# Décoder les prédictions en texte | |
predicted_ids = torch.argmax(logits, dim=-1) | |
transcription = processor.batch_decode(predicted_ids)[0] | |
return transcription |