处理 Tesseract 输出:删除换行符,连接各个页面

处理 Tesseract 输出:删除换行符,连接各个页面

我有一个 pdf,无法直接将其处理为 .txt 以通过 piper TTS,因为 .pdf 的输出缺少字母,而且通常难以理解(https://pastebin.com/J3rASD2F):

art
from
role o di nit
“Dand
feverishness
s ran
common lacein
417
ambition,
but
in

这是从 pdftotext 的输出中实际复制粘贴的,我试过的其他应用程序都没有比它做得更好。所以我用pdftoppm -png <input> <output>(https://imgur.com/a/a5Ofr3D) 的各个页面。Tesseract 将处理它,但 pdf/png 的每一行末尾都有换行符。我希望能够将所有单独的输出页面组合在一起,以便 piper TTS 可以从中制作音频文件。VietOCR 似乎可以正确格式化它,但我无法让它处理所有 600 个 .png 并输出 piper 可以读取的单个文件。批量处理不会修复换行符并将页面保留为单独的文件。

来自 tesseract 的单页输出:https://pastebin.com/HSK19gHk

目前最佳成绩:使用 VietOCR 删除换行符后:https://pastebin.com/ZqEsFAFc

使用以下命令删除换行符后sed ':a;N;$!ba;s/\n/\ /g'https://pastebin.com/WPY4RHF3

连接文件 cat "*txt" > concatfile.txt,但换行符需要以某种方式删除,piper 可以处理它们,到目前为止,我发现的所有方法都可以将它们全部删除。

答案1

听起来你想删除换行符之内段落,但保留它们之间段落。所以也许

... | awk -v RS= -v ORS='\n\n' '{$1=$1} 1' | ...

或者

... | perl -00 -lpe '$_ =~ s/\n/ /g' | ...

答案2

您可以使用 ( 替换换行符为空格參考):

sed ':a;N;$!ba;s/\n/ /g' txtfile.txt

因此,您可以合并所有文件并使用以下命令删除所有换行符:

sed ':a;N;$!ba;s/\n/ /g' *txt > outputfile.txt

相关内容