()
| 63 | st.balloons() |
| 64 | |
| 65 | def audio_processing_section(): |
| 66 | st.header(t("c. Dubbing")) |
| 67 | with st.container(border=True): |
| 68 | st.markdown(f""" |
| 69 | <p style='font-size: 20px;'> |
| 70 | {t("This stage includes the following steps:")} |
| 71 | <p style='font-size: 20px;'> |
| 72 | 1. {t("Generate audio tasks and chunks")}<br> |
| 73 | 2. {t("Extract reference audio")}<br> |
| 74 | 3. {t("Generate and merge audio files")}<br> |
| 75 | 4. {t("Merge final audio into video")} |
| 76 | """, unsafe_allow_html=True) |
| 77 | if not os.path.exists(DUB_VIDEO): |
| 78 | if st.button(t("Start Audio Processing"), key="audio_processing_button"): |
| 79 | process_audio() |
| 80 | st.rerun() |
| 81 | else: |
| 82 | st.success(t("Audio processing is complete! You can check the audio files in the `output` folder.")) |
| 83 | if load_key("burn_subtitles"): |
| 84 | st.video(DUB_VIDEO) |
| 85 | if st.button(t("Delete dubbing files"), key="delete_dubbing_files"): |
| 86 | delete_dubbing_files() |
| 87 | st.rerun() |
| 88 | if st.button(t("Archive to 'history'"), key="cleanup_in_audio_processing"): |
| 89 | cleanup() |
| 90 | st.rerun() |
| 91 | |
| 92 | def process_audio(): |
| 93 | with st.spinner(t("Generate audio tasks")): |
no test coverage detected