ESP32-S3 Bench Guide
ESP32‑S3 N16R8 벤치 가이드: 실시간 핀아웃, 강의, 시뮬레이터 및 벤치 로그
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
课堂实时同声传译 + 中英双语结构化大纲笔记 — Eazo Global Youth AI Agent Hackathon (Singapore) Frontend: https://lecture-note-tau.vercel.app Backend: wss://lecture-note-2we1.onrender.com MCP Server: https://mcp-server-9mz7.onrender.com/mcp Start Screen Dark themed landing page with PPT upload and history access. Replay View Tabbed view: outline, subtitles, practice questions — with Word/PDF export. [README 설치·사용 부분 발췌] SetupREADME 전문 보기 ↗
Live lecture simultaneous interpretation + bilingual structured notes — Eazo Global Youth AI Agent Hackathon (Singapore)
Frontend: https://lecture-note-tau.vercel.app
Backend: wss://lecture-note-2we1.onrender.com
MCP Server: https://mcp-server-9mz7.onrender.com/mcp
Dark themed landing page with PPT upload and history access.
| Left: Real-time Bilingual Subtitles | Right: AI-Generated Outline |
|---|---|
| Live English speech recognition → Chinese translation | Auto-generated structured lecture notes |
| Pause / Resume / Stop controls | Editable rich-text with highlight toolbar |
| Yellow banner when paused | Practice questions after class |
Tabbed view: outline, subtitles, practice questions — with Word/PDF export.
| Feature | Description |
|---|---|
| 🎙️ Real-time ASR | Azure Speech Services, en-IN model optimized for Indian English |
| 🌐 Simultaneous Translation | DeepSeek API: real-time English → Chinese, partial-text streaming for low-latency interpretation |
| 🧹 Filler Word Filtering | Automatically filters hesitation words (yeah, OK, um…) from the subtitle feed |
| 📝 AI Outline | Auto-generated bilingual structured outline every 30 seconds, merges with manual edits |
| 📎 Courseware Upload | Upload .pptx / .pdf files to provide lecture context; image-based PDFs auto-OCR |
| ✏️ 15 Exam Questions | End-of-class: 15 core quiz questions prioritized by exam hints (MCQ / short answer / true-false) |
| ⏯️ Pause / Resume | Adapt to lecture breaks and discussions |
| 🎨 Rich Text Editing | 4-color highlighting (key point / understanding / exam point / formula), H1/H2/H3 headings, Bold/Italic/Underline |
| 🔍 Smart Auto-Scroll | Auto-follows new subtitles; pauses when user scrolls up to review past content |
| 📥 Export | Word document (.doc), PDF print, copy to clipboard |
| 📚 Session History | Auto-save lectures to localStorage (max 20), browse and replay past sessions |
| 🇬🇧 English-Only Filter | Automatically skips Chinese speech / pinyin to avoid noise |
| 🛡️ Auto Wake-Up | Pings Render backend on page load to wake from free-tier sleep |
| 🔌 MCP Server | Self-hosted Model Context Protocol server with Streamable HTTP — 4 AI tools (translate, outline, questions, health) |
| 🌍 Bilingual UI | English/Chinese interface toggle (EN default), persisted in localStorage |
Browser (React + Vite + TailwindCSS)
│ WebSocket (audio binary + JSON messages)
│ HTTP POST (courseware upload)
│ MCP Streamable HTTP (AI tools)
▼
Node.js Backend (Render)
├── Azure Speech Services (ASR, en-IN, 16kHz PCM)
├── DeepSeek API (translation + outline + questions)
├── adm-zip (PPTX text extraction)
└── pdfjs-dist + Tesseract.js (PDF text + OCR)
MCP Server (Render, standalone)
├── @modelcontextprotocol/server v2
├── DeepSeek API (translate + outline + questions)
└── Streamable HTTP transport
Frontend Deployed on: Vercel
Backend Deployed on: Render
MCP Server Deployed on: Render
# Clone
git clone https://github.com/Stevenchen213/lecture-note.git
cd lecture-note
# Frontend
npm install
npm run dev # → http://localhost:3000
# Backend (in another terminal)
cd server
npm install
cp ../.env.example .env # then edit .env with your API keys
node index.js # → ws://localhost:8080
Create server/.env:
AZURE_SPEECH_KEY=your_azure_speech_key
AZURE_SPEECH_REGION=japaneast
DEEPSEEK_API_KEY=your_deepseek_api_key
Optional — switch the LLM to any OpenAI-compatible provider (e.g. Kimi/Moonshot). These override DeepSeek when set:
LLM_BASE_URL=https://api.moonshot.ai/v1
LLM_MODEL=kimi-k2.6
LLM_API_KEY=your_kimi_api_key
Note: when a custom provider is set, temperature is NOT sent (Kimi's current models lock it and reject explicit values); set LLM_TEMPERATURE to force one.
For production frontend:
VITE_WS_URL=wss://your-render-backend.onrender.com
| Layer | Technology |
|---|---|
| Frontend | React 18, Vite 5, TailwindCSS 3 |
| Backend | Node.js 20, WebSocket (ws) |
| ASR | Azure Speech Services (en-IN, continuous recognition) |
| LLM | DeepSeek API (default), or any OpenAI-compatible provider (e.g. Kimi/Moonshot) via LLM_BASE_URL / LLM_MODEL / LLM_API_KEY |
| PPT Parsing | adm-zip (PPTX = ZIP of XML) |
| PDF Parsing | pdfjs-dist + canvas (text extraction + render) |
| OCR | tesseract.js (image-based PDF fallback) |
| Frontend Hosting | Vercel (free) |
| Backend Hosting | Render (free) |
| MCP Server | @modelcontextprotocol/server v2, @modelcontextprotocol/express, Zod v4, Streamable HTTP |
lecture-note/
├── index.html # Entry HTML
├── vite.config.js # Vite config
├── tailwind.config.js # TailwindCSS config
├── vercel.json # Vercel deployment config
├── src/
│ ├── main.jsx # React entry
│ ├── App.jsx # Root component + routing
│ ├── index.css # Global styles + animations
│ ├── components/
│ │ ├── StartScreen.jsx # Landing page + courseware upload
│ │ ├── SubtitlePanel.jsx # Real-time bilingual subtitles
│ │ ├── OutlinePanel.jsx # Editable outline + questions
│ │ ├── RichTextEditor.jsx # contentEditable + floating toolbar
│ │ ├── HistoryPanel.jsx # Past sessions list
│ │ └── ReplayView.jsx # View past session
│ ├── hooks/
│ │ ├── useAudioRecorder.js # Browser mic → Int16 PCM
│ │ └── useWebSocket.js # WebSocket connection manager
│ └── utils/
│ ├── outlineMerge.js # AI + user edit merge logic
│ ├── export.js # Word / PDF / clipboard export
│ └── sessionStore.js # localStorage session persistence
├── server/
│ ├── index.js # WebSocket + HTTP + MCP server
│ ├── azure-speech.js # Azure ASR integration
│ ├── deepseek.js # DeepSeek API (translate + outline + questions)
│ ├── pdf-utils.js # PDF text extraction + OCR fallback
│ └── package.json # Server dependencies
├── mcp-server/
│ ├── index.js # Standalone MCP server (Streamable HTTP)
│ ├── package.json # MCP server dependencies
│ └── .gitignore # Node modules + .env
├── docs/ # PE6201: report, cost analysis, recording guide
├── data/ # PE6201: evaluation dataset (segments + key points)
├── evals/ # PE6201: evaluation harness (run_evals.mjs)
└── .env.example # Environment variables template
End-of-course project materials for PE6201 Emerging AI Technologies:
| Deliverable | Location |
|---|---|
| Final report (~1,200 words) | docs/REPORT.md |
| Cost analysis (rubric 5) | docs/COST_ANALYSIS.md |
| Demo video script / recording guide | docs/DEMO_VIDEO_SCRIPT.md · docs/RECORDING_GUIDE.md |
| Product documentation (persona / I/O / architecture) | PRODUCT_OVERVIEW.md |
| Evaluation data + explainer | data/ |
| Evaluation harness + explainer | evals/ |
| Evaluation results | evals/results/RESULTS.md |
To reproduce the evaluation:
node evals/run_evals.mjs # requires DEEPSEEK_API_KEY in server/.env
Steven Chen — GitHub