Spaces:
Runtime error
Runtime error
| from huggingface_hub import InferenceClient | |
| import gradio as gr | |
| import re | |
| client = InferenceClient("mistralai/Mixtral-8x7B-Instruct-v0.1") | |
| def translate_subtitles(srt_content, target_language): | |
| """ | |
| Translate the subtitles in the SRT file content to the target language. | |
| """ | |
| # Split the SRT content into blocks | |
| blocks = srt_content.split('\n\n') | |
| translated_blocks = [] | |
| for block in blocks: | |
| if block.strip() == "": | |
| continue | |
| lines = block.split('\n') | |
| if len(lines) >= 3: | |
| index = lines[0] | |
| time_range = lines[1] | |
| subtitle_text = '\n'.join(lines[2:]) | |
| # Translate the subtitle text | |
| translation = client.translation(subtitle_text, target_language=target_language) | |
| translated_text = translation[0]['translation_text'] | |
| translated_blocks.append(f"{index}\n{time_range}\n{translated_text}") | |
| return '\n\n'.join(translated_blocks) | |
| def read_srt_file(file_path): | |
| """ | |
| Read SRT file content. | |
| """ | |
| with open(file_path, 'r', encoding='utf-8') as file: | |
| return file.read() | |
| def save_translated_srt(content, output_path): | |
| """ | |
| Save the translated subtitles to a new SRT file. | |
| """ | |
| with open(output_path, 'w', encoding='utf-8') as file: | |
| file.write(content) | |
| def translate_srt_interface(srt_file, target_language): | |
| """ | |
| Gradio interface function to translate SRT file content. | |
| """ | |
| srt_content = srt_file.read() | |
| translated_content = translate_subtitles(srt_content, target_language) | |
| return translated_content | |
| iface = gr.Interface( | |
| fn=translate_srt_interface, | |
| inputs=[gr.File(file_type="srt"), gr.Textbox(label="Target Language Code")], | |
| outputs="text", | |
| title="SRT File Translator", | |
| description="Translate SRT subtitle files to your desired language." | |
| ) | |
| iface.launch() | |