feat: 新增智慧簡報旁白生成系統 (Smart Slide Voiceover System)

- 新增 Excel 輸入模組:解析 .xlsx 格式講稿檔案
- 新增 TTS 引擎模組:整合 edge-tts 調用 Azure Neural Voice
- 新增 PyQt6 圖形介面:檔案選擇、語音選擇、進度監控
- 新增執行緒模型:QThread + Asyncio 確保 UI 響應性
- 支援 10 種 Neural Voice (中文/越南/英文)
- 支援中英混雜、越英混雜發音

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
beabigegg
2025-12-27 15:42:11 +08:00
commit 33ea22f259
25 changed files with 1943 additions and 0 deletions

View File

@@ -0,0 +1,60 @@
專案名稱: 智慧簡報旁白生成系統 (Smart Slide Voiceover System) 版本: v1.0 日期: 2025/12/27 硬體基準: PC (Windows), 32GB RAM, RTX 4060 (主要利用 CPU 與 網路頻寬)
1. 專案概述 (Executive Summary)
本專案旨在開發一款桌面端應用程式 (Desktop Application),協助使用者將撰寫於 Excel 的簡報講稿,批次轉換為專業級、擬真且具備親切感的語音檔案。系統需解決跨語言(中文+英文專有名詞、越南文+英文專有名詞)的發音自然度問題,並提供圖形化介面以降低操作門檻。
2. 使用者流程 (User Flow)
環境啟動:使用者透過 Conda 啟動應用程式。
素材匯入:使用者透過 GUI 選擇標準格式的 Excel 腳本檔 (.xlsx)。
參數確認:使用者確認輸出路徑(預設為自動建立)。
執行生成:點擊「開始」按鈕,系統依序處理每一行講稿。
狀態監控:使用者透過進度條與日誌視窗監控生成狀態,且介面保持響應。
結果驗收:生成完畢後,彈出通知,使用者至資料夾查收 MP3 檔案。
3. 功能需求 (Functional Requirements)
3.1 輸入模組
格式支援:僅支援 .xlsx 格式。
欄位定義:
Filename (必要):輸出音檔名稱 (例如 Slide_01)。
Text (必要):旁白內容,支援中英夾雜或越英夾雜。
Lang (選填):指定該段落的主要語言 (zh 或 vi),若為空則預設為 zh。
3.2 核心處理模組 (TTS Engine)
引擎選型:採用微軟 Edge-TTS (Neural Voice) 技術,無需本地 GPU 模型推論。
語言處理邏輯:
越南文模式 (vi):針對越南廠區/客戶簡報。需精確朗讀越南文,並能以自然口音朗讀夾雜的英文術語(如 "Yield rate")。
中文模式 (zh):針對內部彙報。需使用台灣口音,語氣專業親切,無機械音,並能流利朗讀英文術語。
穩定性機制:必須包含 Rate Limit 防護(每筆請求間隔),防止因請求過快導致 IP 被封鎖。
3.3 圖形化使用者介面 (GUI)
框架PyQt6。
主要元件:
檔案選擇器 (File Browser)。
操作按鈕:開始 (Start)、強制停止 (Stop)。
視覺回饋:百分比進度條 (Progress Bar)、多行日誌視窗 (Log Console)。
互動性:執行耗時任務時,主視窗不得凍結 (No Freeze),需維持可拖曳與最小化狀態。
4. 非功能性需求 (Non-Functional Requirements)
部署性:必須使用 Conda 進行依賴管理,確保環境可移植性。
效能:單筆音訊生成延遲不超過 3 秒(視網路狀況),支援 100 筆以上的批次佇列。
錯誤容忍:單一檔案生成失敗(如特殊字元錯誤)不應中斷整個批次作業,僅需記錄錯誤並跳至下一筆。