Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| from google import genai | |
| def process_audio(audio_file , prompt , model_sel , lang_sel , api_key : str) -> str : ## lang_sel : dil seçimi | |
| client = genai.Client(api_key=api_key) | |
| my_file = client.files.upload(file=audio_file) | |
| lang_sel = ",".join(lang_sel) | |
| lang_prompt = "Ses dosyasını" + lang_sel + "dilinde transkript et" | |
| prompt = lang_prompt + prompt ## ses dosyasını transkript et ve kullanıcının istediği işlemleri gerçekleştir | |
| response = client.models.generate_content( | |
| model = model_sel , | |
| contents= [prompt , my_file] ## promptu al ve dosyayı buna göre içerik oluştur | |
| ) | |
| return response.text | |
| # demo = gr.Interface( | |
| # fn = process_audio , | |
| # title= "Gemini Ses Dosyası Transkript Asistanı" , | |
| # theme= gr.themes.Citrus() , | |
| # inputs= [ | |
| # gr.Audio(type = "filepath") , | |
| # gr.Textbox(label= "Prompt") , | |
| # gr.Dropdown(choices=["gemini-1.5-pro" , "gemini-2.0-flash" , "gemini-2.0-lite"] , value = "gemini-2.0-flash" , label = "Model seçin") , | |
| # gr.CheckboxGroup(choices=["Türkçe" , "İngilizce" , "Almanca" , "İspanyolca" , "Rusça"] , | |
| # value = "Türkçe" , label = "Dil seçin") ### tek dil veya çoklu dil seçimi için CheckboxGroup kullandık | |
| # ] , | |
| # outputs = gr.Textbox() | |
| # ) | |
| with gr.Blocks(theme = gr.themes.Citrus()) as demo: | |
| gr.Markdown("# Gemini Ses Dosyası Transkript Asistanı") | |
| with gr.Row(): | |
| with gr.Column(): | |
| model_sel = gr.Dropdown(choices=["gemini-1.5-pro" , "gemini-2.0-flash" , "gemini-2.0-lite"] , | |
| value = "gemini-2.0-flash" , label = "Model seçin") | |
| language_sel = gr.CheckboxGroup(choices = ["Türkçe" , "İngilizce" , "Almanca" , "İspanyolca" , "Rusça"] , | |
| value = ["Türkçe"] , label = "Dil seçin" ) | |
| api_key = gr.Textbox(placeholder = "Enter your Gemini API Key" , label="🔑 API Key", | |
| type = "password" , interactive = True ) | |
| audio_file = gr.Audio(type="filepath") | |
| prompt = gr.Textbox(label = "Prompt") | |
| submit_btn = gr.Button("Gönder") | |
| with gr.Column() : | |
| output = gr.Textbox(label = "Output") | |
| submit_btn.click( | |
| process_audio , ## function | |
| [audio_file , prompt , model_sel , language_sel ,api_key] , ## input | |
| [output] ##outputs | |
| ) | |
| if __name__ == "__main__" : | |
| demo.launch(show_error=True) | |