import gradio as gr from ui.ui_component import * from ui.lang_setting import * from main.adjust import * from main.set_up import prepare_input, prepare_video_subtitle from main.summary import get_summary from tool.gdrive_tool import get_video_from_url with gr.Blocks() as demo: ui_lang_radio.render() ui_lang_radio.change(change_lang, inputs=ui_lang_radio, outputs=comp_to_update) top_markdown.render() with gr.Column(): with gr.Row(): with gr.Column(): input_url.render() url_download_button.render() url_download_button.click( get_video_from_url, input_url, input_video) input_video.render() with gr.Column(): with gr.Row(): start_time.render() end_time.render() lang_radio.render() model_dropdown.render() start_button.render() ( start_button .click(prepare_input, [input_video, start_time, end_time, lang_radio, model_dropdown], [output_transcribe, output_file, output_video]) .success(prepare_output, inputs=input_video, outputs=[download_video_subtitle_button, adjust_speaker, adjust_audio, prev_button, next_button, adjust_button, summary_button]) ) bottom_markdown.render() with gr.Row(equal_height=False): with gr.Column(): output_video.render() output_file.render() download_video_subtitle_button.render() ( download_video_subtitle_button .click(prepare_video_subtitle, inputs=[input_video, start_time, end_time], outputs=output_file) ) with gr.Column(): output_transcribe.render() middle_markdown.render() with gr.Row(equal_height=False): adjust_audio.render() adjust_speaker.render() with gr.Row(): prev_button.render() next_button.render() prev_button.click(get_speakers_previous, inputs=[ adjust_speaker], outputs=[adjust_speaker, adjust_audio]) next_button.click(get_speakers_next, inputs=[adjust_speaker], outputs=[ adjust_speaker, adjust_audio]) adjust_button.render() adjust_button.click(start_adjust, inputs=[adjust_speaker], outputs=[ output_transcribe, output_file, output_video]) summary_markdown.render() output_summary.render() summary_button.render() summary_button.click(get_summary, inputs=lang_radio, outputs=output_summary) with gr.Accordion("Copyright"): gr.Markdown("OpenAI Whisper, OpenAI GPT, Pyannote & Huggingface") if __name__ == "__main__": demo.queue(concurrency_count=2, max_size=2).launch( share=False, show_error=True)