File size: 1,550 Bytes
157f27b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import gradio as gr
from transformers import pipeline

# Load mô hình nhận diện giọng nói (ASR)
asr = pipeline("automatic-speech-recognition", model="openai/whisper-base")

# Load mô hình ngôn ngữ (tùy chọn)
llm = pipeline("text-generation", model="mrm8488/t5-base-finetuned-question-generation-ap", max_new_tokens=100)

# Xử lý âm thanh: Nhận dạng giọng nói
def transcribe(audio_file):
    if audio_file is None:
        return "Không có file âm thanh."
    result = asr(audio_file)
    text = result["text"]
    return text

# Gửi văn bản vào LLM (nếu muốn)
def ask_llm(text):
    if not text:
        return "Chưa có văn bản đầu vào"
    response = llm(text)
    return response[0]["generated_text"]

# Gradio UI
with gr.Blocks() as demo:
    gr.Markdown("# Voice Assistant Demo")
    gr.Markdown("### Gửi file âm thanh để nhận diện giọng nói bằng Whisper")

    with gr.Row():
        audio_input = gr.Audio(label="Chọn file âm thanh", type="filepath")
        btn_transcribe = gr.Button("Nhận diện giọng nói")
    
    transcript_output = gr.Textbox(label="Kết quả nhận diện")

    btn_transcribe.click(fn=transcribe, inputs=audio_input, outputs=transcript_output)

    gr.Markdown("### Gửi văn bản vào mô hình LLM")
    llm_input = gr.Textbox(label="Văn bản đầu vào")
    btn_llm = gr.Button("Gửi vào LLM")
    llm_output = gr.Textbox(label="Kết quả LLM")

    btn_llm.click(fn=ask_llm, inputs=llm_input, outputs=llm_output)

demo.launch()