Spaces:
Sleeping
Sleeping
from transformers import pipeline | |
import gradio as gr | |
from gtts import gTTS | |
from openai import OpenAI | |
# Load the Whisper model for speech-to-text | |
pipe = pipeline(model="openai/whisper-small") | |
# Load the text generation model | |
# text_pipe = pipeline("text2text-generation", model="google/flan-t5-base") | |
def generate_gpt_response(text, api_key): | |
client = OpenAI(api_key=api_key) | |
response = client.chat.completions.create( | |
model='gpt-3.5-turbo-0125', | |
messages=[{"role": "user", "content": text}] | |
) | |
return response.choices[0].message.content | |
def transcribe(audio, api_key): | |
# Transcribe the audio to text | |
text = pipe(audio)["text"] | |
# Generate a response from the transcribed text | |
# lm_response = text_pipe(text)[0]["generated_text"] | |
lm_response = generate_gpt_response(text, api_key) | |
# Convert the response text to speech | |
tts = gTTS(lm_response, lang='ko') | |
# Save the generated audio | |
out_audio = "output_audio.mp3" | |
tts.save(out_audio) | |
return out_audio | |
# Create the Gradio interface | |
iface = gr.Interface( | |
fn=transcribe, | |
inputs=[ | |
gr.Audio(type="filepath"), | |
gr.Textbox(label="OpenAI API Key", type="password") # Add a textbox for the API key | |
], | |
outputs=gr.Audio(type="filepath"), | |
title="Whisper Small Glaswegian", | |
description="Realtime demo for Glaswegian speech recognition using a fine-tuned Whisper small model." | |
) | |
# Launch the interface | |
iface.launch(share=True) |