KN.NEWTANWEB & AI ENGINEER
กลับไปดูผลงาน
SELECTED WORK / 001

Meeting
Text.

โปรแกรมบันทึกและถอดเสียงประชุมแบบออฟไลน์

โปรแกรมบันทึกและถอดเสียงประชุมแบบออฟไลน์ บันทึกเสียงหลายช่องและแปลงเสียงเป็นข้อความด้วย Faster-Whisper ประมวลผลและจัดเก็บข้อมูลภายในเครื่อง พร้อมจัดการผู้เข้าประชุม ค้นหาและแก้ไขข้อความ และส่งออกเอกสารหลายรูปแบบ ใช้งานออฟไลน์ได้หลังติดตั้งและดาวน์โหลดโมเดลพร้อมแล้ว

PythonFlaskPyWebViewSQLitesounddeviceFaster-WhisperCTranslate2Bootstrap
ดูโค้ดโปรเจกต์
หน้าที่รับผิดชอบ
พัฒนาแบบ End-to-End
แพลตฟอร์ม
Desktop · ประมวลผลในเครื่อง
เทคโนโลยีหลัก
Python · Flask · SQLite
MEETING TEXT / INTERFACE STUDY
LOCAL WORKSPACE
Meeting Text

เสียงหลายช่อง → ข้อความที่แก้ไขได้

OFFLINE
เสียงการประชุมTH · WAV
ข้อความถอดเสียงTHAI / ไทย

วันนี้เราจะมาคุยกันเรื่องการพัฒนาระบบ และแนวทางการนำ AI มาใช้งานในโปรเจกต์

Faster-WhisperON-DEVICE INFERENCE
ภาพแนวคิดหน้าจอ · ไม่ใช่ภาพจากโปรแกรมจริง

ภาพด้านบนเป็นแนวคิดหน้าจอประกอบ จะเพิ่มภาพจากโปรแกรมจริงเมื่อพร้อม

01 / THE CHALLENGE

ให้บทสนทนาอยู่ภายในเครื่อง

เสียงประชุมอาจมีข้อมูลภายในองค์กรที่เป็นความลับ โปรเจกต์นี้จึงพัฒนากระบวนการถอดเสียงภาษาไทยที่ไม่ส่งเสียงการประชุมไปยังบริการ Cloud AI ภายนอก

02 / CAPABILITIES

จากเสียงประชุม สู่บันทึกที่นำไปใช้ต่อได้

  1. 01บันทึกเสียงหลายช่อง พร้อมกำหนดช่องและบันทึก Preset
  2. 02จัดการการประชุมและติดตามการเข้าร่วมของผู้ประชุม
  3. 03ถอดเสียงในเครื่อง พร้อมจัดการดาวน์โหลดโมเดล Whisper
  4. 04แก้ไขและค้นหาข้อความถอดเสียง
  5. 05ส่งออก TXT, SRT, DOCX, PDF และข้อมูลการประชุม JSON
03 / THE WORKFLOW

จากการประชุม สู่บันทึกที่ใช้ต่อได้

สร้างและจัดการการประชุม กำหนดช่องเสียงและติดตามการเข้าร่วม จากนั้นถอดเสียงในเครื่อง ตรวจทาน แก้ไข และค้นหาข้อความ พร้อมส่งออก TXT, SRT, DOCX, PDF และข้อมูลการประชุมรูปแบบ JSON

  1. 01

    เตรียมการประชุม

  2. 02

    บันทึกเสียงหลายช่อง

  3. 03

    ถอดเสียงและตรวจทาน

  4. 04

    ส่งออกและเก็บประวัติ

04 / สถาปัตยกรรมระบบ

หน้าจอเดสก์ท็อป เชื่อมระบบประมวลผลในเครื่อง

Web UI ที่ใช้ HTML, Bootstrap และ JavaScript ทำงานภายใน PyWebView และเชื่อมกับ Flask ส่วนงานเบื้องหลังจัดการเขียนไฟล์เสียงและถอดเสียง โดยใช้ SQLite ร่วมกับไฟล์ในเครื่องเก็บข้อมูลการประชุม เสียง และข้อความ

  1. 01หน้าจอเดสก์ท็อปHTML / Bootstrap / PyWebView
  2. 02ระบบแอปพลิเคชันPython / Flask
  3. 03งานประมวลผลเบื้องหลังAudio writer / Faster-Whisper
  4. 04จัดเก็บข้อมูลภายในเครื่องSQLite WAL / Local files
  • ใช้คิวเขียนไฟล์เสียง แยกงานอ่านเขียนไฟล์ออกจาก Audio Callback
  • ประมวลผลด้วย Faster-Whisper / CTranslate2 และแคชโมเดลร่วมกัน
  • SQLite ใช้ WAL พร้อม migration แบบมีเวอร์ชันและสำรองฐานข้อมูลก่อนอัปเดต
05 / MY CONTRIBUTION

ส่วนที่พัฒนา

  • เชื่อม Web UI บนเดสก์ท็อปเข้ากับ Flask และพื้นที่เก็บข้อมูลในเครื่อง
  • ผสานระบบบันทึกเสียง คิวเขียนไฟล์ และกระบวนการถอดเสียงเบื้องหลัง
  • พัฒนาการจัดการประชุม ผู้เข้าร่วม และข้อความถอดเสียง
  • พัฒนาการส่งออกเอกสารและกระบวนการ migration ฐานข้อมูล
06 / VALIDATION

ชุดทดสอบและข้อจำกัดในการใช้งาน

Repository มีชุดทดสอบอัตโนมัติสำหรับการยืนยันตัวตน API การบันทึกเสียง การถอดเสียง migration และการส่งออกเอกสาร คุณภาพการถอดเสียงขึ้นอยู่กับเสียง โมเดลที่เลือก และฮาร์ดแวร์

07 / REFLECTION

สิ่งที่ได้เรียนรู้

การทำแอป AI ในเครื่องต้องประสาน Audio Callback งานเบื้องหลัง การโหลดโมเดล และการจัดเก็บข้อมูล โปรเจกต์นี้เชื่อมทักษะ Full-Stack เข้ากับการจัดการทรัพยากรสำหรับ Inference และการออกแบบระบบเดสก์ท็อปที่ย้ายพื้นที่เก็บข้อมูลได้

WHAT’S NEXT?

ดูโค้ด แล้วมาคุยกัน

LinkedInกลับไปดูผลงาน