Spaces:
Runtime error
Runtime error
| import streamlit as st | |
| from engine import Translate | |
| import os | |
| import shutil | |
| import json | |
| translator = Translate() | |
| # Creating the list of the tasks the seamlessM4t model can perform | |
| tasks = ['S2ST (Speech to Speech translation)', | |
| 'S2TT (Speech to Text translation)', | |
| 'T2ST (Text to Speech translation)', | |
| 'T2TT (Text to Text translation)'] | |
| def move_audio_file(source_path, destination_path): | |
| try: | |
| shutil.move(source_path, destination_path) | |
| return True # Return True if the move was successful | |
| except Exception as e: | |
| print(f"Error moving the audio file: {str(e)}") | |
| return False # Return False if there was an error | |
| # List of language options | |
| languages = [ | |
| "Catalan", | |
| "Czech", | |
| "Danish", | |
| "Dutch", | |
| "English", | |
| "Estonian", | |
| "Finnish", | |
| "French", | |
| "German", | |
| "Hindi", | |
| "Indonesian", | |
| "Italian", | |
| "Japanese", | |
| "Korean", | |
| "Maltese", | |
| "Mandarin Chinese", | |
| "Modern Standard Arabic", | |
| "Northern Uzbek", | |
| "Polish", | |
| "Portuguese", | |
| "Romanian", | |
| "Russian", | |
| "Slovak", | |
| "Spanish", | |
| "Swahili", | |
| "Swedish", | |
| "Tagalog", | |
| "Telugu", | |
| "Thai", | |
| "Turkish", | |
| "Ukrainian", | |
| "Urdu", | |
| "Vietnamese", | |
| "Welsh", | |
| "Western Persian" | |
| ] | |
| st.title("Seamless-M4t Translator") | |
| task = st.selectbox('Select Task:', tasks) | |
| if task == 'S2ST (Speech to Speech translation)': | |
| upload_audio = st.file_uploader('Upload Audio file', type=['mp3', 'wav', 'ogg']) | |
| target_language = st.selectbox('Target language:', languages) | |
| button_clicked = st.button('Convert') | |
| if button_clicked: | |
| if upload_audio and target_language: | |
| result = translator.translate(task=task, audio=upload_audio, target_language=target_language) | |
| # Set the source and destination paths for moving the audio file | |
| source_path = result.replace("\\", "/") | |
| audio_paths = source_path.split(',') | |
| for audio_path in audio_paths: | |
| try: | |
| audio_path = audio_path.lstrip("['") | |
| st.audio(audio_path.strip('"'), format="audio/*") | |
| except Exception as e: | |
| # audio_content = audio_path.lstrip(']') | |
| audio_content=audio_path.rstrip(']') | |
| st.write(audio_content) | |
| elif task == 'S2TT (Speech to Text translation)': | |
| upload_audio = st.file_uploader('Upload Audio file', type=['mp3', 'wav', 'ogg']) | |
| # Create a button | |
| target_language = st.selectbox('Target language : ', languages) | |
| button_clicked = st.button("Convert") | |
| if button_clicked: | |
| if upload_audio: | |
| result = translator.translate(task=task, audio=upload_audio, target_language=target_language) | |
| result = json.loads(result) | |
| st.write(result) | |
| elif task == 'T2ST (Text to Speech translation)': | |
| input_language = st.selectbox("Input Language:", languages) | |
| text = st.text_area("Enter the Text Here:") | |
| target_language = st.selectbox('Target language:', languages) | |
| button_clicked = st.button('Convert') | |
| if button_clicked: | |
| if text and input_language and target_language: | |
| result = translator.translate(task=task, text=text, input_language=input_language, target_language=target_language) | |
| # Set the source and destination paths for moving the audio file | |
| source_path = result.replace("\\", "/") | |
| audio_paths = source_path.split(',') | |
| for audio_path in audio_paths: | |
| try: | |
| audio_path = audio_path.lstrip("['") | |
| st.audio(audio_path.strip('"'), format="audio/wav") | |
| except Exception as e: | |
| # audio_content = audio_path.lstrip(']') | |
| audio_content=audio_path.rstrip(']') | |
| st.write(audio_content) | |
| elif task == 'T2TT (Text to Text translation)': | |
| input_language = st.selectbox("Input Language:", languages) | |
| text = st.text_area("Enter the Text Here:") | |
| target_language = st.selectbox('Target language:', languages) | |
| button_clicked = st.button('Convert') | |
| if button_clicked: | |
| if text and input_language and target_language: | |
| result = translator.translate(task=task, text=text, input_language=input_language, target_language=target_language) | |
| conv = json.loads(result) | |
| st.write(conv[1]) | |