ข้ามไปยังเนื้อหาหลัก

วิธีรันระบบรู้จำเสียงเป็นข้อความแบบโลคัลบน CPU ด้วย VibeASR.cpp

เรียนรู้วิธีรันระบบถอดเสียงที่รวดเร็ว แม่นยำ และรองรับหลายภาษาแบบโลคัลบน CPU ด้วย Microsoft VibeASR.cpp พร้อมการถอดเสียงไฟล์ สตรีมมิงแบบเรียลไทม์ และเว็บอินเทอร์เฟซ Gradio บน Windows, Linux และ macOS
อัปเดตแล้ว 10 ส.ค. 2569  · 9 นาที อ่าน

สำรวจด้วย AI

เปิดใน ChatGPTเปิดใน Claudeเปิดใน Perplexity

เทคโนโลยีรู้จำเสียงอัตโนมัติมีพัฒนาการก้าวกระโดดในช่วงไม่กี่ปีที่ผ่านมา โมเดล speech-to-text ที่ครั้งหนึ่งต้องใช้ GPU ประสิทธิภาพสูงและให้ผลลัพธ์ไม่สม่ำเสมอ ปัจจุบันสามารถถอดเสียงได้อย่างแม่นยำบนคอมพิวเตอร์ทั่วไป 

ในขณะเดียวกัน ขนาดโมเดลก็เล็กลง การอนุมานบน CPU เร็วขึ้น และการรองรับหลายภาษากว้างขึ้น ทำให้ผู้ใช้ได้สมดุลที่ดีกว่าในด้านคุณภาพการถอดเสียง ความเร็ว การเข้าถึง และความเป็นส่วนตัว

VibeVoice-ASR-BitNet ของ Microsoft เป็นตัวอย่างที่ดีของความก้าวหน้านี้ 

รันไทม์ VibeASR.cpp ที่ปรับแต่งแล้วทำให้สามารถรันระบบถอดเสียงหลายภาษาแบบโลคัลบนคอมพิวเตอร์ Windows, Linux หรือ macOS โดยไม่ต้องพึ่ง GPU เฉพาะทางหรือส่งเสียงขึ้นคลาวด์

ในคู่มือนี้ จะอธิบายวิธีติดตั้งและบิลด์ VibeASR.cpp ดาวน์โหลดโมเดลควอนไทซ์ ถอดเสียงไฟล์เสียงจากบรรทัดคำสั่ง รันเซิร์ฟเวอร์สตรีมมิงแบบคงอยู่ และใช้เว็บอินเทอร์เฟซ Gradio เพื่ออัปโหลดหรือบันทึกเสียงพูด 

Microsoft VibeASR.cpp คืออะไร? 

VibeASR.cpp คือรันไทม์อนุมาน C++ อย่างเป็นทางการของ Microsoft สำหรับ VibeVoice-ASR-BitNet ซึ่งเป็นโมเดลรู้จำเสียงอัตโนมัติแบบหลายภาษาที่ถูกบีบอัด ออกแบบมาสำหรับการอนุมานแบบโลคัลบน CPU อย่างมีประสิทธิภาพ 

แทนที่จะเป็นโมเดลเสียงแยกต่างหาก VibeASR.cpp เป็นเอนจินที่ปรับแต่งเพื่อรันโมเดล ทำให้ถอดเสียงแบบเรียลไทม์ได้โดยไม่ต้องใช้ GPU เฉพาะทางหรือบริการเสียงบนคลาวด์ 

จึงเหมาะกับแล็ปท็อป เดสก์ท็อป อุปกรณ์เอดจ์ และระบบอื่น ๆ ที่มีทรัพยากรคอมพิวต์จำกัด 

ไดอะแกรมสถาปัตยกรรม VibeVoice-ASR-BitNet

ที่มา: microsoft/VibeVoice-ASR-BitNet

เพื่อให้การใช้งานบน CPU ทำได้จริง Microsoft ได้แทนที่คอมโพเนนต์ภาษาของสถาปัตยกรรม VibeVoice-ASR เดิมจาก Qwen2.5-7B เป็น Qwen2.5-1.5B ที่เล็กกว่ามาก 

พร้อมทั้งใช้วิธีควอนไทซ์ต่างกันกับสองคอมโพเนนต์หลัก:

  • I8_S สำหรับตัวเข้ารหัสเสียง VAE
  • I2_S สำหรับโมเดลภาษา โดยใช้อินเบดดิงที่มีความละเอียดสูงกว่า

การปรับแต่งเหล่านี้ลดขนาดโมเดลรวมจากประมาณ 4.62 GB เหลือ 1.58 GB ทำให้รันบนแล็ปท็อปและเดสก์ท็อปได้อย่างเหมาะสม 

แม้จะลดขนาดลงมาก โมเดลที่บีบอัดมีอัตราความผิดพลาดของคำ (WER) เพิ่มขึ้นเพียง ประมาณ 1–4 เปอร์เซ็นต์ เมื่อเทียบกับสถาปัตยกรรมที่ใหญ่กว่า 

VibeASR.cpp ใช้เฟรมเวิร์ก ggml คำสั่ง CPU แบบกำหนดเอง และการหลอมรวมโอเปอเรเตอร์เพื่อเพิ่มความเร็วในการอนุมาน 

ตามผลทดสอบของ Microsoft มันสามารถรันได้เร็วกว่า Whisper.cpp 1.6–2.3 เท่า เมื่อเทียบกับขนาดโมเดลใกล้เคียงกัน และทำความเร็วเกินเรียลไทม์ได้บน CPU ที่รองรับเมื่อใช้จำนวนเธรดเพียงพอ

ในการทดสอบบน CPU ของ Microsoft โมเดลทำค่า RTF ได้ 0.63 ด้วย 4 เธรด และ 0.42 ด้วย 8 เธรด เทียบเท่าความเร็วประมาณ 1.59× และ 2.38× ของเรียลไทม์ 

WER ที่รายงานประกอบด้วย 8.25% บน MLC English 21.36% บนเสียงจากเฮดเซ็ต AMI 25.87% บนเสียงไมค์ระยะไกล AMI และ 2.41% บน LibriSpeech clean แสดงสมดุลที่ดีระหว่างความแม่นยำในการถอดเสียง ขนาดโมเดล และประสิทธิภาพบน CPU 

1. ติดตั้งเครื่องมือสำหรับบิลด์ที่จำเป็น

VibeASR.cpp รันทั้งหมดบน CPU จึงไม่ต้องใช้ GPU เฉพาะทาง ต้องมีเพียงคอมพิวเตอร์ Windows, Linux หรือ macOS ที่รองรับ, Python 3.9 ขึ้นไป, Git, คอมไพเลอร์ C++ และพื้นที่ดิสก์ว่างประมาณ 4 GB สำหรับซอร์สโค้ด ไฟล์บิลด์ และโมเดล

กระบวนการบิลด์ยังต้องใช้ CMake และ Ninja ด้วย 

บน Windows วิธีที่ง่ายที่สุดคือใช้ w64devkit ซึ่งมีคอมไพเลอร์และเครื่องมือบิลด์พร้อมใช้งานในเทอร์มินัลที่ตั้งค่าไว้ล่วงหน้า 

บน Linux สามารถติดตั้งแพ็กเกจที่ต้องการได้โดยตรงผ่านตัวจัดการแพ็กเกจของระบบ

Windows

ดาวน์โหลดไฟล์ .exe แบบ x64 เวอร์ชันล่าสุดจาก หน้ารายการออกเวอร์ชันของ w64devkit.

หน้ารายการออกเวอร์ชันล่าสุดของ w64devkit

ไฟล์ที่ดาวน์โหลดเป็นแอรกไคฟแบบ self-extracting ให้รันและแตกไฟล์โฟลเดอร์ไปไว้ในที่ที่เรียบง่าย เช่น:

C:\w64devkit

จากนั้นเปิด:

C:\w64devkit\w64devkit.exe

จะเปิดเทอร์มินัลพร้อมใช้งานที่มี GCC, CMake, Make และ Ninja ให้พร้อม สามารถใช้เทอร์มินัลนี้สำหรับขั้นตอนที่เหลือบน Windows ได้โดยไม่ต้องตั้งค่า environment variables เอง

Linux

บน Ubuntu, Debian และดิสทริบิวชันที่เกี่ยวข้อง สามารถติดตั้งคอมไพเลอร์และเครื่องมือบิลด์ที่ต้องการด้วยคำสั่งเดียว:

sudo apt update
sudo apt install build-essential cmake ninja-build git python3 python3-venv

คำสั่งนี้จะติดตั้งคอมไพเลอร์ GCC, CMake, Ninja, Git, Python และแพ็กเกจที่ใช้สร้างสภาพแวดล้อมเสมือนของ Python

macOS

บน macOS ให้ติดตั้งเครื่องมือพัฒนาบรรทัดคำสั่งของ Apple:

xcode-select --install

จะต้องใช้ Git, Python 3.9 ขึ้นไป, CMake และ Ninja ด้วย วิธีที่ง่ายที่สุดในการติดตั้งเครื่องมือที่เหลือคือผ่าน Homebrew:

brew install git python cmake ninja

2. โคลน VibeASR.cpp และตั้งค่าสภาพแวดล้อม Python

กระบวนการตั้งค่าต่อไปนี้เหมือนกันสำหรับ Windows, Linux และ macOS 

ขั้นตอนที่เฉพาะระบบปฏิบัติการมีเพียงคำสั่งสำหรับเปิดใช้งานสภาพแวดล้อมเสมือนของ Python เท่านั้น

เปิดเทอร์มินัล ไปยังโฟลเดอร์ที่จะเก็บโปรเจกต์ และโคลนรีโพ VibeASR.cpp:

git clone --recursive https://github.com/microsoft/VibeASR.cpp.git
cd VibeASR.cpp

Cloning the microsoft/VibeASR.cpp

ออปชัน --recursive จะดาวน์โหลดซับโมดูล llama.cpp ที่จำเป็นด้วย หากไม่มีไฟล์นี้ บางส่วนที่ต้องใช้ในการบิลด์รันไทม์อนุมานจะขาดไป

สร้างสภาพแวดล้อมเสมือนของ Python ภายในโฟลเดอร์โปรเจกต์ 

python -m venv .venv

เปิดใช้งานด้วยคำสั่งตามระบบปฏิบัติการของคุณ

Windows โดยใช้เทอร์มินัล w64devkit:

. .venv/Scripts/activate

Linux และ macOS:

source .venv/bin/activate

หลังเปิดใช้งาน เทอร์มินัลควรแสดง (.venv) ก่อนพรอมป์ตคำสั่ง ตรวจสอบว่า Python ใช้งานได้: 

python --version

อัปเกรด pip และติดตั้ง dependencies ของโปรเจกต์: 

python -m pip install --upgrade pip

pip install -r requirements.txt

แพ็กเกจเหล่านี้รวมถึงแพ็กเกจ Python ที่ใช้โดยสคริปต์ตั้งค่า กระบวนการดาวน์โหลดโมเดล และเว็บอินเทอร์เฟซ Gradio แบบโลคัล 

3. บิลด์ VibeASR.cpp และดาวน์โหลดโมเดล

VibeASR.cpp มีสคริปต์ตั้งค่าที่จัดการทั้งกระบวนการบิลด์ C++ และการดาวน์โหลดโมเดล

สคริปต์จะคอมไพล์โปรแกรมสำหรับบรรทัดคำสั่งและสตรีมมิง ติดตั้งแพ็กเกจ GGUF ที่จำเป็น และดาวน์โหลดไฟล์โมเดลที่ควอนไทซ์ไว้ล่วงหน้ามายังไดเรกทอรีโปรเจกต์

ตรวจสอบให้แน่ใจว่าได้เปิดใช้งานสภาพแวดล้อมเสมือนของ Python ก่อนรันสคริปต์ตั้งค่า

บน Linux และ macOS ให้รัน:

python setup_env.py

บน Windows ให้รันคำสั่งต่อไปนี้ในเทอร์มินัล w64devkit:

CMAKE_GENERATOR=Ninja python setup_env.py

การกำหนด CMAKE_GENERATOR=Ninja ช่วยให้ CMake ใช้ระบบบิลด์ Ninja แทนการพยายามใช้ Microsoft Visual C++ ซึ่งไม่มีให้ใช้ในสภาพแวดล้อม w64devkit

สคริปต์ตั้งค่าจะ:

  • ติดตั้งแพ็กเกจ Python gguf ที่จำเป็น
  • คอนฟิกและคอมไพล์ VibeASR.cpp
  • บิลด์โปรแกรมสำหรับอนุมานและสตรีมมิง
  • ดาวน์โหลดไฟล์โมเดล VibeASR ที่ควอนไทซ์ไว้ล่วงหน้า
  • บันทึกโมเดลที่ดาวน์โหลดไว้ใน models/vibeasr

หลังจากกระบวนการเสร็จสิ้น ไฟล์ปฏิบัติการหลักสำหรับอนุมานจะอยู่ที่ตำแหน่งต่อไปนี้

บน Windows:

build/bin/asr_infer.exe

บน Linux และ macOS:

build/bin/asr_infer

ตรวจสอบว่าไฟล์ปฏิบัติการถูกบิลด์สำเร็จโดยแสดงตัวเลือกบรรทัดคำสั่งที่มีให้

บน Windows:

./build/bin/asr_infer.exe --help

บน Linux และ macOS:

./build/bin/asr_infer --help

เมนูช่วยเหลือของ VibeASR.cpp

4. ทดสอบการถอดเสียงแบบไฟล์และแบบสตรีมมิง

เมื่อพร้อมทั้งรันไทม์และโมเดลแล้ว สามารถทดสอบการถอดเสียงได้สองวิธี 

โปรแกรมอนุมานมาตรฐานจะประมวลผลไฟล์เสียงหนึ่งไฟล์และส่งคืนทรานสคริปต์ที่เสร็จสมบูรณ์ ขณะที่เซิร์ฟเวอร์สตรีมมิงจะคงโหลดโมเดลไว้และแสดงผลการถอดเสียงแบบค่อยเป็นค่อยไปตามโทเค็นที่ถูกสร้าง

เริ่มจากดาวน์โหลดตัวอย่างเสียงสั้น ๆ ภายในโฟลเดอร์โปรเจกต์ VibeASR.cpp:

curl -L "https://homepages.inf.ed.ac.uk/htang2/notes/speech-samples/103-1240-0000.wav" -o recording.wav

ไฟล์เสียงจะถูกบันทึกเป็น recording.wav ในไดเรกทอรีโปรเจกต์ปัจจุบัน

ถอดเสียงไฟล์เสียง

คำสั่งอนุมานมาตรฐานจะโหลดตัวเข้ารหัสเสียงและโมเดลภาษา ประมวลผลเสียงบันทึก และพิมพ์ผลถอดเสียงที่เสร็จสมบูรณ์

บน Windows ให้รัน:

./build/bin/asr_infer.exe \
  --vae-model models/vibeasr/vibeasr-vae-encoder-i8_s.gguf \
  --lm-model models/vibeasr/vibeasr-lm-i2_s-embed-q6_k.gguf \
  --audio recording.wav \
  -t 6 \
  --greedy

บน Linux และ macOS ใช้คำสั่งเดียวกันแต่ไม่ต้องมีนามสกุล .exe:

./build/bin/asr_infer \
  --vae-model models/vibeasr/vibeasr-vae-encoder-i8_s.gguf \
  --lm-model models/vibeasr/vibeasr-lm-i2_s-embed-q6_k.gguf \
  --audio recording.wav \
  -t 6 \
  --greedy

ถอดเสียงไฟล์เสียงด้วย VibeASR.cpp

ออปชัน -t 6 กำหนดให้ใช้ 6 เธรดของ CPU สำหรับอนุมาน สามารถเพิ่มหรือลดตามซีพียูของคุณได้ 

ออปชัน --greedy จะเลือกโทเค็นที่มีความน่าจะเป็นสูงสุดในแต่ละขั้นตอนการถอดรหัส ช่วยให้ได้ผลการถอดเสียงที่สม่ำเสมอ

บนเครื่องของฉัน การประมวลผลเสียงยาว 14.085 วินาที ใช้เวลาประมาณ 13.7 วินาที:

RTF: 0.9726
Speed: approximately 1.03× real time

ค่า real-time factor หรือ RTF เปรียบเทียบเวลาประมวลผลกับความยาวของเสียง 

RTF ต่ำกว่า 1.0 หมายความว่าถอดเสียงได้เร็วกว่าความยาวจริงของการเล่นเสียง ประสิทธิภาพจะแตกต่างกันตามซีพียู ระบบปฏิบัติการ จำนวนเธรด และความยาวของเสียง

ทดสอบการสตรีมโทเค็นต่อโทเค็น

VibeASR.cpp มีเซิร์ฟเวอร์สตรีมมิงแบบคงอยู่ด้วย โดยจะโหลดไฟล์โมเดลทั้งสองครั้งเดียวและทำงานต่อเนื่อง ทำให้ส่งงานถอดเสียงหลายไฟล์ได้โดยไม่ต้องรีสตาร์ตและรีโหลดโมเดลทุกครั้ง

ผลลัพธ์ทำงานคล้ายการสตรีมจากโมเดลภาษาขนาดใหญ่ 

แทนที่จะรอถอดเสียงทั้งชิ้นให้เสร็จ จะเริ่มเห็นข้อความทันทีที่ตัวถอดรหัสสร้างแต่ละโทเค็น 

บางโทเค็นอาจเป็นคำเต็ม ขณะที่บางโทเค็นอาจเป็นส่วนของคำหรือเครื่องหมายวรรคตอน แต่จะแสดงไปเรื่อย ๆ จนกว่าทรานสคริปต์จะเสร็จ

บน Windows เริ่มเซิร์ฟเวอร์ด้วย:

./build/bin/asr_stream_server.exe \
  --vae-model models/vibeasr/vibeasr-vae-encoder-i8_s.gguf \
  --lm-model models/vibeasr/vibeasr-lm-i2_s-embed-q6_k.gguf \
  -t 6 \
  --greedy

บน Linux และ macOS ให้รัน:

./build/bin/asr_stream_server \
  --vae-model models/vibeasr/vibeasr-vae-encoder-i8_s.gguf \
  --lm-model models/vibeasr/vibeasr-lm-i2_s-embed-q6_k.gguf \
  -t 6 \
  --greedy

โหมดสตรีมโทเค็นต่อโทเค็นพร้อมทำงาน

รอจนกว่าเซิร์ฟเวอร์โหลดโมเดลเสร็จและแสดง:

---READY---

ป้อนพาธของไฟล์เสียงแล้วกด Enter:

recording.wav

การถอดเสียงจะเริ่มปรากฏทีละโทเค็น เมื่อประมวลผลไฟล์ครบ เซิร์ฟเวอร์จะแสดง:

---END---

การสตรีมโทเค็นต่อโทเค็นด้วย VibeASR.cpp

จากนั้นสามารถป้อนพาธไฟล์เสียงอื่นต่อได้โดยไม่ต้องรีโหลดโมเดล หากต้องการหยุดเซิร์ฟเวอร์ ให้พิมพ์:

exit

เวิร์กโฟลว์แบบคงอยู่นี้มีประโยชน์มากเมื่อถอดเสียงหลายไฟล์หรือเชื่อมต่อ VibeASR.cpp เข้ากับแอปพลิเคชันอื่นที่ต้องการผลลัพธ์การถอดเสียงแบบไล่ลำดับ

5. เปิดใช้งานและทดสอบเว็บอินเทอร์เฟซ

VibeASR.cpp มาพร้อมเว็บอินเทอร์เฟซ Gradio แบบโลคัลสำหรับอัปโหลดไฟล์เสียงหรือบันทึกเสียงผ่านไมโครโฟน กระบวนการเหมือนกันบน Windows, Linux และ macOS แต่บน Windows ใช้ไฟล์ปฏิบัติการที่ลงท้ายด้วย .exe

dependencies สำหรับอินเทอร์เฟซ รวมถึง Gradio, SoundFile และ NumPy ได้ติดตั้งผ่าน requirements.txt แล้ว

ก่อนอื่น ตรวจสอบให้แน่ใจว่าได้เปิดใช้งานสภาพแวดล้อมเสมือน

Windows โดยใช้เทอร์มินัล w64devkit:

. .venv/Scripts/activate

Linux และ macOS:

source .venv/bin/activate

บน Windows เปิดอินเทอร์เฟซด้วย:

python demo/gradio_asr_demo.py \
  --port 7860 \
  --bin build/bin/asr_infer.exe \
  --server-bin build/bin/asr_stream_server.exe

บน Linux และ macOS จะตรวจจับพาธไฟล์ปฏิบัติการดีฟอลต์โดยอัตโนมัติ:

python demo/gradio_asr_demo.py --port 7860

พาธโมเดลถูกกำหนดไว้ในสคริปต์ Gradio สำหรับทุกระบบปฏิบัติการแล้ว จึงไม่ต้องใส่ในคำสั่ง 

สคริปต์รองรับการกำหนดพาธแยกกันสำหรับโปรแกรมอนุมานมาตรฐานและเซิร์ฟเวอร์สตรีมมิงด้วย

เปิดที่อยู่ต่อไปนี้ในเบราว์เซอร์:

http://127.0.0.1:7860

สำรวจอินเทอร์เฟซ

อินเทอร์เฟซช่วยให้คุณ:

  • เลือกโมเดลสำหรับ CPU
  • กำหนดจำนวนเธรดของ CPU
  • สลับระหว่างการประมวลผลแบบ Online และ Offline
  • เปิดใช้การถอดรหัสแบบ greedy หรือปรับอุณหภูมิและ Top-p
  • อัปโหลดไฟล์เสียงหรือบันทึกจากไมโครโฟนโดยตรง
  • เพิ่ม hotword ทางเลือก เช่น ชื่อบุคคลหรือศัพท์เทคนิค
  • ดูทรานสคริปต์ ระยะเวลาของเสียง และค่า real-time factor

ที่นี่ โหมด Online ไม่ได้หมายความว่าเสียงของคุณถูกส่งไปยังบริการออนไลน์.

มันจะประมวลผลเสียงยาว ๆ แบบค่อยเป็นค่อยไปเป็นชิ้นย่อย และใช้ asr_stream_server เมื่อมีให้ใช้ 

โหมด Offline จะประมวลผลไฟล์เสียงทั้งหมดก่อนจึงจะแสดงผลลัพธ์

อินเทอร์เฟซ VibASR.cpp WebUI

ทดสอบเสียงสั้น ๆ

สำหรับการทดสอบแรก ฉันบันทึกประโยคสั้น ๆ ผ่านไมโครโฟนโดยตรงและเลือกโหมด Offline ด้วย 4 เธรดของ CPU

ทดสอบการบันทึกสั้นด้วย VibASR.cpp WebUI ในโหมดออฟไลน์

RTF เท่ากับ 0.9584 หมายความว่าโมเดลใช้เวลาประมาณ 0.96 วินาทีต่อเสียง 1 วินาที 

คิดเป็นความเร็วประมาณ 1.04× ของเรียลไทม์ ดังนั้นการถอดเสียงจึงเสร็จเร็วกว่าเวลาจริงของเสียงเล็กน้อย

ทดสอบเสียงที่ยาวขึ้น

ฉันทดสอบอินเทอร์เฟซกับเสียงที่ยาวขึ้นซึ่งมีคำพูดประมาณ 109.7 วินาที โมเดลสามารถถอดเสียงจนเสร็จสมบูรณ์และรายงานว่า:

RTF: 0.5305
Audio: 109.7s

VibASR.cpp WebUI ถอดเสียงไฟล์ยาวในโหมดออฟไลน์

แปลว่าโมเดลใช้เวลาประมาณ 0.53 วินาทีต่อเสียง 1 วินาที ไฟล์ทั้งชิ้นใช้เวลาถอดเสียงประมาณ 58 วินาที คิดเป็นความเร็วประมาณ 1.88× ของเรียลไทม์.

ข้อคิดส่งท้าย

ประทับใจกับความเป็นไปได้ของการรู้จำเสียงแบบโลคัลในปัจจุบัน 

แม้บน CPU รุ่นเก่า VibeASR.cpp ก็ถอดเสียงได้ใกล้หรือเร็วกว่าความเร็วเรียลไทม์ โดยไม่ต้องใช้ GPU หน่วยความจำมาก หรือพื้นที่จัดเก็บมากนัก 

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

การตั้งค่าหลักที่ควรพิจารณาคือจำนวนเธรดของ CPU ที่จัดสรรให้กับกระบวนการ 

นอกจากนี้ต้องเลือกระหว่างโหมดออนไลน์ ซึ่งสตรีมทรานสคริปต์แบบค่อยเป็นค่อยไป กับโหมดออฟไลน์ ซึ่งส่งคืนผลถอดเสียงทั้งหมดหลังประมวลผลเสียงเสร็จ

ขั้นตอนการตั้งค่ายังสามารถทำให้ง่ายกว่านี้ได้ โดยเฉพาะบน Windows, Linux และ macOS 

เนื่องจากโปรเจกต์ยังอยู่ระหว่างพัฒนา คาดว่าการติดตั้งและการรองรับไบนารีสำเร็จรูปจะดีขึ้นเรื่อย ๆ เมื่อมีไบนารีสแตนด์อโลนที่เสถียร ฉันเห็นภาพว่าจะได้นำโมเดลนี้ไปใช้ในโปรเจกต์ speech-to-text แบบโลคัลอีกมาก

ขอแนะนำให้ดู บทช่วยสอน GPT Live Transcribe APIของเราเพิ่มเติมด้วย

FAQs

โมเดล VibeASR รองรับภาษาใดบ้างจริง ๆ?

โมเดล VibeVoice-ASR รองรับภาษามากกว่า 50 ภาษาโดยเนื้อแท้ รวมถึงภาษาอังกฤษ จีน ฝรั่งเศส อิตาลี เกาหลี โปรตุเกส และเวียดนาม โดยไม่ต้องตั้งค่าภาษาอย่างชัดเจน และสามารถจัดการการ "สลับภาษา" อัตโนมัติได้ (เมื่อผู้พูดผสมหลายภาษาในประโยคเดียวตามธรรมชาติ)

จำเป็นต้องแปลงไฟล์ MP3 หรือวิดีโอก่อนถอดเสียงหรือไม่?

หากใช้โปรแกรมบรรทัดคำสั่ง asr_infer โดยตรง จะคาดหวังไฟล์ .wav (โดยทั่วไป 16kHz, 16-bit โมโน) หากมีเสียงในรูปแบบอื่น เช่น MP3, M4A หรือ FLAC จำเป็นต้องแปลงเป็น WAV ก่อนด้วยเครื่องมืออย่าง FFmpeg แล้วจึงส่งให้ CLI ประมวลผล

โมเดลสามารถระบุผู้พูดที่ต่างกันหรือให้ไทม์แสตมป์ระดับคำได้หรือไม่?

สถาปัตยกรรมพื้นฐานของ VibeVoice-ASR ถูกออกแบบมาให้สร้างผลลัพธ์แบบมีโครงสร้างที่ประกอบด้วย "ใคร" (การระบุผู้พูด), "เมื่อไหร่" (ไทม์แสตมป์) และ "อะไร" (เนื้อหา) ได้ในครั้งเดียว อย่างไรก็ตาม ไฟล์ปฏิบัติการอนุมาน C++ แบบเบา (VibeASR.cpp) ในปัจจุบันมุ่งเน้นที่การถอดเสียงข้อความดิบแบบค่อยเป็นค่อยไป หากต้องการผลลัพธ์ JSON แบบมีโครงสร้างเต็มรูปแบบพร้อมรหัสผู้พูดและไทม์แสตมป์ โดยทั่วไปจำเป็นต้องรันโมเดลผ่านไลบรารี Python อย่าง transformers

หัวข้อ

คอร์สยอดนิยมจาก DataCamp

Courses

Spoken Language Processing ด้วย Python

4 ชม.
9.1K
เรียนรู้วิธีโหลด แปลง และถอดเสียงจากไฟล์เสียงดิบใน Python
ดูรายละเอียดRight Arrow
เริ่มหลักสูตร
ดูเพิ่มเติมRight Arrow