# AI Meeting Assistant AI Meeting Assistant 是一個功能強大的 Web 應用程式,旨在簡化和自動化會議後續處理流程。它提供了一系列工具,包括從影片中提取音訊、將音訊轉錄為文字、對逐字稿進行多語言翻譯,以及生成專業的會議結論。 ## ✨ 功能特色 - **影片轉音訊**: 從常見的影片格式(MP4, MOV, AVI)中快速提取 `.wav` 音訊檔案。 - **AI 音訊轉文字**: 使用 OpenAI Whisper 模型將音訊轉錄為帶有精確時間戳的逐字稿。 - **AI 人聲分離**: 內建 Demucs 模型,可在轉錄前分離人聲,有效處理背景嘈雜的音訊。 - **多語言支援**: 支援中文、英文、日文、韓文等多種語言的自動偵測與轉錄。 - **AI 逐段翻譯**: 整合 Dify AI 平台,提供高品質的逐字稿全文對照翻譯。 - **AI 會議結論**: - **初版摘要**: 自動生成會議的重點、待辦事項和結論。 - **迭代修改**: 可根據您的指示,對已生成的結論進行多次修改和完善。 - **現代化介面**: 採用 Bootstrap 5 構建,提供清晰、專業且響應式的使用者體驗。 - **Docker 化部署**: 提供 Docker 和 Docker Compose 設定,實現一鍵啟動所有服務(Web, Celery, Redis),並支援 CPU 和 GPU 環境。 ## 🛠️ 環境要求 在本地端執行此專案之前,請確保您已安裝以下軟體: - **Python**: 3.9 或更高版本。 - **Redis**: 用於 Celery 的訊息代理和後端。 - **FFmpeg**: 一個處理多媒體內容的開源工具集。請確保 `ffmpeg` 指令可在您的終端機中直接執行。 - **Windows**: 可從 [官網](https://ffmpeg.org/download.html) 下載,並將其 `bin` 目錄加入系統的 `PATH` 環境變數。 - **macOS (使用 Homebrew)**: `brew install ffmpeg` - **Linux (Debian/Ubuntu)**: `sudo apt update && sudo apt install ffmpeg` ## 🚀 本地端啟動指南 1. **克隆專案** ```bash git clone cd AI_meeting_assistant ``` 2. **建立並啟用虛擬環境** ```bash python -m venv venv # Windows venv\Scripts\activate # macOS / Linux source venv/bin/activate ``` 3. **安裝 Python 依賴套件** ```bash pip install -r requirements.txt ``` *注意:`requirements.txt` 預設安裝 GPU 版本的 PyTorch。如果您的電腦沒有 NVIDIA GPU,請在安裝前將 `requirements.txt` 中的 `torch` 和 `torchaudio` 相關行替換為 CPU 版本:* ``` # torch --extra-index-url https://download.pytorch.org/whl/cu118 # torchaudio --extra-index-url https://download.pytorch.org/whl/cu118 torch torchaudio ``` 4. **設定環境變數** - 將 `.env.example` 檔案複製為 `.env`。 - 在 `.env` 檔案中填入您的 Dify API 金鑰。 ``` DIFY_API_KEY="your_dify_api_key_here" ``` 5. **啟動服務** 您需要開啟 **三個獨立的終端機**,並在每個終端機中啟用虛擬環境 (`venv`): - **終端機 1: 啟動 Redis** 如果尚未執行,請啟動您的 Redis 伺服器。 ```bash redis-server ``` - **終端機 2: 啟動 Celery Worker** 此背景處理器將執行所有耗時的 AI 任務。 ```bash celery -A tasks.celery worker --loglevel=info --pool=solo ``` *在 Windows 上,可能需要使用 `gevent` 或 `eventlet` 作為執行池:`celery -A tasks.celery worker --loglevel=info -P gevent`* - **終端機 3: 啟動 Flask Web 應用** ```bash flask run ``` 應用程式將在 `.env` 檔案中指定的 Port(預設為 `12000`)上執行。 6. **訪問應用** 在瀏覽器中開啟 `http://127.0.0.1:12000`。 ## 🐳 Docker 部署指南 使用 Docker 是部署此應用的推薦方式,因為它能自動處理所有服務和依賴。 1. **安裝 Docker 和 Docker Compose** 請確保您的系統已安裝 [Docker](https://www.docker.com/products/docker-desktop/)。 2. **設定環境變數** - **重要**: Docker 使用的是容器網路,因此需要將 Redis 的主機名稱指向 Docker Compose 中定義的服務名稱。請確認 `.env` 檔案中的 `CELERY_BROKER_URL` 和 `CELERY_RESULT_BACKEND` 指向 `redis`: ``` CELERY_BROKER_URL="redis://redis:6379/0" CELERY_RESULT_BACKEND="redis://redis:6379/0" ``` 3. **建構並啟動容器** 在專案根目錄下執行以下指令: ```bash docker-compose up --build ``` - **GPU 支援**: 如果您的系統支援 NVIDIA GPU 且已安裝 `nvidia-docker-toolkit`,Docker Compose 將會自動使用 `Dockerfile` 中為 GPU 優化的設定來建構映像。 - **CPU 使用者**: 如果您沒有 GPU,Docker 會自動退回使用 CPU 版本的 PyTorch,無需任何修改。 4. **訪問應用** 在瀏覽器中開啟 `http://localhost:12000`。 5. **停止服務** 若要停止所有容器,請在終端機中按下 `Ctrl + C`,然後執行: ```bash docker-compose down ``` ## 📂 專案結構 ``` . ├── app.py # Flask 主應用程式 ├── tasks.py # Celery 背景任務 (AI/ML 處理) ├── requirements.txt # Python 依賴套件 ├── Dockerfile # 用於建構應用程式映像 ├── docker-compose.yml # 一鍵啟動所有服務 ├── .env.example # 環境變數範本 ├── .gitignore # Git 忽略清單 ├── README.md # 專案說明文件 ├── templates/ │ └── index.html # 前端網頁 ├── static/ │ ├── css/style.css # 自訂樣式 │ └── js/script.js # 前端互動邏輯 ├── uploads/ # (自動生成) 儲存上傳的檔案 └── demucs_separated/ # (自動生成) 儲存人聲分離結果 ```