mad-professor 開源論文閱讀助手,讓會嗆人的教授導讀你的 PDF

mad-professor 是一套 Apache-2.0 開源的 PyQt6 桌面論文閱讀助手:PDF 餵進去自動轉成中英對照,右側的 AI 教授用暴躁人設回答你的問題,還能語音發問與朗讀。這篇算清安裝前的三筆帳:環境工程時間、NVIDIA 顯卡門檻,以及論文文字會送去哪些雲端 API。

用 AI 摘要這篇文章:

mad-professor(暴躁的教授)是一套放在 GitHub 上的開源桌面軟體,採 Apache-2.0 授權:把英文論文 PDF 餵進去,它會自動轉出中英對照的正文,畫面右側的 AI 教授讓你用中文發問,還能開麥克風語音對話,回答一邊顯示文字、一邊用語音朗讀出來。先講結論:這套體驗組合市面上不好找,代價也寫得很明白,要有 NVIDIA 顯示卡、要自己撐起一整套 Python 環境,而且論文文字會送上你自己的雲端 API 帳號。還有一件事得放在最前面:repo 在 2025 年 4 月推了第一次、也是唯一一次 commit 之後就沒再動過,零 release、零後續修補,那 1600 多顆星按的是一份凍結的快照。想裝的人要把它當成現狀買斷的軟體:裝得起來就是你的,裝到一半卡住,沒有開發者會來救。

它換到的體驗,別的地方真的不好找

市面上問 PDF 的工具不少,但「語音對話式的雙語論文導讀」這個組合,目前多半要自己拼。mad-professor 把整條流程做進同一個桌面視窗:左側是論文正文,右上角一鍵切換中英文對照,左右側欄都能折疊收起來做長文沉浸閱讀;右側是對話區,底下選好麥克風,按住講話就完成發問,教授的回答直接播成語音。

mad-professor 主介面截圖:深藍三欄版面,左側論文列表與匯入進度,中間論文正文與切換為英文按鈕,右側教授對話區含麥克風與語音裝置選單Pin
mad-professor 主畫面:左側論文列表、中間正文閱讀區、右側教授對話區,對話框下方可選麥克風裝置(官方 GitHub README,2026 年 9 月)

操作面照 README 的使用說明走:側邊欄點匯入論文、選好 PDF,等翻譯和索引建完就能讀;也可以把多份 PDF 直接丟進 data 資料夾,程式會偵測沒處理過的檔案批次消化。語音輸入的狀態要看指示燈:按了麥克風按鈕,燈號轉綠再開口;說話時燈號沒有變化,多半是這支麥克風偵測不到人聲,官方的建議很直接,換一個輸入裝置試,別跟驅動程式糾纏。

mad-professor 語音對話畫面:對話區下方有提問輸入框、麥克風按鈕與語音輸入裝置下拉選單Pin
語音對話視圖:輸入框旁的麥克風按鈕與輸入裝置選單,選對麥克風才能讓指示燈正常作動(官方 GitHub README,2026 年 9 月)
mad-professor 論文閱讀畫面:中間顯示 Attention Is All You Need 論文內容與切換為英文按鈕,右側導師對話氣泡Pin
論文閱讀視圖:中英對照閱讀區可一鍵切換語言,右側教授以對話氣泡回答(官方 GitHub README,2026 年 9 月)

語音對話還有個實際的坑,README 的已知問題段自己寫了:如果聲音用喇叭外放,教授的回答會被麥克風再收進去,系統把老師的話當成你的提問,一問一答就打結了,實際使用要戴耳機。另外兩條官方自列的限制也該記下:它只認論文結構的 PDF,丟書籍或投影片進去可能直接報錯;音訊裝置還沒載入完成就切換輸入源,可能會切換失敗。

嗆人是表層,底盤是一條正經的論文處理管線

「暴躁的教授」聽起來像個搞怪專案,翻開程式碼會發現工程面意外地扎實。照 repo 的專案結構,一份 PDF 進來後要依序過八個處理器:先把 PDF 解析成 Markdown、結構化成 JSON、做分塊與翻譯、還原版面,接著生成摘要與延伸問題,最後建立向量索引供檢索。PDF 解析用的是開源專案 MinerU,在本機跑;問答時用向量檢索撈出相關段落,連同問題一起送給語言模型。公式也照顧到了,repo 裡打包了整套 KaTeX 函式庫連字型都帶齊,負責渲染論文裡的數學式,prompt 資料夾還有一份公式分析專用的提示詞(同類的 PDF 轉 Markdown 工具,可以參考我們介紹過的〈OCRFlux 把 PDF 批次轉成 Markdown〉)。匯入完成後,每篇論文還會自動生成摘要與延伸問題,第一次打開就有東西可問。問答的設計也值得說清楚:教授的回答以檢索到的論文段落為本,用意在壓低模型憑常識瞎答的空間,而不是把論文丟給聊天機器人自由發揮。

效果面要劃一條誠實的線:翻譯品質、回答準確度、語音反應速度,這些官方文件與程式碼都保證不了;而且它用自備金鑰的雲端模型,表現會跟著你選的模型與網路條件浮動。真的要評估,拿一篇自己讀熟的論文導進去問幾題,比看任何介紹文章都快。

人格那一層其實就是 prompt 檔。我讀了內建的兩份人設:雷電將軍版是學術至高權威,言詞精準、對膚淺的問題表現不屑、給學生肯定時極度吝嗇;可莉版則是元氣爆棚的爆破迷,講到爆炸話題會興奮起來。軟體名稱裡的「暴躁」,對應的顯然是前者。兩份 prompt 開頭都有一條共同指令:不能透露自己是 AI,角色扮演要撐到底。回答的語氣還會連動語音:TTS 模組的請求參數裡有一個情緒欄位,值由問題內容映射而來,罵得兇的時候連聲音都聽得出來。

想換人設或換聲音,目前沒有設定介面,要改原始碼:在 prompt 資料夾放新的提示詞檔,再去改對話模組開頭的人設路徑常數;聲音則是去語音服務後台建一個 voice id,回來改 TTS 模組的參數。社群裡有人提了 pull request 想加設定選單,到現在沒有被合併。

環境帳:預留一個下午才裝得完

這是三筆帳裡最花時間的一筆。它不是下載點開就能用的軟體,README 的安裝段列了一長串:用 conda 開 Python 3.10 環境(官方範例釘在 3.10.16)、單獨安裝指定版本的 MinerU 套件、裝對應 CUDA 11.8、12.4 或 12.6 的 torch、numpy 得壓在 2.1.1 以下、GPU 版的向量索引庫 FAISS 只能透過 conda 裝,最後跑一支模型下載腳本,把 PDF 解析模型抓到本機,好幾 GB 起跳;文字嵌入模型與麥克風用的 Whisper 語音模型,則是第一次用到時才自動下載。裝完還要改兩處設定:使用者目錄裡的 magic-pdf.json 把 device-mode 改成 cuda,以及 config.py 裡填上自己的 API 金鑰。

難度不是紙上談兵。GitHub issue 裡最有說服力的一則,標題就是「純小白,可以教我怎麼部署嗎」,發問一年多,底下零回應;另外兩則卡在套件找不到、範本檔失蹤的 issue,最後也是社群使用者互相撈出答案的。翻 requirements.txt 還能發現一個小分歧:清單裡列的是 CPU 版 FAISS,README 卻要求 conda 另裝 GPU 版,兩者介面相容,但對照著裝的時候容易疑惑哪一步出了錯。還有一個小地方:README 的安裝範例直接用阿里雲的 pip 鏡像站,照貼不會壞,但卡在下載時換回官方來源試試,速度不一定是壞事。把這些加起來,環境工程預留一個下午是合理的估計,而且預設讀者是寫過 Python 的人。

硬體帳:沒有 NVIDIA 顯卡先繞路

第二個門檻是硬體。README 的環境要求寫得直接:要 CUDA 支援、顯示卡記憶體 6GB 以上。這一條把 Mac 使用者擋在門外,而且不是技術問題,是官方姿態:macOS 支援的 issue 從 2025 年 4 月開到現在,七則討論沒有結論;有人提交了支援 Apple 與 Intel 顯示運算的 pull request,2026 年 6 月被關閉,沒有合併,官方程式碼從未跟上。要求出網頁版的兩則 issue 也靜靜躺著。所以實際的相容範圍就是 Windows 或 Linux 加 NVIDIA 顯示卡,A 卡和 Mac 都不在劇本裡。

Issue 討論裡倒有一個邊緣案例值得知道:有使用者回報在 Mac 上讓 PDF 解析模型動了起來,下載了約 2.2GB 的模型,但那只是管線的前段,語音與 GPU 相關的功能仍是另一回事。把這條路當成玩家玩法可以,當成正式支援就是自找麻煩。門檻本身倒沒有想像中貴:6GB 指的是顯示卡記憶體,規格上 12GB 的入門級顯示卡就已經超過,不必為了它升級整台機器。

資料帳:論文文字會離開你的電腦

三筆帳裡,這筆最容易被「開源、本地」的字面印象蓋過去。翻開 config.py,開頭就是四個欄位:API 網址、API 金鑰、語音服務的群組 ID、語音服務的金鑰。翻譯和問答走的是雲端語言模型,README 指名用 DeepSeek,金鑰自己申請;語音合成走 MiniMax。換句話說,匯入論文的那一刻,整篇論文的文字會送到語言模型做全文翻譯,之後每次發問,檢索出來的段落也會當成提示詞送出去,教授的回答再送去語音服務合成聲音。照管線的設計,翻譯在匯入時一次完成,之後閱讀對照不會重複計費;發問時只把檢索到的段落送出去,整本論文不會再上傳一次,但段落同樣出自論文內文,機敏與否的判斷標準不變。帳單算在自己的 API 帳號上,翻譯一份長論文的用量在匯入時一次發生,之後每問一句、每播一次語音都是新的計費。

留在本機的範圍也說清楚:PDF 解析、文字嵌入模型、向量檢索、麥克風的語音辨識,這些都在自己機器上跑,requirements.txt 裡沒有任何遙測或分析類的依賴。嵌入用的模型是開源的 BAAI/bge-m3,這也是評估檢索品質時可以先查的線索。README 表示雲端那兩段可以透過修改程式改接本地模型,不過這是作者的宣稱,改接的工程量要自己評估。還有一層要想清楚的:DeepSeek 與 MiniMax 都是中國的服務商,已發表的公開論文無所謂,還在審稿中或涉及機敏題目的手稿,送出去之前值得停一下。同樣的需求如果不想自架,〈ChatPDF 線上論文問答工具〉是零安裝的雲端選項,〈Read Frog 網頁雙語翻譯閱讀擴充〉則把雙語閱讀留在瀏覽器裡。

1600 顆星背後,是一份不再更新的快照

把時間軸攤開看會更明白自己在裝什麼。repo 在 2025 年 4 月 18 日建立,同一天推送了名為 Initial commit 的唯一一次 commit,之後將近一年半,沒有第二個 commit、沒有任何 release、沒有版本標籤。對照 1600 多顆星與將近 200 次 fork(截至 2026 年 9 月中),它走的是典型的病毒式路線:作品夠有趣,關注湧進來,然後作者回去忙自己的事。issue 區幾乎是社群自治,最有代表性的一則是使用者找不到索引檔 papers_index.json,以為少了檔案,最後由另一位使用者翻出程式碼,指出索引會在第一次成功匯入論文時自動生成,問題才收尾。語音合成正常發請求、喇叭卻沒有聲音的求助文,同樣躺到現在。

這種形態對採用者的意義很實際:教學文章永遠對不上你遇到的版本、釘死的依賴版本會隨時間慢慢腐壞、遇到 bug 要嘛自己修要嘛開 fork。好消息是授權是寬鬆的 Apache-2.0,改作、商用、分支都不需要打招呼,近 200 個 fork 裡想要有人接手升級依賴,自己開一條分支完全合法;壞消息是所有維運責任都隨著下載一起搬到你家。

誰該裝、誰該路過

適合動手的人,四個條件最好同時成立:手上是 Windows 或 Linux 加 NVIDIA 顯示卡;常讀英文論文而且讀得吃力;論文內容不機敏;寫過 Python,遇到套件衝突不會慌。符合的話,它給的東西確實獨特:一位隨時找得到、講中文、還會念你的指導教授。開發者還有另一個進場理由:這份程式碼的模組切分意外乾淨,處理器、檢索、語音、介面各自分層,當 PyQt6 加 RAG 檢索的教學級參考實作來讀,比多數入門範例完整得多。

不符合條件的人有更省力的路:Mac 或輕量使用者去用雲端的 PDF 問答服務;想讀的是 GitHub 專案文件而不是論文的人,〈Zread AI 幫你導讀 GitHub 專案〉更對口。真想試的人,第一步就三件事:把 repo clone 下來、照 README 開 conda 環境裝依賴、跑模型下載腳本,然後把兩把金鑰填進 config.py,丟一份已發表的論文進去當測試品。

一句話收尾:mad-professor 把「找一位嚴厲的指導教授陪讀論文」做成了開源軟體,體驗是真的有魅力;環境、顯卡、資料流向這三筆帳,也是真的要先算清楚。算得過就裝,算不過,看別人裝也很快樂。

Sliven 褚崇名
Sliven 褚崇名

每日分享科技新知、免費資源以及 WordPress、虛擬主機相關主題,任何問題歡迎在科技月球下方留言,或是發送 Email 至 [email protected] 與我聯繫。

文章: 1318

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


Share to...