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)