簡短分享一下近期使用GPT-4生成Word巨集的結果。
最近都會為錄製的Youtube影片上傳字幕,該字幕同樣是由OpenAI的Whisper生成的,但生成完後往往會有不少語音識別的錯誤,例如「資源」→「支援」。
每次生成完後,我都需要整份看一次,修正錯誤。
隨著做了越來越多次,對於重複處理同樣的錯誤感到厭倦,升起了寫Word巨集的想法。
原本是自己用巨集錄製來做,但隨著想要實現的功能越來越複雜,覺得不如試試看用GPT幫我寫。
目前為止寫了三種功能,底下會分別介紹,理論上我應該只要複製當時給GPT的提示詞,你們就能理解我想要什麼功能了(?)。
-----
1.請幫我寫一個word的巨集,其功能是自動根據excel的表單進行全部尋找與取代,同個資料夾下會有一個translation.exl的檔案,其row A會是要尋找的字串,row B會是要取代成的字串,此巨集應將excel中的每組對照都在word中執行「全部取代」的效果。
功能應該不難理解,此要求僅一次就正確生成了,就是我想要製作一個尋找與取代的清單,把那些常見的語音辨識錯誤一鍵修正。
-----
2.再寫一個與前面相關的word巨集,幫助我快速新增excel中欲尋找與取代的文字。每次啟動此巨集時,將當前反白的文字作為欲尋找的文字,並跳出可以輸入文字框的方塊,讓我輸入欲取代成的文字,輸入後將這組尋找與取代的文字新增入excel的表格中。
同樣是一次生成就實現了。因為只有第一種功能的情況下,我每次找到錯誤處就要複製貼上到Excel裡,然後再打一次正確的版本,反覆切換視窗與複製貼上也很消磨,就請它製作了這個功能。
之後有請它再做更方便的版本,新增完的當下也對當前文本進行尋找與取代,也是一次生成就實現。
提示詞是「請在剛才的基礎上,額外新增當下立即對文件執行該字串全部尋找與取代的功能」
-----
第三個功能就比較複雜一些了,不過我認為我的提示詞應該還是人類看得懂的內容。
3.請再幫我寫一個word巨集,功能如下:
我會先反白一段文字,此巨集會跳出視窗印出一個可供我勾選的清單列表,上面每一列是從此文件中尋找剛才「反白」的文字段落,包含該段文字前後各5個文字(這樣才能判斷前後文)。
還要有一個文字框,供我輸入方才「反白」的內容要替換成的文字。
接著視窗中要有一個確認鍵,按下確認後,根據我上面每一列是否有打勾,將有打勾的部分中對應「反白」的文字替換成我文字框中輸入的內容。
GPT首先跟我說明,巨集沒辦法直接生成表格的清單,需要我手動製作一個Userform,我也不知道這是什麼東西,但總之按照它的描述新增了相關的內容,然後稍微上網查了一下介面與屬性設定,就完成了這部分。
巨集本身的部分就沒有一次成功了。
它成功印出了供選擇的清單介面,但填寫完後按下確認,並沒有實現如我預期的效果。
這個功能的概念是,有些語音擷取的錯誤只限於這部影片,可能不適用於所有影片,這類型的錯誤就不適合記錄在前面所說的Excel裡,只要在此份中更正即可。
並且更常見的情況是,此敘述出現在這份中,但有時候是正確的,有時候是錯誤的。
例如「他要」跟「它要」有時是前者,有時是後者,需要看前後文來判斷,如果直接全部取代,就會犯錯。
有這個功能的話,我只要把「他要」框起來,巨集就會列出所有含有「他要」的段落,包含前後幾個字(這樣才能從前後文判斷是否需要修改),然後我把要修改的選取,這樣就可以只修改有誤的地方。
之後來回了很多次,才漸漸實現我想要的功能,底下是我每次的提示詞:
3-1
請更正word巨集的部分,第2點「加上前後五個字」的意思是被尋找到的部分,在其原文中的前後5個字。 舉例來說,如果尋找的是「他有」,而文章中有一段是「那這樣就可以知道他有很多資源」,所謂的加上前後5個字是要讓我在視窗中看到「就可以知道他有很多資源」
3-2
word回報引數錯誤 偵錯到的是這行 surroundingText = Mid(matchRange.Text, -startOffset) & matchRange.Text & Mid(matchRange.Text, endOffset) 請更正此錯誤
3-3
程式碼似乎仍有誤,只有當我全部都勾選時,才有成功替換,當我只勾選一部分時,結果完全沒有替換掉任何地方,請再更正
3-4
上述程式碼的功能只成功取代了清單中選擇的第一個項目,其他選取的項目就沒有被取代了,請更正。 另外其中matchRange.Start的部分應該要+1才會對應到正確的前後文字
3-5
問題仍未解決,應該是因為 ' 取得使用者選擇的替換文字與匹配項目 replaceText = FindReplaceForm.SelectedReplaceText 的部分,這裡無法取得所有被選到要替換的地方?
3-6
變成取代為空白字串了,請再次更正
3-7
它仍然只會替換掉清單中第一個被選取到的項目,請再次更正
3-8
結果沒變,或許你應該嘗試重寫一次這整段程式碼
3-9
結果沒變,仍然只替換掉了第一個 應該是每一次的尋找與取代,都要回到清單中尋找下一個被勾選的項目
3-10
下面是現行的程式碼,請依其修改,它的問題在於它是根據我勾選了幾個,取代前面遇到的幾個,而不是我勾選的那幾個。
(程式碼省略)
3-11
上述程式碼在展示時都會缺少反白框的前一個字,例如尋找「相同」,字串「這段文字裡有相同的說明」被擷取出來時就只會有「這段文字裡相同的說明」 請修復這個錯誤。
最終的結果其實仍有Bug,我依照我自己對程式碼的理解,微調了一些內容,才變成比較堪用的版本。
然而仍然是不完美的版本,最終的版本面對完全重複的多個句子時,只會修改遇到的第一個句子,不過畢竟講話出現完全重複的10個字的機率很低,所以這仍是可使用的版本。
(我沒修復這個問題當然是因為我不知道怎麼改寫出這個效果(X))
-----
事後想想,如果我是請人寫這樣功能的巨集,會花多少時間呢?(可能要至少半個小時?)
我願意支付多少成本呢?
大概台幣500~1000元吧,根據最後成品的細節有多完美而定(UI)。
說不定GPT消耗的電力都超過這個價格(X)(我隨口說說的,我也沒研究)。
前兩個巨集算是我自己稍微查一下資料,三個小時有可能寫得出來。
第三個可能就要很久了,可能會花10個小時以上研究如何使用Userform的介面與設定,如何在巨集中呼叫所需的內容;再來尋找與取代的部分由於邏輯稍微複雜一些,可能會花3個小時Debug。
(當然花這些時間就變成是我在學習了,不只是在實現這個功能)
留言列表