import streamlit as st from easynmt import EasyNMT languageTranslationModelValue = EasyNMT('opus-mt') languagesSourceDestination = [('en', 'es')] def languageTranslationValue(languageSentenceOriginated, languageOriginalContent, languageTranslatedContent): return languageTranslationModelValue.translate(languageSentenceOriginated, source_lang=languageOriginalContent, target_lang=languageTranslatedContent) def languageShowMarkdown(): st.markdown("Video Translation For Subtitles") st.sidebar.markdown('Video Translation Language From English to Spanish') st.sidebar.text("\n") st.sidebar.markdown("English to Spanish Translation Language") st.sidebar.text("\n") return languageShowMarkdown() languageSourceValue = st.file_uploader("",type=['srt']) if languageSourceValue is not None: translationValueEntireData = [translationValueLineOrigin for translationValueLineOrigin in languageSourceValue] translationLanguageAmountLines = sum(1 for translationValueLineOrigin in translationValueEntireData) translationValueNextStep = int(translationLanguageAmountLines/100) for translationValueFirstIndex, translationValueLanguagePairGeneration in enumerate(languagesSourceDestination): if translationValueFirstIndex==0: st.markdown('Processing __English__ to __Spanish__'.format(translationValueLanguagePairGeneration[0], translationValueLanguagePairGeneration[1])) translationValueOutputFile=open('English_Spanish.srt'.format(translationValueLanguagePairGeneration[0], translationValueLanguagePairGeneration[1]), 'w') dropdownLanguageGeneration = st.progress(0) languageGenerationSRTText = "" q=0 for translationValueSecondIndex, translationValueLineOrigin in enumerate(translationValueEntireData): print (translationValueSecondIndex, q, translationLanguageAmountLines, translationValueNextStep) translationValueLineOrigin = str(translationValueLineOrigin) if q!=100: if translationValueSecondIndex%translationValueNextStep==0: q=q+1 dropdownLanguageGeneration.progress(q) if translationValueLineOrigin[0].isnumeric(): languageGenerationSRTText += translationValueLineOrigin else: translationValueConvertedOutput = languageTranslationValue(translationValueLineOrigin, translationValueLanguagePairGeneration[0], translationValueLanguagePairGeneration[1]) languageGenerationSRTText += translationValueConvertedOutput translationValueOutputFile.write(languageGenerationSRTText) if translationValueFirstIndex==len(languagesSourceDestination)-1: st.markdown('The respective translations for the video from English to Spanish has been done!') st.write('The following files with the translated language content are saved locally on the disk!')