Skip to content

About

參加DevJam打造一款會議紀錄分析

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

6 Commits

Folders and files

Repository files navigation

# Gemini AI 音訊分析筆記平台 (Audio Analyzer & Notes Platform)

這是一個基於 Python FastAPI 和 Google Gemini 1.5 Flash 模型的智慧音訊處理平台。它能將音訊內容(來自本地檔案或 YouTube)轉換為帶有說話者和時間戳記的逐字稿,將其作為會議筆記儲存,並允許使用者透過智慧聊天介面對筆記內容進行提問、分析,最終還可以將會議結論無縫地建立成 GitHub Issues。

## ✨ 核心功能

* **多來源音訊轉錄**:支援上傳本地音訊檔案(MP3, WAV 等)以及直接貼上 YouTube 影片網址進行分析。
* **智慧逐字稿生成**:利用 Gemini 1.5 Flash 模型,自動生成包含 `[MM:SS]` 時間戳記和 `[說話者 N]` 標籤的繁體中文逐字稿。
* **持久化會議筆記**:所有生成的逐字稿都會被賦予標題和建立時間,並儲存在一個本地的 SQLite 資料庫 (`meeting_notes.db`) 中,方便隨時查閱。
* **多筆記聊天分析**:在 `/llm` 頁面,使用者可以從左側邊欄勾選一份或多份會議筆記,然後在右側的聊天視窗中對這些筆記的內容進行提問或要求總結。
* **會議筆記管理**:使用者可以在 `/llm` 頁面查看(View)逐字稿的完整內容,或刪除(Delete)不再需要的會議筆記。
* **GitHub Issue 整合**:在 `/issue` 頁面,使用者可以填寫自己的 GitHub Token 和倉庫資訊,並從下拉選單中選擇一份會議筆記,其內容會被自動填入描述欄,方便快速建立 Issue。

## 🛠️ 技術堆疊

* **後端框架**: FastAPI
* **AI 模型**: Google Gemini 1.5 Flash
* **資料庫**: SQLite (透過 Python 內建的 `sqlite3` 模組)
* **前端**: HTML5, Tailwind CSS, Vanilla JavaScript
* **Python 函式庫**:
    * `uvicorn`: ASGI 伺服器
    * `python-dotenv`: 環境變數管理
    * `google-generativeai`: Google AI Python SDK
    * `yt-dlp`: YouTube 影片下載工具
    * `PyGithub`: GitHub API Python 客戶端
    * `Markdown`: 將 Markdown 文本轉換為 HTML

## 📂 專案結構

```
.
├── app/
│   ├── __init__.py
│   ├── database.py       # 資料庫操作
│   ├── main.py           # FastAPI 路由與 API 端點
│   ├── schemas.py        # Pydantic 資料模型
│   └── services.py       # 核心服務 (Gemini, GitHub, YouTube)
│
├── static/
│   ├── index.html        # 首頁 (音訊上傳)
│   ├── llm.html          # 聊天分析頁面
│   ├── issue.html        # GitHub Issue 建立頁面
│   ├── script.js         # index.html 的腳本
│   ├── llm.js            # llm.html 的腳本
│   └── issue.js          # issue.html 的腳本
│
├── .env                  # 環境變數檔案 (需自行建立)
├── meeting_notes.db      # SQLite 資料庫檔案 (首次執行後自動產生)
├── requirements.txt      # Python 依賴套件
└── README.md             # 本文件
```

## 🚀 快速開始

### 1. 環境準備
* 確認您已安裝 Python 3.8+。
* 複製 (Clone) 本專案到您的本地電腦。

### 2. 安裝依賴
在您的終端機中,於專案根目錄下執行:
```bash
# 建議先建立並啟用一個虛擬環境
python -m venv .venv
source .venv/bin/activate  # On Windows, use `.venv\Scripts\activate`

# 安裝所有必要的 Python 套件
pip install -r requirements.txt
```

### 3. 設定環境變數
在專案根目錄下建立一個名為 `.env` 的檔案,並填入您的 Google Gemini API 金鑰:
```
GEMINI_API_KEY="YOUR_GEMINI_API_KEY_HERE"
```

### 4. 啟動應用程式
在專案根目錄下執行:
```bash
uvicorn app.main:app --reload
```
`--reload` 參數會在您修改程式碼後自動重啟伺服器,非常適合開發。

### 5. 開始使用
打開您的瀏覽器,訪問 `http://localhost:8000` 即可開始使用。

## 📖 使用流程

1.  **分析音訊 (首頁 `/`)**:
    * 您可以選擇上傳本地音訊檔,或貼上 YouTube 網址。
    * 如果是 YouTube 網址,系統會彈出視窗請您為這份會議筆記命名。
    * 分析完成後,逐字稿會自動存入資料庫。

2.  **聊天與管理 (`/llm`)**:
    * 進入此頁面後,左側會顯示所有已儲存的會議筆記。
    * 您可以勾選一或多份筆記,然後在右側聊天視窗中對它們提問。
    * 點擊每筆紀錄旁的 `View` 可以查看完整逐字稿,點擊 `Delete` 則可以刪除該筆紀錄。

3.  **建立 Issue (`/issue`)**:
    * 在此頁面填入您的 GitHub 個人存取權杖 (PAT) 和倉庫名稱 (`owner/repo`)。
    * 從下拉選單中選擇一份會議紀錄,其內容會自動填入描述區。
    * 填寫標題後,即可建立 GitHub Issue。

About

參加DevJam打造一款會議紀錄分析

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages