Views
No views yet
1import ctranslate2
2import sentencepiece as spm
3
4# Download model
5snapshot_download(
6 repo_id="JuliusFx/dyula-french-ctranslate2_v2_25epochs",
7 local_dir="/path/to/save/locally"
8)
9
10# Define model interface
11class CTranslate2Model:
12 def __init__(self, model_dir: str, sp_model_path: str) -> None:
13 self.translator = ctranslate2.Translator(model_dir)
14 self.sp = spm.SentencePieceProcessor()
15 self.sp.Load(sp_model_path)
16
17 def translate(self, sentence: str) -> str:
18 '''
19 Translate the given sentence.
20
21 :param sentence: Sentence to be translated
22 :return: Translated sentence.
23 '''
24 prepared_data = clean_text(sentence)
25 tokens = self.sp.Encode(prepared_data, out_type=str)
26 translation = self.translator.translate_batch([tokens], beam_size=5)
27 translated_sentence = self.sp.Decode(translation[0].hypotheses[0])
28 return translated_sentence
29
30# Initialize the model once
31model_dir = "/path/to/your/model_dir"
32sp_model_path = "/path/to/your/sp_model_path"
33translator = CTranslate2Model(model_dir=model_dir, sp_model_path=sp_model_path)
34
35def translate_sentence(sentence: str) -> str:
36 return translator.translate(sentence)
37
38# Example usage
39dyula_sentence = "i tɔgɔ bi cogodɔ"
40translated_sentence = translate_sentence(dyula_sentence)
41print("Dyula sentence:", dyula_sentence)
42print("Translated French sentence:", translated_sentence)