|
import gradio as gr |
|
from deep_translator import GoogleTranslator |
|
from gtts import gTTS |
|
import os |
|
|
|
def translate_and_speak(text: str, target_lang: str = "ru") -> str: |
|
"""Переводит текст на выбранный язык и озвучивает его. |
|
Args: |
|
text: Входной текст. |
|
target_lang: Целевой язык (по умолчанию - русский). |
|
Returns: |
|
Путь к аудиофайлу для воспроизведения. |
|
""" |
|
try: |
|
translated_text = GoogleTranslator(source="auto", target=target_lang).translate(text) |
|
tts = gTTS(translated_text, lang=target_lang) |
|
|
|
filename = "translated_speech.mp3" |
|
tts.save(filename) |
|
|
|
return filename |
|
except Exception as e: |
|
return f"Ошибка: {str(e)}" |
|
|
|
|
|
def generate_audio(text, language): |
|
audio_path = translate_and_speak(text, language) |
|
return audio_path |
|
|
|
lang_options = { |
|
"Русский": "ru", |
|
"Английский": "en", |
|
"Французский": "fr", |
|
"Немецкий": "de", |
|
"Испанский": "es" |
|
} |
|
|
|
gr.Interface( |
|
fn=generate_audio, |
|
inputs=[ |
|
gr.Textbox(label="Введите текст"), |
|
gr.Dropdown(choices=list(lang_options.keys()), value="Русский", label="Выберите язык перевода") |
|
], |
|
outputs=gr.Audio(label="Озвученный перевод"), |
|
title="Переводчик с озвучкой", |
|
description="Введите текст, выберите язык, и получите аудиофайл с переводом." |
|
).launch() |