我有一个 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