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: 可從 官網 下載,並將其
bin
目錄加入系統的PATH
環境變數。 - macOS (使用 Homebrew):
brew install ffmpeg
- Linux (Debian/Ubuntu):
sudo apt update && sudo apt install ffmpeg
- Windows: 可從 官網 下載,並將其
🚀 本地端啟動指南
-
克隆專案
git clone <your-repository-url> cd AI_meeting_assistant
-
建立並啟用虛擬環境
python -m venv venv # Windows venv\Scripts\activate # macOS / Linux source venv/bin/activate
-
安裝 Python 依賴套件
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
-
設定環境變數
- 將
.env.example
檔案複製為.env
。 - 在
.env
檔案中填入您的 Dify API 金鑰。
DIFY_API_KEY="your_dify_api_key_here"
- 將
-
啟動服務 您需要開啟 三個獨立的終端機,並在每個終端機中啟用虛擬環境 (
venv
):-
終端機 1: 啟動 Redis 如果尚未執行,請啟動您的 Redis 伺服器。
redis-server
-
終端機 2: 啟動 Celery Worker 此背景處理器將執行所有耗時的 AI 任務。
celery -A tasks.celery worker --loglevel=info --pool=solo
在 Windows 上,可能需要使用
gevent
或eventlet
作為執行池:celery -A tasks.celery worker --loglevel=info -P gevent
-
終端機 3: 啟動 Flask Web 應用
flask run
應用程式將在
.env
檔案中指定的 Port(預設為12000
)上執行。
-
-
訪問應用 在瀏覽器中開啟
http://127.0.0.1:12000
。
🐳 Docker 部署指南
使用 Docker 是部署此應用的推薦方式,因為它能自動處理所有服務和依賴。
-
安裝 Docker 和 Docker Compose 請確保您的系統已安裝 Docker。
-
設定環境變數
- 重要: 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"
- 重要: Docker 使用的是容器網路,因此需要將 Redis 的主機名稱指向 Docker Compose 中定義的服務名稱。請確認
-
建構並啟動容器 在專案根目錄下執行以下指令:
docker-compose up --build
- GPU 支援: 如果您的系統支援 NVIDIA GPU 且已安裝
nvidia-docker-toolkit
,Docker Compose 將會自動使用Dockerfile
中為 GPU 優化的設定來建構映像。 - CPU 使用者: 如果您沒有 GPU,Docker 會自動退回使用 CPU 版本的 PyTorch,無需任何修改。
- GPU 支援: 如果您的系統支援 NVIDIA GPU 且已安裝
-
訪問應用 在瀏覽器中開啟
http://localhost:12000
。 -
停止服務 若要停止所有容器,請在終端機中按下
Ctrl + C
,然後執行: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/ # (自動生成) 儲存人聲分離結果