import subprocess
import sys
import os
from pydub import AudioSegment
try:
import openai
except ImportError:
subprocess.check_call([sys.executable, "-m", "pip", "install", "openai"])
import openai # Import the library after installing it
import gradio as gr
def setup_gradio_interface():
with gr.Blocks() as demo:
# 大標題:透過 HTML 實現置中與加大
gr.Markdown(
"""
萬國語言翻譯機
""",
elem_id="title"
)
api_key_input = gr.Textbox(label="第一步:請輸入OpenAI API金鑰", placeholder="OpenAI API Key")
txt_input = gr.Textbox(label="第二步:請輸入原文")
drop_input = gr.Dropdown(
label="第三步:選擇語系",
choices=["English", "Chinese", "French", "Spanish", "Japanese", "German"],
value="English" # 預設值
)
submit_button = gr.Button("第四步:開始翻譯")
txt_output = gr.Textbox(label="第五步:語言翻譯結果")
def openai_api(input_text, lang, key):
openai.api_key = key
prompt = f"Please translate the following text to {lang}:\n{input_text}"
completion = openai.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": prompt}]
)
return completion.choices[0].message.content
submit_button.click(
openai_api,
inputs=[txt_input, drop_input, api_key_input],
outputs=[txt_output]
)
return demo
# Run the interface
if __name__ == "__main__":
demo = setup_gradio_interface()
demo.launch()