Spaces:
Runtime error
Runtime error
import gradio as gr | |
import librosa | |
from transformers import Wav2Vec2ForCTC, Wav2Vec2Processor | |
import torch | |
# Carregar o modelo e o processador pré-treinados para reconhecimento de fala | |
processor = Wav2Vec2Processor.from_pretrained("facebook/wav2vec2-large-960h") | |
model = Wav2Vec2ForCTC.from_pretrained("facebook/wav2vec2-large-960h") | |
def transcribe_audio(audio_file): | |
# Carregar o arquivo de áudio | |
y, sr = librosa.load(audio_file, sr=16000) # Wav2Vec2 espera áudio com taxa de amostragem de 16kHz | |
input_values = processor(y, return_tensors="pt", padding="longest").input_values | |
logits = model(input_values).logits | |
predicted_ids = torch.argmax(logits, dim=-1) | |
transcription = processor.batch_decode(predicted_ids)[0] | |
return transcription | |
def identify_song_and_lyrics(audio_file): | |
transcription = transcribe_audio(audio_file) | |
# Placeholder para lógica de identificação da música e obtenção das letras e cifras | |
song_info = { | |
"title": "Título da Música (Placeholder)", | |
"artist": "Artista (Placeholder)", | |
"lyrics": transcription, # Usar a transcrição como placeholder | |
"chords": "Cifra (Placeholder)" | |
} | |
return song_info | |
# Configurar a interface Gradio | |
iface = gr.Interface( | |
fn=identify_song_and_lyrics, | |
inputs=gr.Audio(type="file"), | |
outputs="json", | |
title="Identificação de Música e Exibição de Letras e Cifras", | |
description="Carregue um arquivo de áudio para identificar a música e visualizar a cifra e a letra." | |
) | |
iface.launch(share=True) # share=True para gerar um link público | |