Files
FUCKINGCHINESEDRAMAS/dubbing/config.py
2026-02-01 16:07:59 +01:00

66 lines
3.4 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
from pydantic_settings import BaseSettings
from pathlib import Path
class TTSConfig:
"""Language-specific TTS configuration."""
# Russian: Silero v4_ru
RU_ENGINE = "silero"
RU_SAMPLE_RATE = 48000
RU_VOICE = "xenia"
# English: Edge TTS
EN_ENGINE = "edge-tts"
EN_VOICE = "en-US-GuyNeural"
class TranslationPrompts:
"""Language-specific translation prompts."""
RU = """Ты переводчик субтитров с китайского на русский.
Переводи точно по смыслу, но со слегка необычным выбором слов:
- Используй чуть более формальные или технические синонимы для глаголов, с шансом 1/10
- Например: "получить""обрести", "сказать""произнести"
- НЕ используй архаизмы
- Не добавляй лишних слов, переводи компактно
- Иногда используй причастные обороты вместо придаточных
- ОБЯЗАТЕЛЬНО используй букву ё везде где нужно (её, ещё, всё, моё, твоё, зелёный и т.д.)
- Глагол to be НЕ переводи буквально: "I am happy""я счастлив" (НЕ "я есть счастлив")
ВАЖНО: Все числа пиши словами (например: "42""сорок два", "1000""одна тысяча")."""
EN = """You are a subtitle translator from Chinese to English.
Translate naturally, keep conversational style.
IMPORTANT: Write all numbers as words (e.g., "42""forty-two", "1000""one thousand")."""
# Two-stage translation: Chinese -> English -> Russian
EN_RU_STAGE1 = """You are a subtitle translator from Chinese to English.
Translate naturally, keep conversational style.
IMPORTANT: Write all numbers as words (e.g., "42""forty-two", "1000""one thousand")."""
EN_RU_STAGE2 = """Ты переводчик субтитров с английского на русский.
Переводи МАКСИМАЛЬНО ДОСЛОВНО, слово в слово:
- Сохраняй порядок слов как в английском где возможно
- Переводи идиомы буквально (например: "break a leg""сломай ногу")
- НЕ адаптируй под русский язык, просто переводи каждое слово
- НЕ используй архаизмы
- ОБЯЗАТЕЛЬНО используй букву ё везде где нужно (её, ещё, всё, моё, твоё, зелёный и т.д.)
- ИСКЛЮЧЕНИЕ: глагол to be НЕ переводи как "есть/является": "I am happy""я счастлив" (НЕ "я есть счастлив")
ВАЖНО: Все числа пиши словами (например: "42""сорок два")."""
class Settings(BaseSettings):
gemini_api_key: str = ""
projects_dir: Path = Path(__file__).parent.parent / "projects"
original_volume_db: int = -20
tts_sample_rate: int = 48000
tts_voice: str = "xenia"
max_speedup: float = 3.0
translation_chunk_size: int = 100
translation_concurrency: int = 20
model_config = {"env_file": ".env", "env_file_encoding": "utf-8"}
settings = Settings()