mirror of
https://github.com/yihong0618/bilingual_book_maker.git
synced 2025-06-06 11:35:49 +00:00
feat: support single_translate for txt & srt (#265)
* feat: support single_translate for txt & srt * style: black format * chore: change func name
This commit is contained in:
parent
60df5f2723
commit
b5060b8746
@ -43,6 +43,7 @@ class SRTBookLoader(BaseBookLoader):
|
|||||||
self.test_num = test_num
|
self.test_num = test_num
|
||||||
self.accumulated_num = 1
|
self.accumulated_num = 1
|
||||||
self.blocks = []
|
self.blocks = []
|
||||||
|
self.single_translate = single_translate
|
||||||
|
|
||||||
self.resume = resume
|
self.resume = resume
|
||||||
self.bin_path = f"{Path(srt_name).parent}/.{Path(srt_name).stem}.temp.bin"
|
self.bin_path = f"{Path(srt_name).parent}/.{Path(srt_name).stem}.temp.bin"
|
||||||
@ -76,6 +77,9 @@ class SRTBookLoader(BaseBookLoader):
|
|||||||
def _get_block_text(self, block):
|
def _get_block_text(self, block):
|
||||||
return f"{block['number']}\n{block['time']}\n{block['text']}"
|
return f"{block['number']}\n{block['time']}\n{block['text']}"
|
||||||
|
|
||||||
|
def _get_block_except_text(self, block):
|
||||||
|
return f"{block['number']}\n{block['time']}"
|
||||||
|
|
||||||
def _concat_blocks(self, sliced_text: str, text: str):
|
def _concat_blocks(self, sliced_text: str, text: str):
|
||||||
return f"{sliced_text}\n\n{text}" if sliced_text else text
|
return f"{sliced_text}\n\n{text}" if sliced_text else text
|
||||||
|
|
||||||
@ -186,7 +190,7 @@ class SRTBookLoader(BaseBookLoader):
|
|||||||
translated_blocks = []
|
translated_blocks = []
|
||||||
# try to translate one by one, so don't accumulate too much
|
# try to translate one by one, so don't accumulate too much
|
||||||
print(
|
print(
|
||||||
f"retry it one by one: {self.blocks[begin]['number']} - {self.blocks[end-1]['number']}"
|
f"retry it one by one: {self.blocks[begin]['number']} - {self.blocks[end - 1]['number']}"
|
||||||
)
|
)
|
||||||
for block in self.blocks[begin:end]:
|
for block in self.blocks[begin:end]:
|
||||||
try:
|
try:
|
||||||
@ -210,15 +214,25 @@ class SRTBookLoader(BaseBookLoader):
|
|||||||
for i, block in enumerate(translated_blocks):
|
for i, block in enumerate(translated_blocks):
|
||||||
text = block.get("text", "")
|
text = block.get("text", "")
|
||||||
self.p_to_save.append(text)
|
self.p_to_save.append(text)
|
||||||
self.bilingual_result.append(
|
if self.single_translate:
|
||||||
f"{self._get_block_text(self.blocks[begin + i])}\n{text}"
|
self.bilingual_result.append(
|
||||||
)
|
f"{self._get_block_except_text(self.blocks[begin + i])}\n{text}"
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
self.bilingual_result.append(
|
||||||
|
f"{self._get_block_text(self.blocks[begin + i])}\n{text}"
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
for i, block in enumerate(self.blocks[begin:end]):
|
for i, block in enumerate(self.blocks[begin:end]):
|
||||||
text = self.p_to_save[begin + i]
|
text = self.p_to_save[begin + i]
|
||||||
self.bilingual_result.append(
|
if self.single_translate:
|
||||||
f"{self._get_block_text(self.blocks[begin + i])}\n{text}"
|
self.bilingual_result.append(
|
||||||
)
|
f"{self._get_block_except_text(self.blocks[begin + i])}\n{text}"
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
self.bilingual_result.append(
|
||||||
|
f"{self._get_block_text(self.blocks[begin + i])}\n{text}"
|
||||||
|
)
|
||||||
|
|
||||||
index += end - begin
|
index += end - begin
|
||||||
if self.is_test and index > self.test_num:
|
if self.is_test and index > self.test_num:
|
||||||
|
@ -33,6 +33,7 @@ class TXTBookLoader(BaseBookLoader):
|
|||||||
self.bilingual_temp_result = []
|
self.bilingual_temp_result = []
|
||||||
self.test_num = test_num
|
self.test_num = test_num
|
||||||
self.batch_size = 10
|
self.batch_size = 10
|
||||||
|
self.single_translate = single_translate
|
||||||
|
|
||||||
try:
|
try:
|
||||||
with open(f"{txt_name}", encoding="utf-8") as f:
|
with open(f"{txt_name}", encoding="utf-8") as f:
|
||||||
@ -73,7 +74,8 @@ class TXTBookLoader(BaseBookLoader):
|
|||||||
print(e)
|
print(e)
|
||||||
raise Exception("Something is wrong when translate") from e
|
raise Exception("Something is wrong when translate") from e
|
||||||
self.p_to_save.append(temp)
|
self.p_to_save.append(temp)
|
||||||
self.bilingual_result.append(batch_text)
|
if not self.single_translate:
|
||||||
|
self.bilingual_result.append(batch_text)
|
||||||
self.bilingual_result.append(temp)
|
self.bilingual_result.append(temp)
|
||||||
index += self.batch_size
|
index += self.batch_size
|
||||||
if self.is_test and index > self.test_num:
|
if self.is_test and index > self.test_num:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user