import gradio as gr import librosa import torch from transformers import SpeechT5Processor, SpeechT5ForSpeechToText checkpoint = "microsoft/speecht5_asr" processor = SpeechT5Processor.from_pretrained(checkpoint) model = SpeechT5ForSpeechToText.from_pretrained(checkpoint) def process_audio(sampling_rate, waveform): # convert from int16 to floating point waveform = waveform / 32678.0 # convert to mono if stereo if len(waveform.shape) > 1: waveform = librosa.to_mono(waveform.T) # resample to 16 kHz if necessary if sampling_rate != 16000: waveform = librosa.resample(waveform, orig_sr=sampling_rate, target_sr=16000) # limit to 30 seconds waveform = waveform[:16000*30] # make PyTorch tensor waveform = torch.tensor(waveform) return waveform def predict(audio, mic_audio=None): # audio = tuple (sample_rate, frames) or (sample_rate, (frames, channels)) if mic_audio is not None: sampling_rate, waveform = mic_audio elif audio is not None: sampling_rate, waveform = audio else: return "(please provide audio)" waveform = process_audio(sampling_rate, waveform) inputs = processor(audio=waveform, sampling_rate=16000, return_tensors="pt") predicted_ids = model.generate(**inputs, max_length=400) transcription = processor.batch_decode(predicted_ids, skip_special_tokens=True) return transcription[0] title = " ππ₯°Prolove π§βπ€ π¨βπ€ " description = """aplikasi prolove merupakan aplikasi untuk membantu ejaan kata yang diucapkan oleh user dalam bahasa inggris menjadi benar""" article = """
Example sound credits: