AI 語音轉文字格式太亂?獨創免安裝小工具『Remove Text Extra Spaces』幫你一鍵搞定!
📌AI 轉錄很方便,但格式總是亂七八糟!
近年來,AI 語音轉文字或OCR圖片辨識轉文字等工具越來越流行,像是:
🔹 語音轉文字工具
- Notebook LM(Google AI 語音轉錄)
- Whisper(OpenAI)(高準確度語音辨識)
- Google Docs 語音輸入
- Microsoft Word 語音輸入
- iPhone / Android 內建語音辨識
🔹 OCR 圖片轉文字工具
- Google Lens(影像即時辨識與文字擷取)
- Adobe Acrobat OCR(PDF 內文擷取)
- Microsoft OneNote OCR(手寫與圖片文字辨識)
- ABBYY FineReader(高準確度 OCR 軟體)
這些工具雖然能快速將語音轉換成文字,但時常會出現文字排版的格式錯誤:
❌ 每個字之間多了一堆空格(例:「我 是 一 個 學 生」)
❌ 標點符號的空格錯亂(有時前後都有空格,有時又黏在一起)
❌ 英文單字間的空格被刪掉(如「Machine learning」變成「Machinelearning」)
這些問題讓轉錄出的文字無法直接使用(例如無法搜尋完整詞組),即使在文字編輯軟體內以批次取代空格的方式去處理,還得手動逐字修正中英文標點符號夾雜導致的格式錯誤,非常浪費時間!
於是,我決定自己開發一款可以自動修正 AI 轉錄與 OCR 轉換文字後格式異常的小工具,來解決這個問題。
📌 但我完全不會寫程式?!AI 讓我完成了這次挑戰
老實說,我以前完全沒有寫程式的經驗,但這次我決定挑戰看看!
於是,我和 AI(ChatGPT)合作,藉由過往在本機安裝 AI 繪圖軟體 Stable Diffusion 稍微接觸過的 Python,一步步開發出這款工具。
這過程中,我不斷:
- 調整代碼邏輯(修正空格、標點符號問題)
- 學習如何打包成
.exe檔案(讓一般麻瓜使用者無需安裝 Python 也能使用) - 解決格式錯亂的 Bug(確保輸出的格式完全符合需求)
經過多次修正,終於誕生了這款「Remove Text Extra Spaces」小工具!
📌 工具特色:一鍵修正 AI 轉錄格式
這款工具的主要功能:
✅ 全形標點符號(。,?!)後不加空格(避免格式過於寬鬆)
✅ 半形標點符號(.,!?)後加 1 個空格(符合英文格式規則)
✅ 完全刪除所有中文字之間的多餘空格(確保段落緊湊並讓轉出文字易於後續使用)
✅ 保留英文單字間的空格(如
✅ 支援大量文字全文整份處理(無字數上限)
✅ 半形標點符號(.,!?)後加 1 個空格(符合英文格式規則)
✅ 完全刪除所有中文字之間的多餘空格(確保段落緊湊並讓轉出文字易於後續使用)
✅ 保留英文單字間的空格(如
"Machine learning" 不會變 "Machinelearning")✅ 支援大量文字全文整份處理(無字數上限)
✅ 解決「呢他」這類詞組問題(變成
"呢,他會",讓語意更清楚)✅ 直接在原始檔案相同資料夾內輸出結果(自動在檔名後加上"
_cleaned"後綴)🖥️ 適用場景
- AI 語音轉文字後的排版修正
- OCR 掃描後的格式整理
- 任何需要快速清理亂格式的文本
📌 下載 & 操作教學
📥 下載工具(無須安裝,可直接執行)
🚀 操作步驟
1️⃣ 下載並解壓縮後執行「remove_text_extra_spaces.exe」(雙擊開啟)
2️⃣ 選擇要修正的 TXT 檔案(點選「開啟檔案」)
3️⃣ 自動輸出於原始檔案相同資料夾("原始檔名
2️⃣ 選擇要修正的 TXT 檔案(點選「開啟檔案」)
3️⃣ 自動輸出於原始檔案相同資料夾("原始檔名
_cleaned.txt")
4️⃣ 完成!你的文字格式已經自動修正 🎉
import re
import os
import tkinter as tk
from tkinter import filedialog
def clean_text_ultimate(text):
# 1️⃣ 先去除所有多餘的空格,確保所有空格變為單一空格
text = re.sub(r'\s+', ' ', text)
# 2️⃣ **徹底刪除中文字與中文字之間的空格**
text = re.sub(r'(?<=[\u4e00-\u9fff]) (?=[\u4e00-\u9fff])', '', text)
# 3️⃣ **標點符號處理**
# - 移除「全形標點符號」前的空格(如 `這 是 , 一個 測試` → `這是,一個測試`)
text = re.sub(r'\s+([。,?!])', r'\1', text)
# - **半形標點符號處理**
# - 確保半形標點(.,!?)後有 1 個空格,但全形標點後不加空格
text = re.sub(r'([.,!?])(\S)', r'\1 \2', text) # 確保半形標點後面有空格
text = re.sub(r'([。,?!]) ', r'\1', text) # 確保全形標點後無空格
# 4️⃣ **保留英文字母間的空格**
text = re.sub(r'([A-Za-z])\s+([A-Za-z])', r'\1 \2', text)
# 5️⃣ **特定詞句修正**(如 "呢他" 應該是 "呢,他")
text = re.sub(r'呢(\S)', r'呢,\1', text)
# 6️⃣ **去除首尾多餘空格**
return text.strip()
# 建立 Tkinter 視窗(隱藏主視窗)
root = tk.Tk()
root.withdraw()
# 讓使用者選擇要處理的文字檔
file_path = filedialog.askopenfilename(title="選擇文字檔案", filetypes=[("文字檔案", "*.txt")])
if file_path: # 確保使用者有選擇檔案
with open(file_path, "r", encoding="utf-8") as file:
raw_text = file.read()
# 進行文字清理
cleaned_text = clean_text_ultimate(raw_text)
# 取得原始檔案的資料夾 & 檔名
dir_name, file_name = os.path.split(file_path)
file_base, file_ext = os.path.splitext(file_name)
# 產生輸出檔案名稱(加上 _cleaned)
output_file = os.path.join(dir_name, f"{file_base}_cleaned{file_ext}")
# 將處理後的內容存回原始檔案所在資料夾
with open(output_file, "w", encoding="utf-8") as file:
file.write(cleaned_text)
print(f"\n✅ 清理完成!結果已儲存為:{output_file}")
else:
print("\n⚠️ 未選擇檔案,程式已取消。")
📌 第一次寫程式的心得
這次用 AI 來幫助我寫程式,讓我體驗到:
- 即使完全不懂程式,也可以靠 AI 來開發自己的工具
- 一步步 Debug 和測試,能夠讓工具變得更完善
- 把技術轉化成對生活有幫助的應用,真的很有成就感!
希望這款工具能幫助到有類似需求的朋友,如果你有任何建議或鼓勵,也歡迎留言或寫信告訴我!
#工具誠可貴,人力價更高
#能用電腦自動化代勞的事,千萬不要土法煉鋼用人力手動去做

這太好玩了! 立刻把空格消光光了,很可愛的小程式
回覆刪除每次跟 AI 共做 python,我都沒有成功過, debug 也弄不出來
感謝分享
另外麻瓜使用者有一個小建議,
回覆刪除他會跳出兩個視窗
第一個是要分析的檔案
第二個是要儲存的檔案
可是因為視窗看起來長一樣,初次使用者會有點不明所以,為什麼跳兩次
是否可以給定一個檔名(例如 xxx_removed),讓他存回原路徑就好
如果需要更名,或是移動位置,這個我們很熟的檔案總管都可以做
不知道這樣會不會更適合麻瓜呢?
謝謝您的回饋建議,筆者已針對這個需求發布更新版 version 2,歡迎重新下載試用唷!
刪除感謝版主飛速更新
刪除