File size: 1,383 Bytes
20d7318
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import os
import gradio as gr
from dotenv import load_dotenv
from openai import OpenAI

load_dotenv()
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))

def transcribe(file_path):
    audio_file = open(file_path, "rb")
    transcription = client.audio.transcriptions.create(
        model="whisper-1",
        file=audio_file
    )
    audio_file.close()
    return transcription.text

def clear_transcription():
    return ""

def clear_audio(recording):
    return None

with gr.Blocks(theme=gr.themes.Soft()) as demo:
    gr.Markdown("# EpicAI 音声認識AI")
    with gr.Row():
        with gr.Column():
            audio_input = gr.Audio(source="microphone", type="filepath", label="音声を録音")
            submit_button = gr.Button("音声認識を実行")
            clear_audio_button = gr.Button("入力音声をクリア")
        with gr.Column():
            transcription_output = gr.Textbox(label="音声認識結果", elem_id="transcription_output")
            clear_transcription_button = gr.Button("結果をクリア", elem_id="clear_transcription_button")

    submit_button.click(transcribe, inputs=audio_input, outputs=transcription_output)
    clear_audio_button.click(clear_audio, inputs=audio_input, outputs=audio_input)
    clear_transcription_button.click(clear_transcription, inputs=None, outputs=transcription_output)

demo.launch(share=True)