我試過所有PDF編輯器,然後讓ChatGPT給我造了個更好的
一位作者為妻子解決黃色樂譜PDF的去色問題,發現直接使用AI處理檔案可能改變內容,轉而讓AI編寫確定性Python指令碼,成功製作了去色工具。文章討論了AI的非確定性與程式設計的確定性,並給出實用建議。
最近,我的妻子Denise開始參加教堂合唱團,她需要練習新歌。歌譜印在類似平裝書的黃色紙張上,她希望掃描成PDF後去除黃色背景,再放大列印到8.5x11英寸的紙上,這樣就不用戴老花鏡了。她還打算將樂譜匯入PlayScore 2應用,該應用能播放樂譜以便跟唱。然而,黃色背景可能干擾播放軟體的識別。
我最初嘗試用Photoshop去除黃色,但每張圖片需要不同的滑塊設定,過程繁瑣耗時。於是,我建議她使用ChatGPT。她擁有ChatGPT Plus賬戶,這看似是個好選擇。
我進行了一些測試,透過提示讓ChatGPT返回去除黃色背景的PDF。它確實做到了,但不幸的是,ChatGPT微妙地改變了PDF內容。Denise擔心ChatGPT會改動音符、歌詞或其他原始資訊,導致她練習錯誤。ChatGPT和其他AI是“非確定性的”,意味著同一輸入可能產生不同輸出,這讓她無法接受。
她需要的是一把絕對確定的工具,而Python可以做到。我在哈佛Python程式設計認證的最終專案中編寫過一個互動式影像管理工具,知道Python擁有實現所需功能的庫。但我當時非常忙碌,沒時間從頭編寫程式。然而,ChatGPT有無限的時間。
我決定讓ChatGPT編寫一個Python指令碼,用於去色。我給它的提示很簡單:“編寫一個Python指令碼,讀取JPEG,將非灰非黑的畫素設為白色,儲存為name-decolor.jpg。允許輕微著色灰色,使彩色背景上的黑色文字保持為黑色。如果輸入是PDF,能處理多頁。”等我做完晚飯,ChatGPT也完成了。
指令碼最初有一些問題,比如需要安裝某個Python庫,但之後執行順暢。它透過命令列執行,輸入一個PDF檔案,輸出一個去除了背景色的新PDF。這個指令碼已經上傳到我的GitHub倉庫。
為了演示,我從紐約公共圖書館網站獲取了一首公共領域歌曲——爵士大師Fats Waller的作品。指令碼完美處理了黃色背景,保留了所有音符和文字。
這次經歷帶來了幾點啟發:首先,使用AI不一定非要依賴其非確定性處理,有時可以讓它編寫基於確定性演算法的程式。其次,不必花費大量時間建立介面,簡單的命令列工具就能解決問題。第三,不要害怕向AI細化需求,持續測試並調整。最後,Python功能強大,擁有眾多庫,是快速開發的首選。
所以,如果你需要快速解決某個問題,不妨讓ChatGPT為你編寫程式。它確實幫我幫妻子解決了問題,我甚至同時完成了其他家務。你是否有過因為擔心AI微妙改變原始檔案而避免直接使用的經歷?歡迎在評論區分享。