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,42 @@
## ADDED Requirements
### Requirement: Excel File Loading
系統 SHALL 支援載入 .xlsx 格式的 Excel 檔案作為講稿輸入來源。
#### Scenario: Valid Excel file selected
- **WHEN** 使用者選擇有效的 .xlsx 檔案
- **THEN** 系統解析檔案內容並準備處理
#### Scenario: Invalid file format rejected
- **WHEN** 使用者選擇非 .xlsx 格式檔案
- **THEN** 系統顯示格式錯誤警告,不進行處理
### Requirement: Column Parsing
系統 SHALL 解析 Excel 檔案的標準欄位結構,包含 Filename、Text、Lang 三個欄位。
#### Scenario: Required columns present
- **WHEN** Excel 檔案包含 Filename 與 Text 欄位
- **THEN** 系統成功解析所有資料列
#### Scenario: Missing required column
- **WHEN** Excel 檔案缺少 Filename 或 Text 欄位
- **THEN** 系統顯示欄位缺失錯誤,停止處理
#### Scenario: Optional Lang column handling
- **WHEN** Lang 欄位為空或不存在
- **THEN** 系統預設使用 "zh" 作為語言設定
### Requirement: Data Validation
系統 SHALL 驗證每一列資料的有效性,確保必要欄位非空。
#### Scenario: Empty text field
- **WHEN** 某列的 Text 欄位為空
- **THEN** 系統記錄警告並跳過該列
#### Scenario: Empty filename field
- **WHEN** 某列的 Filename 欄位為空
- **THEN** 系統記錄警告並跳過該列
#### Scenario: Valid row processing
- **WHEN** Filename 與 Text 欄位皆有值
- **THEN** 系統將該列加入處理佇列