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