公告: 本站內所有河洛語文之字詞書寫皆以此為準

[語文學習]河洛語文之常用漢字詞彙收錄概觀

內文: 因內容略大 故開啟時間會稍加延遲                      河洛語文之常用漢字詞彙收錄概觀-1-1                 河洛語文之常用漢字詞彙收錄概觀-1-2               河洛語文 之常用漢字詞彙收錄概觀-2-1    ...

2019年2月7日 星期四

[電腦應用]Linux-在Ubuntu上實現擷圖翻譯之功能

1. 目標:
目前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)"標籤頁, 再選"程式"標籤頁, 即可進行添加網路字典之資料設定, 依序點擊相關各項以選擇或輸入參數:
已啟用: 勾選
類型: 純文字
名稱: 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
)
完成上述事項後按下"確定"即可, 如下圖:










之後在主界面右上角就會出現代表Google Translate的圖示以供使用, 如下圖:











(注意: 其雖能進行全文翻譯, 但一次可輸入之字數仍極為有限)

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.)

沒有留言:

張貼留言