geetspace / app.py
geetansh810's picture
Update app.py
05aadd0 verified
Raw
History Blame Contribute Delete
1.31 kB
# app.py
import os
import gradio as gr
from transformers import pipeline
hf_token = os.getenv("HUGGINGFACEHUB_API_TOKEN") # this is None if not set
# 1. Speech-to-text (Whisper small)
asr = pipeline("automatic-speech-recognition", model="openai/whisper-small")
# 2. Text generation (LLM)
chatbot = pipeline("text-generation", model="mistralai/Mistral-7B-Instruct-v0.2", use_auth_token=hf_token)
# 3. Text-to-speech (Parler-TTS mini)
tts = pipeline("text-to-speech", model="parler-tts/parler-tts-mini-multilingual")
def voice_interview(audio):
# audio is a (sample_rate, numpy array)
transcript = asr(audio)["text"]
reply = chatbot(transcript, max_length=200, do_sample=True)[0]["generated_text"]
audio_out = tts(reply) # returns dict with 'audio' key
return transcript, reply, (audio_out["audio"], audio_out["sampling_rate"])
with gr.Blocks() as demo:
gr.Markdown("### 🎤 Mock Interview Bot")
audio_in = gr.Audio(sources=["microphone"], type="numpy", label="Speak your answer")
transcript_out = gr.Textbox(label="Transcript")
reply_out = gr.Textbox(label="Bot Reply")
audio_out = gr.Audio(label="Bot's Voice Reply")
btn = gr.Button("Submit")
btn.click(fn=voice_interview, inputs=audio_in, outputs=[transcript_out, reply_out, audio_out])
demo.launch()