Views
No views yet
1# Load model directly
2from transformers import AutoProcessor, AutoModelForSpeechSeq2Seq
3import librosa
4import numpy as np
5import torch
6
7processor = AutoProcessor.from_pretrained("jsbeaudry/whisper-medium-oswald")
8model = AutoModelForSpeechSeq2Seq.from_pretrained("jsbeaudry/whisper-medium-oswald")
9
10def transcript (audio_file_path):
11
12 # Load audio
13 speech_array, sampling_rate = librosa.load(audio_file_path, sr=16000)
14
15 # Convert the NumPy array to a PyTorch tensor
16 speech_array_pt = torch.from_numpy(speech_array).unsqueeze(0)
17
18 input_features = processor(speech_array, sampling_rate=sampling_rate, return_tensors="pt").input_features
19
20 # 2. Generate predictions
21 predicted_ids = model.generate(input_features)
22
23 # 3. Decode the predictions
24 transcription = processor.batch_decode(predicted_ids, skip_special_tokens=True)
25
26 # print(transcription)
27 return transcription
28
29text = transcript("/path_audio")
30
31print(text)1
2from transformers import pipeline
3import gradio as gr
4
5# Load Whisper model
6print("Loading model...")
7pipe = pipeline(model="jsbeaudry/whisper-medium-oswald")
8print("Model loaded successfully.")
9
10# Transcription function
11def transcribe(audio_path):
12 if audio_path is None:
13 return "Please upload or record an audio file first."
14 result = pipe(audio_path)
15 return result["text"]
16
17# Build Gradio interface
18def create_interface():
19 with gr.Blocks(title="Whisper Medium - Haitian Creole") as demo:
20 gr.Markdown("# 🎙️ Whisper Medium Creole ASR")
21 gr.Markdown(
22 "Upload an audio file or record your voice in Haitian Creole. "
23 "Then click **Transcribe** to see the result."
24 )
25
26 with gr.Row():
27 with gr.Column():
28 audio_input = gr.Audio(source="upload", type="filepath", label="🎧 Upload Audio")
29 audio_input2 = gr.Audio(source="microphone", type="filepath", label="🎤 Record Audio")
30 with gr.Column():
31 transcribe_button = gr.Button("🔍 Transcribe")
32 output_text = gr.Textbox(label="📝 Transcribed Text", lines=4)
33
34
35 transcribe_button.click(fn=transcribe, inputs=audio_input, outputs=output_text)
36 transcribe_button.click(fn=transcribe, inputs=audio_input2, outputs=output_text)
37
38 return demo
39
40if __name__ == "__main__":
41 interface = create_interface()
42 interface.launch()1@misc{whispermediumcreoleoswald2025,
2 title={Whisper Medium Creole - Oswald},
3 author={Jean sauvenel beaudry},
4 year={2025},
5 howpublished={\url{https://huggingface.co/jsbeaudry}}
6}
7