目前在Linux上尚未有一套類似Capture2Text之擷圖翻譯軟體(詳: Capture2Text克服遊戲語言障礙), 在未知原因下也無法被WINE支援, 因此藉由網路上各位熱心無私網友之經驗分享, 整理出如下之替代方法; 另考量每人軟硬體設備, 及環境設定與操作習慣之差異, 加上本人為Ubuntu之初入門者, 如未能出現預期效果或還好更佳方案時, 煩請 賜教指正.
上述之執行結果如下影片:
2. 做法:
透過Shell Script整合擷圖, 圖片轉成文字, 翻譯之相關應用軟體為同一目標用途.
(注意:
1. 本擷圖翻譯方法須維持網路呈正常連線狀態;
2. 本操作對象以英文為翻譯來源, 簡體中文為翻譯目的)
2.1. 桌上型電腦硬體規格:
2.2. 相關軟體:
2.2.1.安裝作業系統:
Ubuntu 16.04 LTS版
2.2.2. 安裝擷圖應用軟體: 可自行選用偏好軟體
Shutter
於安裝完成後進行擷圖熱鍵之設定, 即可以滑鼠配合按鍵於螢幕上拖曳出擷圖矩形範圍, 其方式可參:
2.2.2.1. How to change the keyboard shortcut to take screenshots with Shutter?
2.2.2.2. ubuntu 安裝截圖工具 Shutter,並設定快捷鍵 Ctrl+Alt+A
2.2.2.3. shutter: Feature-rich Screenshot Tool
(注意: 參數有分大小寫)
一旦設置完成後, 就可使用按下熱鍵以進行其所提供之擷圖功能; 然後設定好擷圖之圖片格式(此處採*.png檔)及擷圖之圖檔儲存絕對路徑(如:
/home/MyOCR_Translate_Data
)(注意: 該路徑最好能獨立使用, 因為其內存在的所有圖片檔與文字檔都會被刪除), 在下述之第2.2.6. Shell Script一項會被用到.
2.2.3. 安裝圖片轉成文字應用軟體: 可自行選用偏好軟體
Tesseract-OCR
我採用的終端機(terminal)安裝語法為:
(注意: 語法第三項為下載所有語言包, 其約有一千多MB, 所以安裝需時略久, 若不喜者則另行採語言限定方式下載)
sudo apt install tesseract-ocr
sudo apt install libtesseract-dev
sudo apt-get install tesseract-ocr-all
2.2.4. 安裝python3-pip
此程式為配合下列之翻譯應用軟體與Google Translate之功能結合用, 我採用的終端機安裝語法為:
sudo apt install python3-pip
pip3 install requests
2.2.5. 安裝翻譯應用軟體: 可自行選用偏好軟體
GoldenDict
此軟體之字典庫需另行下載: zh_TW Dictionaries
因其採用字典庫路徑加載方式, 所以可自行規劃一資料夾予以有效管理;
另此軟體尚不支援全文翻譯, 故須借用Google Translate, 其設定方式為:
2.2.5.1. 至網站(google-translate-for-goldendict)下載工具包google-translate-for-goldendict-master.zip
下載後予以解壓縮, 為有效管理將可將該解壓縮工具包與字典庫同置;
2.2.5.2. 連結Google Translate之設定: 紀錄該工具包內檔案googletranslate.py與google_translate.png之所在路徑, 分別如:
絕對路徑/googletranslate.py
絕對路徑/google_translate.png
2.2.5.3. 開啟GoldenDict之主介面, 以滑鼠右鍵點擊其右上角且選擇"編輯此群組", 如下圖紅圈處:
進入後選"字典來源(S)"標籤頁, 再選"程式"標籤頁, 即可進行添加網路字典之資料設定, 依序點擊相關各項以選擇或輸入參數:
已啟用: 勾選進入後選"字典來源(S)"標籤頁, 再選"程式"標籤頁, 即可進行添加網路字典之資料設定, 依序點擊相關各項以選擇或輸入參數:
類型: 純文字
名稱: Google Translate
命令列: 填入語法如下, 將檔案googletranslate.py與其路徑添增下列綠色文字使成為語法 以下二選一:
繁體中文使用者之語法...
(注意: 其雖能進行全文翻譯, 但一次可輸入之字數仍極為有限)
繁體中文使用者之語法...
python3 絕對路徑/googletranslate.py zh-TW %GDWORD%
簡體中文使用者之語法...
簡體中文使用者之語法...
python3 絕對路徑/googletranslate.py zh-CN %GDWORD%
(如:
python3 /home/User/googletranslate.py zh-TW %GDWORD%
)
圖示: 填入檔案google_translate.png與其路徑...
絕對路徑/google_translate.png
(如:
/home/User/google_translate.png
)
(注意: 其雖能進行全文翻譯, 但一次可輸入之字數仍極為有限)
2.2.6. Shell Script
(注意: 上示貼文所指深度截屏乃Deepin)
下列分隔線間為我採用的Shell Script語法: 與上示貼文內容相異之處則以橘色文字背景標示之.
---分隔線_起---
#!/bin/bash
#本地goldendict的OCR取詞
cd Shutter之圖檔儲存絕對路徑 #監控和圖片存儲目錄
while true;do
num=$(find -name "*.png" -print)
if [ ! -n "$num" ]; then
sleep 1
else
mv *.png 1.png
tesseract 1.png ./out -l eng
var=$(cat out.txt)
goldendict "$var"
rm *.png
rm *.txt
sleep 1
fi
done
---分隔線_止---
開啟文字編輯器(我使用的是gedit文字編輯器), 將該語法複製貼入後進行Shutter圖檔儲存絕對路徑之修改(如: /home/MyOCR_Translate_Data
), 儲存成自命名的sh檔, 然後記下其路徑.
3. 操作:
在每次執行擷圖翻譯時, 需依照下列步驟進行操作, 如有顛倒否則會出錯(應該每次都能順利操作者, 卻於下次開機後不能正常執行, 執行後應該被刪除的圖片檔與文字檔卻依然存在...等):
(注意: 如果發生步驟顛倒時, 全部關閉再重來即可)
3.1. 啟動翻譯軟體;
3.2. 以終端機執行上述的sh檔, 我採用的終端機執行語法為:
cd /該sh檔的所在資料夾路徑/
chmod u+x sh檔全檔名
./sh檔全檔名
(如:
cd /home/MyOCR_Translate/
chmod u+x MyOCR_Translate_En.sh
./MyOCR_Translate_En.sh
)本sh檔於執行後, 直至所執行的終端機關閉前, 都會常駐於電腦中運作, 其中第二條語法只要於最初執行輸入一次即可, 之後則可免再輸入執行, 即如果關閉後要再啟動執行時, 則僅需在終端機內執行第一條與第三條語法;
3.3. 當要進行擷圖翻譯, 點擊Shutter擷圖熱鍵, 然後依其操作方式完成擷圖後, 依選取範圍大小即內容多寡而不定時顯示GoldenDict主介面及翻譯結果.
4. 心得:
於實際使用上, 當擷圖對象為網頁或桌面時則操作與回應速度較快, 若為遊戲與影片則較慢, 另其文字與背景太過近似, 或文字太小者也不利於判讀與正確翻譯, 遊戲或影片在全螢幕模式下也會造成擷圖操作之困難;
Tesseract-OCR的辨識訓練程度也會影響準確與否;
此外, 只要存圖路徑設定匹配, Ubuntu內建的螢幕擷圖(Print Screen)也是可用, 唯一不便之處就是不能自由調整擷圖範圍;
最後, 此擷圖翻譯的操作可能會干擾遊戲的進行或致使其關閉.
修正: 20190406(Sat.)
Tesseract-OCR的辨識訓練程度也會影響準確與否;
此外, 只要存圖路徑設定匹配, Ubuntu內建的螢幕擷圖(Print Screen)也是可用, 唯一不便之處就是不能自由調整擷圖範圍;
最後, 此擷圖翻譯的操作可能會干擾遊戲的進行或致使其關閉.
修正: 20190406(Sat.)
沒有留言:
張貼留言