บอกลา Whisper API: คู่มือติดตั้ง Whisper.cpp บนเครื่องตัวเอง ถอดเสียงภาษาไทยและอังกฤษเร็วขึ้น 3 เท่าแบบออฟไลน์ 100%

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

Share
บอกลา Whisper API: คู่มือติดตั้ง Whisper.cpp บนเครื่องตัวเอง ถอดเสียงภาษาไทยและอังกฤษเร็วขึ้น 3 เท่าแบบออฟไลน์ 100%

เวลาที่เราต้องถอดเทปการประชุม บันทึกบทสัมภาษณ์ หรือแปลงเสียง Voice Memo ยาวเป็นชั่วโมงให้กลายเป็นข้อความ บริการคลาวด์ยอดนิยมอย่าง OpenAI Whisper API หรือ Cloud STT เจ้าต่างๆ มักเป็นตัวเลือกแรกๆ ที่เรานึกถึง

แต่หากเสียงที่คุณบันทึกคือ การประชุมโปรเจกต์ลับขององค์กร, บทสัมภาษณ์ข้อมูลส่วนบุคคล, หรือการระดมสมองไอเดียธุรกิจใหม่ การอัปโหลดไฟล์เสียงเหล่านั้นขึ้นเซิร์ฟเวอร์ภายนอกย่อมมีความเสี่ยงต่อการรั่วไหลของข้อมูล และยังมีค่าใช้จ่ายต่อนาทีที่เพิ่มขึ้นเรื่อยๆ ตามปริมาณการใช้งาน

วันนี้เราจะมาปลดล็อกการทำงานแบบ Local-first ด้วย Whisper.cpp พอร์ตประสิทธิภาพสูงของโมเดล OpenAI Whisper ที่เขียนด้วยภาษา C/C++ ทำให้กินแรมน้อย รันบน CPU และ GPU ทั่วไปได้อย่างลื่นไหล และถอดเสียงได้รวดเร็วทันใจโดยไม่ต้องต่ออินเทอร์เน็ตเลยแม้แต่วินาทีเดียว


ทำไมต้องเป็น Whisper.cpp?

แม้ว่า OpenAI จะเปิดซอร์สโค้ดตัวโมเดล Whisper ดั้งเดิมที่เป็น Python แต่ Whisper ตัวเดิมกลับต้องการพื้นที่และไลบรารีขนาดใหญ่ (PyTorch, CUDA) ซึ่งกินสเปกเครื่องสูงมาก

Whisper.cpp โดย Georgi Gerganov (ผู้สร้าง llama.cpp) เข้ามาแก้ปัญหานี้อย่างสมบูรณ์แบบด้วยข้อดีเด่น 4 ประการ:

  1. เร็วและเบาเป็นพิเศษ: ปราศจากความเทอะทะของ Python และ PyTorch ทำงานได้ทันทีแบบ Standalone Binary
  2. รองรับ Hardware Acceleration หลากหลาย: รันได้เต็มสปีดทั้งบน Apple Silicon (Metal / Core ML), Intel/AMD CPU (AVX2/AVX-512) และ NVIDIA GPU (CUDA)
  3. กินแรมน้อยมาก: โมเดลขนาด base หรือ small ใช้ RAM เพียงไม่กี่ร้อยเมกะไบต์ ทำให้รันบนแล็ปท็อปเก่าๆ ได้สบาย
  4. Offline 100% ปลอดภัยขั้นสุด: ไฟล์เสียงและข้อความถอดเทปประมวลผลอยู่บนเครื่องของคุณเท่านั้น ไม่มีการส่ง Packet ใดๆ ออกสู่อินเทอร์เน็ต

เตรียมความพร้อมก่อนติดตั้ง

สิ่งที่ต้องเตรียมในเครื่อง: * ระบบปฏิบัติการ: Linux, macOS หรือ Windows (ผ่าน WSL2 หรือ MSVC) * เครื่องมือคอมไพล์: git, make (หรือ cmake), และคอมไพเลอร์ C++ (gcc หรือ clang) * FFmpeg: สำหรับแปลงไฟล์เสียงต้นฉบับให้อยู่ในฟอร์แมต 16kHz WAV ที่โมเดลประมวลผลได้ดีที่สุด

บน Ubuntu/Debian สามารถติดตั้งเครื่องมือพื้นฐานได้ด้วยคำสั่งเดียว:

sudo apt update && sudo apt install -y git build-essential cmake ffmpeg

3 ขั้นตอนติดตั้งและใช้งาน Whisper.cpp

1. ดาวน์โหลดโค้ดและคอมไพล์ระบบ

โคลน Repository ของ Whisper.cpp ลงในเครื่อง แล้วสั่ง Build ตัวโปรแกรม:

# โคลนโปรเจกต์
git clone https://github.com/ggerganov/whisper.cpp.git
cd whisper.cpp

# คอมไพล์ด้วย CMake (เปิดใช้ GPU Acceleration ตามฮาร์ดแวร์ของคุณ)
# สำหรับ CPU ทั่วไป:
cmake -B build
cmake --build build --config Release

# หรือหากใช้ NVIDIA GPU ให้เพิ่มแฟล็ก CUDA:
# cmake -B build -DGGML_CUDA=ON && cmake --build build --config Release

หลังบิลด์เสร็จ คุณจะได้ไฟล์รัน executable ชื่อ whisper-cli (หรือ main ในเวอร์ชันเดิม) อยู่ในโฟลเดอร์ build/bin/

2. ดาวน์โหลดโมเดล Whisper GGML

Whisper.cpp มีสคริปต์ช่วยดาวน์โหลดโมเดลในฟอร์แมต GGML มาให้พร้อมใช้งาน มีขนาดให้เลือกตั้งแต่ tiny, base, small, medium ไปจนถึง large-v3:

# แนะนำโมเดล 'small' หรือ 'medium' สำหรับการถอดเสียงภาษาไทยและอังกฤษที่แม่นยำ
bash ./models/download-ggml-model.sh small
คำแนะนำในการเลือกโมเดล: * base (140MB): เหมาะสำหรับงานเร็ว สรุปคร่าวๆ ถอดภาษาอังกฤษได้ดี * small (460MB): จุดสมดุลที่ดีที่สุดระหว่างความเร็วและความแม่นยำสำหรับภาษาไทย * large-v3 (3GB): แม่นยำสูงสุด จับศัพท์เทคนิคและคำเฉพาะทางได้ดีเยี่ยม เหมาะกับเครื่องที่มีการ์ดจอแยก

3. แปลงไฟล์เสียงและสั่งถอดเสียงทันที

Whisper.cpp รับไฟล์เสียงมาตรฐานเป็น WAV Sampling Rate 16kHz (16-bit Mono) เราสามารถใช้ ffmpeg แปลงไฟล์ต้นฉบับได้ง่ายๆ:

# แปลงไฟล์บันทึกเสียง (mp3, m4a, wav ทั่วไป) เป็นฟอร์แมตที่เหมาะสม
ffmpeg -i meeting-record.m4a -ar 16000 -ac 1 -c:a pcm_s16le audio.wav

จากนั้นสั่งถอดเสียงด้วยคำสั่ง:

# สั่งถอดเสียงและส่งออกเป็นไฟล์ Text (.txt) และ Subtitle (.srt)
./build/bin/whisper-cli -m models/ggml-small.bin -f audio.wav -l auto -otxt -osrt

อธิบายพารามิเตอร์สำคัญ: * -m: ระบุพาร์ธของโมเดลที่ต้องการใช้ * -f: ไฟล์เสียง WAV 16kHz ที่ต้องการถอด * -l auto: ตรวจจับภาษาอัตโนมัติ (หรือระบุ -l th สำหรับภาษาไทย / -l en สำหรับภาษาอังกฤษ) * -otxt: ส่งออกผลลัพธ์เป็นไฟล์ .txt สำหรับนำไปอ่านหรือสรุปต่อ * -osrt: ส่งออกผลลัพธ์เป็นไฟล์ Subtitle สำหรับตัดต่อวิดีโอ


รวมเทคนิคการใช้งานขั้นสูง

1. ถอดเสียงพร้อมประทับเวลา (Timestamps)

หากคุณต้องการดูว่าแต่ละประโยคถูกพูดในช่วงนาทีที่เท่าไหร่ ให้ใช้แฟล็ก -pp (Print Progress) หรือเปิดดูไฟล์ .srt ที่สร้างขึ้น ระบบจะระบุ Timecode อย่างแม่นยำระดับมิลลิวินาที

2. ทำงานร่วมกับ Bash Script สำหรับประมวลผลอัตโนมัติ

คุณสามารถเขียนสคริปต์สั้นๆ เพื่อให้คอยมอนิเตอร์โฟลเดอร์ Voice Memos แล้วสั่งถอดเสียงส่งเข้าโน้ตใน Obsidian ทันทีที่บันทึกเสียงเสร็จ

#!/bin/bash
INPUT_FILE="$1"
BASE_NAME="${INPUT_FILE%.*}"

ffmpeg -y -i "$INPUT_FILE" -ar 16000 -ac 1 -c:a pcm_s16le "${BASE_NAME}_16k.wav"
/path/to/whisper.cpp/build/bin/whisper-cli \
  -m /path/to/whisper.cpp/models/ggml-small.bin \
  -f "${BASE_NAME}_16k.wav" \
  -l th -otxt

rm "${BASE_NAME}_16k.wav"
echo "ถอดเสียงสำเร็จ: ${BASE_NAME}.txt"

บทสรุป

การเปลี่ยนผ่านสู่การทำงานแบบ Local AI & Privacy ไม่ได้จำกัดอยู่แค่โมเดลแชตอย่าง LLM เท่านั้น แต่ระบบ Speech-to-Text ก็เป็นอีกหนึ่งส่วนสำคัญของโครงสร้าง Private Brain OS

ด้วย Whisper.cpp คุณสามารถแปลงเสียงพูดและการประชุมหลายสิบชั่วโมงให้กลายเป็นคลังข้อความค้นหาได้ง่าย รวดเร็ว และที่สำคัญที่สุดคือ ความลับและข้อมูลส่วนตัวของคุณจะคงอยู่บนเครื่องของคุณอย่างปลอดภัย 100% เสมอครับ

Read more

สร้าง AI Agent สำหรับการทำ Decision Log อัตโนมัติ: เปลี่ยนทุกการตัดสินใจสำคัญให้เป็นบทเรียนเพื่อการเติบโต

สร้าง AI Agent สำหรับการทำ Decision Log อัตโนมัติ: เปลี่ยนทุกการตัดสินใจสำคัญให้เป็นบทเรียนเพื่อการเติบโต

เรียนรู้วิธีใช้ AI Agent ช่วยบันทึกและวิเคราะห์การตัดสินใจสำคัญในชีวิตประจำวัน เพื่อเปลี่ยนทุกทางเลือกให้กลายเป็นฐานข้อมูลบทเรียนที่มีค่าสำหรับอนาคต

By Linn
คู่มือใช้งาน Obsidian Graph View: เปลี่ยนใยแมงมุมความรู้ให้เป็นเครื่องมือนำทางความคิดใน Second Brain

คู่มือใช้งาน Obsidian Graph View: เปลี่ยนใยแมงมุมความรู้ให้เป็นเครื่องมือนำทางความคิดใน Second Brain

Graph View ใน Obsidian ไม่ใช่แค่ภาพกราฟสวยๆ ไว้ดูเล่น มาเรียนรู้วิธีปรับแต่ง Local Graph, Color Groups และฟิลเตอร์ เพื่อเปลี่ยนเครือข่ายความรู้ให้กลายเป็นเครื่องมือนำทางความคิดจริง

By Linn
สร้าง Smart Clipboard Agent: ดักจับและคัดแยกข้อความที่คัดลอกระหว่างวัน บันทึกเข้า Obsidian อัตโนมัติด้วย Python + Ollama

สร้าง Smart Clipboard Agent: ดักจับและคัดแยกข้อความที่คัดลอกระหว่างวัน บันทึกเข้า Obsidian อัตโนมัติด้วย Python + Ollama

เปลี่ยนข้อความ โค้ด ลิงก์ และไอเดียที่คุณคัดลอกระหว่างวันให้กลายเป็นบันทึกความรู้ที่มีบริบทใน Second Brain โดยอัตโนมัติ ด้วยสคริปต์ Python คอยมอนิเตอร์คลิปบอร์ดคู่กับ Local LLM บน Ollama แบบออฟไลน์ 100%

By Linn
บอกลาคำสั่ง Docker CLI ที่ซับซ้อน: คู่มือติดตั้ง Dockge จัดการ Docker Compose บน Home Server อย่างมือโปร

บอกลาคำสั่ง Docker CLI ที่ซับซ้อน: คู่มือติดตั้ง Dockge จัดการ Docker Compose บน Home Server อย่างมือโปร

ยกระดับการจัดการคอนเทนเนอร์บน Home Server ให้ง่ายและเป็นระเบียบ ด้วย Dockge ตัวจัดการ Docker Compose สไตล์มินิมอลที่เน้นความโปร่งใส ควบคุมไฟล์ .yml ได้โดยตรง 100%

By Linn