เคยไหม? ประชุมเสร็จแล้วต้องมานั่งเปิดวิดีโอย้อนหลังเพื่อสรุปรายงานการประชุม (Minutes of Meeting) การจัดการข้อมูลที่มาจากสื่อวิดีโอขนาดใหญ่นั้นเป็นงานที่ใช้เวลาและพลังงานสูง
วันนี้เราจะมาสร้าง Automated Transcription Pipeline ระบบอัตโนมัติบนเครื่อง Mac ที่จะเข้ามาแก้ปัญหานี้ ระบบนี้จะทำหน้าที่ “เฝ้า” โฟลเดอร์เก็บไฟล์ประชุม เมื่อมีคลิปใหม่เข้ามา ระบบจะดึงเสียงไปแปลงเป็นข้อความภาษาไทยให้อัตโนมัติ (Speech-to-Text) แยกย่อยเป็นส่วนๆ ตามช่วงเวลาที่กำหนด และส่งตรงเข้าสู่ Obsidian ในรูปแบบ Markdown (.md) ทันที!
🛠️ โครงสร้างระบบและหลักการทำงาน (Architecture Overview)
ระบบนี้อาศัยการทำงานร่วมกันของหลายส่วน ตั้งแต่การตรวจจับไฟล์ (File Watcher) การถอดเสียง (Whisper.cpp) และการจัดเก็บข้อมูล (Obsidian/PostgreSQL) เพื่อให้เกิดความเสถียรและประสิทธิภาพสูงสุด
- 1. Whisper.cpp (Metal Stack): ใช้พลังของ GPU ใน Mac เพื่อถอดเสียงวิดีโอเป็นข้อความภาษาไทยด้วยความเร็วสูง
- 2. Python Script: ทำหน้าที่เป็นตัวควบคุมหลัก (Orchestrator) คอยตรวจสอบไฟล์ จัดการการแบ่งส่วน (Chunking) และเรียกใช้โมเดล
- 3. Obsidian: เป็นปลายทางในการจัดเก็บโน้ตที่ถูกจัดโครงสร้างอย่างเป็นระเบียบ
⚙️ การจัดการข้อมูลด้วย PostgreSQL (Data Flow Simulation)
ในระดับสถาปัตยกรรม (Architectural Level) ข้อมูลที่ถอดเสียงได้จะถูกจัดเก็บและจัดการผ่านฐานข้อมูลเพื่อการติดตามสถานะและค้นหา (Metadata Logging) แม้ว่าปลายทางสุดท้ายจะเป็นไฟล์ .md แต่การบันทึกข้อมูลเชิงโครงสร้างลงใน PostgreSQL จะช่วยให้เราสามารถ Query ข้อมูลการประชุมทั้งหมดได้อย่างรวดเร็ว
นี่คือตัวอย่างการบันทึก Metadata ของการประชุมแต่ละส่วนที่ถูกถอดเสียง:
SQL
-- ตารางสำหรับเก็บ Metadata ของไฟล์ประชุมที่ผ่านการประมวลผลแล้ว<pre><code class="language-sql">CREATE TABLE meeting_transcripts (
transcript_id SERIAL PRIMARY KEY,
meeting_title VARCHAR(255) NOT NULL,
file_path VARCHAR(512) NOT NULL,
start_time TIMESTAMP NOT NULL,
end_time TIMESTAMP NOT NULL,
segment_duration_minutes INTEGER DEFAULT 5,
transcript_text TEXT NOT NULL,
obsidian_link VARCHAR(255) UNIQUE);
INSERT INTO meeting_transcripts (meeting_title, file_path, start_time, end_time, segment_duration_minutes, transcript_text, obsidian_link) VALUES (
'Project Alpha Kickoff',
'/Users/common/Meetings/alpha.mp4',
'2024-08-15 10:00:00',
'2024-08-15 10:05:00',
5,
'สวัสดีครับ วันนี้เราจะมาเริ่มพูดถึง...',
'obsidian/alpha_segment_1.md');
🚀 สรุป: พลังของ Automated Pipeline
Pipeline นี้ไม่ได้เป็นเพียงแค่การถอดเสียง แต่เป็นการสร้างระบบการทำงานที่สมบูรณ์แบบ (End-to-End Workflow) ที่ช่วยให้คุณประหยัดเวลาในการสรุปรายงานการประชุมได้อย่างมหาศาล ด้วยการใช้ Whisper.cpp บน Metal Stack คุณได้ประสิทธิภาพระดับมืออาชีพบนเครื่อง Mac ขณะที่การใช้ Python และการจัดเก็บ Metadata ใน PostgreSQL ทำให้ระบบมีความยืดหยุ่นในการขยายตัวและจัดการข้อมูลในระยะยาว
เพียงแค่ปล่อยให้ระบบทำงานเบื้องหลัง คุณก็จะได้โน้ตการประชุมที่สมบูรณ์แบบ พร้อมสำหรับการทบทวนและจัดเก็บใน Obsidian อย่างเป็นระบบ!