Spaces:
Runtime error
Runtime error
File size: 1,455 Bytes
46f80b5 4b8cdaf 46f80b5 4b8cdaf 46f80b5 2d8ef64 46f80b5 2d8ef64 4b8cdaf 46f80b5 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | from flask import Flask, render_template, request, jsonify
from transformers import MarianMTModel, MarianTokenizer
from langdetect import detect
from sacremoses import MosesTokenizer, MosesDetokenizer
app = Flask(__name__)
# Supported languages for translation
SUPPORTED_LANGUAGES = {
"en": "English",
"fr": "French",
"es": "Spanish",
"de": "German",
"it": "Italian"
}
@app.route("/")
def index():
return render_template("index.html")
@app.route("/translate", methods=["POST"])
def translate_text():
data = request.get_json()
text = data["text"]
target_lang = data["target_language"]
translated_text = translate_text_function(text, target_lang)
return jsonify({"translated_text": translated_text})
def translate_text_function(text, target_lang="fr"):
# Detect input text language
input_lang = detect(text)
# Load pre-trained translation model
model_name = f'Helsinki-NLP/opus-mt-{input_lang}-{target_lang}'
model = MarianMTModel.from_pretrained(model_name)
tokenizer = MarianTokenizer.from_pretrained(model_name)
# Tokenize input text
inputs = tokenizer(text, return_tensors="pt", padding=True, truncation=True)
# Translate input text
translated = model.generate(**inputs)
# Decode translated text
translated_text = tokenizer.decode(translated[0], skip_special_tokens=True)
return translated_text
if __name__ == "__main__":
app.run(debug=True)
|