Spaces:
Running
Running
use public model
Browse files
app.py
CHANGED
|
@@ -1,6 +1,5 @@
|
|
| 1 |
import re
|
| 2 |
import io
|
| 3 |
-
import os
|
| 4 |
import zipfile
|
| 5 |
from pathlib import Path
|
| 6 |
from typing import Tuple
|
|
@@ -9,32 +8,19 @@ import gradio as gr
|
|
| 9 |
from docx import Document
|
| 10 |
from docx.oxml import OxmlElement
|
| 11 |
from docx.oxml.ns import qn
|
|
|
|
| 12 |
|
| 13 |
-
from transformers import (
|
| 14 |
-
AutoTokenizer,
|
| 15 |
-
AutoModelForSeq2SeqLM,
|
| 16 |
-
pipeline,
|
| 17 |
-
)
|
| 18 |
-
|
| 19 |
-
|
| 20 |
|
| 21 |
# ----------------------------------------------------
|
| 22 |
-
# 1) ÇEVİRİ MODELİ (Helsinki-NLP / opus-mt-en-tr)
|
| 23 |
# ----------------------------------------------------
|
| 24 |
|
| 25 |
-
MODEL_NAME = "Helsinki-NLP/opus-mt-en-tr"
|
| 26 |
-
|
| 27 |
-
# token=None => hiçbir HF token kullanılmasın, anonim indir.
|
| 28 |
-
hf_token = os.getenv("HF_TOKEN") # Space secrets'ten geliyor
|
| 29 |
-
|
| 30 |
-
tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME, token=hf_token)
|
| 31 |
-
model = AutoModelForSeq2SeqLM.from_pretrained(MODEL_NAME, token=hf_token)
|
| 32 |
-
|
| 33 |
|
|
|
|
| 34 |
translator = pipeline(
|
| 35 |
"translation",
|
| 36 |
-
model=
|
| 37 |
-
tokenizer=tokenizer,
|
| 38 |
)
|
| 39 |
|
| 40 |
|
|
@@ -43,7 +29,8 @@ def translate_en_tr(text: str) -> str:
|
|
| 43 |
Sadece TEXT için EN->TR çeviri.
|
| 44 |
Satır satır çeviriyoruz ki satır yapısı bozulmasın.
|
| 45 |
"""
|
| 46 |
-
|
|
|
|
| 47 |
return text
|
| 48 |
|
| 49 |
lines = text.splitlines()
|
|
@@ -290,10 +277,10 @@ with gr.Blocks() as demo:
|
|
| 290 |
|
| 291 |
- Bir veya birden fazla **.srt** yükle.
|
| 292 |
- Her satır için:
|
| 293 |
-
- **Character**: `WOMAN:`, `LEWIS:`, `NURSE:` gibi isimler çıkarılır (
|
| 294 |
- **TC**: sadece **MM.SS** (start time'dan).
|
| 295 |
- **TEXT**: `NAME:` prefix'leri atılmış metin.
|
| 296 |
-
- İstersen TEXT'i **Helsinki-NLP/opus-mt-en-tr** ile Türkçe'ye çevir (Character asla çevrilmez).
|
| 297 |
- Çıktı: Tüm DOCX'leri içeren tek bir **ZIP**.
|
| 298 |
"""
|
| 299 |
)
|
|
|
|
| 1 |
import re
|
| 2 |
import io
|
|
|
|
| 3 |
import zipfile
|
| 4 |
from pathlib import Path
|
| 5 |
from typing import Tuple
|
|
|
|
| 8 |
from docx import Document
|
| 9 |
from docx.oxml import OxmlElement
|
| 10 |
from docx.oxml.ns import qn
|
| 11 |
+
from transformers import pipeline
|
| 12 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 13 |
|
| 14 |
# ----------------------------------------------------
|
| 15 |
+
# 1) ÇEVİRİ MODELİ (Helsinki-NLP / opus-mt-tc-big-en-tr)
|
| 16 |
# ----------------------------------------------------
|
| 17 |
|
| 18 |
+
MODEL_NAME = "Helsinki-NLP/opus-mt-tc-big-en-tr"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 19 |
|
| 20 |
+
# Public model, token vermiyoruz.
|
| 21 |
translator = pipeline(
|
| 22 |
"translation",
|
| 23 |
+
model=MODEL_NAME,
|
|
|
|
| 24 |
)
|
| 25 |
|
| 26 |
|
|
|
|
| 29 |
Sadece TEXT için EN->TR çeviri.
|
| 30 |
Satır satır çeviriyoruz ki satır yapısı bozulmasın.
|
| 31 |
"""
|
| 32 |
+
text = text.strip()
|
| 33 |
+
if not text:
|
| 34 |
return text
|
| 35 |
|
| 36 |
lines = text.splitlines()
|
|
|
|
| 277 |
|
| 278 |
- Bir veya birden fazla **.srt** yükle.
|
| 279 |
- Her satır için:
|
| 280 |
+
- **Character**: `WOMAN:`, `LEWIS:`, `NURSE:` gibi isimler çıkarılır (**çeviri yok**).
|
| 281 |
- **TC**: sadece **MM.SS** (start time'dan).
|
| 282 |
- **TEXT**: `NAME:` prefix'leri atılmış metin.
|
| 283 |
+
- İstersen TEXT'i **Helsinki-NLP/opus-mt-tc-big-en-tr** ile Türkçe'ye çevir (Character asla çevrilmez).
|
| 284 |
- Çıktı: Tüm DOCX'leri içeren tek bir **ZIP**.
|
| 285 |
"""
|
| 286 |
)
|