Spaces:
Sleeping
Sleeping
Commit History
-
EchoScript : two fully independent pipelines, chosen explicitly, never both from one click : Transcript & Translations vs. Phonetic Transcription (IPA)
usertea9b67bb3
-
EchoScript : Fixes : Why Persian/Portuguese/Turkish were failing , Korean removed from Marian targets , Multiple clicks , UI improvements
userteac3d36fc
-
EchoScript : 20260701 0455 - Bug 1 (Persian missing) - the real root cause: The HF Hub returns 401 Unauthorized (not 404) for nonexistent repos when requests are unauthenticated. The fix: Replaced all live Hub checks with KNOWN_MARIAN_PAIRS - a static, hand-verified table of every (source, target) pair and its exact repo suffix. No network calls, no rate limits, no 401/404 ambiguity. Bug 2 (loading spinner on cached languages) - the real cause: generate_translations was a regular function, so Gradio held the loading spinner on every output component in translation_stage_outputs for the entire duration of the slowest new translation. The fix: Converted to a Gradio generator that yields twice: once immediately (pass 1, all cached results shown instantly, new languages left as no-op gr.update()), then once more per new language as each one finishes (pass 2).
usertea7198bd8 -
EchoScript : 20260630 0857 - _marian_model_exists() , _safe_marian_exists() , HF_TOKEN/HUGGINGFACE_HUB_TOKEN
usertea58a8d7f
-
Helsinki-NLP published the English→Japanese model as opus-mt-en-jap - using jap, not the standard code ja - while the reverse direction (opus-mt-ja-en) correctly uses ja. That's an inconsistency in their own catalog, not my logic, but my code assumed standard ISO codes everywhere, so it was 404ing on a model that actually exists.
usertea815d3aa
-
EchoScript : 1 & 2 - the static 4-language list was the real bug. 3 & 4 - already correct, verified by audit.
usertea1788966
-
What changed:
userteaservices/translation.py TranslationService.translate()/translate_many() now take an api_key parameter, checked fresh on every call — no instance state holds it. Key present → routes to the Claude backend, using ANTHROPIC_TARGET_LANGUAGES (the full 11-language list: French, English, German, Persian, Spanish, Italian, Portuguese, Dutch, Arabic, Russian, Turkish). Key absent → routes to MarianMT (MARIAN_TARGET_LANGUAGES: English, German, Persian, Spanish — the set where direct/English-pivot coverage is solid). _anthropic_client(api_key) builds a fresh client per call and is not cached — the key lives only for the duration of that one translation call, never persisted in module state, never logged in error messages, never written anywhere. app.py New password-masked "Anthropic API Key (optional)" field with inline copy explaining the trade-off. The Outputs checkbox list updates live as the key field changes (.change() handler): typing a key expands the list to all 11 languages while pre…ae768cc -
EchoScript : made it automatic, not exclusive: TranslationService picks anthropic when ANTHROPIC_API_KEY is set, otherwise falls back to marian (fully offline/free) - overridable via ECHOSCRIPT_TRANSLATION_BACKEND=anthropic|marian. So EchoScript still works with zero API key, but gets better translation quality and zero missing-pair errors the moment you set one.
usertea7f4c279
-
EchoScript : services\translation.py , Fix: services/translation.py now loads MarianMT directly via AutoModelForSeq2SeqLM + AutoTokenizer and calls model.generate() itself, bypassing the removed pipeline() task wrapper entirely. This is the path the official MarianMT docs use now too, so it's not a workaround you'll need to revisit on the next transformers release.
usertea0f04f89 -
EchoScript : New Architecture
usertea7d761b6