Benchmark

RTF (ค่าตัวประกอบเรียลไทม์) ต่ำกว่า 1.0 หมายถึงเร็วกว่าเรียลไทม์

Apple Silicon (MLX + CoreML)

Benchmark ทั้งหมดทำบน M2 Max, 64 GB, macOS 14 ด้วยบิลด์ release และ metallib ที่คอมไพล์แล้ว

ASR — อัตราข้อผิดพลาดของคำ

ประเมินบน LibriSpeech test-clean (2620 ประโยค, เสียงอ่านภาษาอังกฤษประมาณ 5.4 ชั่วโมง)

โมเดลบิตขนาดWER%RTF
Qwen3-ASR 1.7B8-bit2.3 GB2.350.090
Qwen3-ASR 1.7B4-bit1.2 GB2.570.045
Parakeet TDT 0.6BINT8634 MB2.740.089
Qwen3-ASR 0.6B8-bit960 MB2.800.025
Qwen3-ASR 0.6B4-bit675 MB3.340.023

เปรียบเทียบกับโมเดลที่เผยแพร่

โมเดลพารามิเตอร์ขนาดความแม่นยำWER%แหล่งที่มา
Qwen3-ASR 1.7B1.7B2.3 GB8-bit2.35Benchmark นี้
Whisper Large v3 Turbo809M1.6 GBFP162.5OpenAI (2024)
Qwen3-ASR 1.7B1.7B1.2 GB4-bit2.57Benchmark นี้
Whisper Large v31.5B3.1 GBFP162.7OpenAI (2023)
Parakeet TDT 0.6B600M634 MBINT82.74Benchmark นี้
Qwen3-ASR 0.6B600M960 MB8-bit2.80Benchmark นี้
Whisper Medium769M1.5 GBFP163.0OpenAI (2022)
Qwen3-ASR 0.6B600M675 MB4-bit3.34Benchmark นี้
Whisper Small244M483 MBFP163.4OpenAI (2022)

ความเสถียรของรูปแบบยาว (โหลด Neural Engine ต่อเนื่อง)

ประมวลผล 200 ประโยค LibriSpeech ตามลำดับ (เสียงประมาณ 30 นาที, M2 Max) ทดสอบว่า WER หรือความหน่วงจะลดลงเมื่อถอดเสียงต่อเนื่องหรือไม่

ตัวชี้วัด25% แรก25% สุดท้ายโดยรวม
WER%1.301.232.43
RTF0.6720.4000.539

ไม่พบการเสื่อมประสิทธิภาพ WER เสถียรตลอดเซสชัน RTF กลับดีขึ้นเมื่อ CoreML อุ่นเครื่องแคชแผนการดำเนินงาน ไม่พบการ throttling จากความร้อนหลังการอินเฟอเรนซ์ Neural Engine ต่อเนื่อง 42 นาที Parakeet ประมวลผลแต่ละ chunk อย่างเป็นอิสระ — ไม่มีการสะสมสถานะข้าม chunk

ผลลัพธ์หลายภาษา (FLEURS)

ใช้ CER สำหรับภาษา CJK (ไม่มีขอบเขตคำ) Parakeet รองรับประมาณ 25 ภาษายุโรป (ไม่มี CJK)

ภาษาตัวชี้วัดQwen3 4-bitQwen3 8-bitParakeet INT8
สเปนWER6.445.065.18
อังกฤษWER6.575.649.30
จีนCER8.417.71
เยอรมันWER9.456.8112.33
ฝรั่งเศสWER11.428.5013.02
ญี่ปุ่นCER16.118.64
รัสเซียWER16.3510.5211.49
เกาหลีWER19.956.89
ฮินดีWER25.9318.57
อาหรับWER33.4720.31

ค่าความต่างจากการบีบอัด

การสูญเสียความแม่นยำจากการควอนไทซ์ลงเป็นความกว้างบิตที่ต่ำลง

ตัวแปรWER%การแทนที่การแทรกการลบข้อผิดพลาดทั้งหมดขนาด
Qwen3 0.6B 8-bit2.801111922681471960 MB
Qwen3 0.6B 4-bit3.3413231233081754675 MB
ค่าต่าง+0.54+212+31+40+283-30%
Parakeet TDT INT82.749901253081423634 MB
ประเด็นสำคัญ

Qwen3-ASR 1.7B 8-bit ทำได้ WER 2.35% — ดีกว่า Whisper Large v3 Turbo (2.5%) และ Whisper Large v3 (2.7%) พร้อมทำงานที่ความเร็ว 11x เรียลไทม์บน Apple Silicon

TTS — ความเข้าใจได้แบบไป-กลับ

สังเคราะห์ข้อความ จากนั้นถอดเสียงกลับเป็นข้อความด้วย Qwen3-ASR 0.6B และคำนวณ WER เทียบกับข้อความต้นฉบับ ประเมินบน 30 ประโยคสนทนาภาษาอังกฤษในตัว

Engineโมเดลพารามิเตอร์ขนาดWER%RTF
CosyVoice30.5B 4-bit500M~1.9 GB3.250.59
Qwen3-TTS1.7B 4-bit1.7B~2.3 GB3.470.79
Qwen3-TTS1.7B 8-bit1.7B~3.5 GB3.660.85
Kokoro-82MCoreML82M~170 MB3.900.17
Qwen3-TTS0.6B 8-bit600M~960 MB9.740.76
Qwen3-TTS0.6B 4-bit600M~675 MB15.580.76

การแยกย่อยความหน่วง (Qwen3-TTS)

ขั้นตอนเวลา% ของทั้งหมดคำอธิบาย
Embed1-3 ms<1%เอ็มเบดดิงข้อความ (TTFT)
Generate2-6 s~92%โทเค็น codec แบบ autoregressive
Decode244-457 ms~8%ตัวถอดรหัส codec ไปเป็นรูปคลื่น
ประเด็นสำคัญ

Engine TTS ทุกตัวทำงานเร็วกว่าเรียลไทม์ (RTF < 1.0) CosyVoice3 นำหน้าในด้านความเข้าใจได้ (WER 3.25%) Kokoro เร็วที่สุด (RTF 0.17) ด้วยขนาดเพียง 170 MB

VAD — ความแม่นยำในการตรวจจับ

การประเมิน FLEURS (10 ภาษา, 250 ไฟล์)

ประเมินเทียบกับ ground truth อ้างอิงของ Python FireRedVAD ที่ threshold เดียวกัน

Engineพารามิเตอร์BackendF1%FAR%MR%RTF
FireRedVAD588KCoreML (ANE)99.122.520.470.007
Silero v5309KCoreML (ANE)95.1315.761.890.022
Silero v5309KMLX (GPU)95.1115.851.890.027
Pyannote1.5MMLX (GPU)94.8614.712.920.358

การประเมิน VoxConverse (หลายผู้พูด)

ไฟล์สนทนาหลายผู้พูด 5 ไฟล์ ประเมินที่ความละเอียดเฟรม 10 ms

Engineพารามิเตอร์BackendF1%FAR%MR%RTF
Pyannote1.5MMLX (GPU)98.2250.090.190.358
Silero v5309KCoreML (ANE)97.5233.292.690.022
Silero v5309KMLX (GPU)95.9821.025.880.027
FireRedVAD588KCoreML (ANE)94.2140.125.050.007

เปรียบเทียบกับตัวเลขที่เผยแพร่

โมเดลF1%FAR%MR%พารามิเตอร์Dataset
Pyannote (ของเรา)98.2250.090.191.5MVoxConverse
FireRedVAD (paper)97.572.693.62588KFLEURS-VAD-102
Silero (ของเรา)95.9821.025.88309KVoxConverse
Silero-VAD (paper)95.959.413.95309KFLEURS-VAD-102
FireRedVAD (ของเรา)94.2169.335.05588KVoxConverse
ประเด็นสำคัญ

FireRedVAD ทำได้ F1 99.12% บน FLEURS ด้วยอัตราการเตือนเท็จต่ำที่สุด (2.52%) และทำงานที่ 135x เรียลไทม์ Silero v5 เป็นตัวเลือกสตรีมมิ่งที่ดีที่สุดที่ 32 ms ต่อ chunk

Wake-Word / การตรวจหาคำสำคัญ

KWS Zipformer (fine-tune gigaspeech)

Streaming Zipformer2 transducer (3.49M พารามิเตอร์, Apache-2.0) ด้วย palettization INT8 บน CoreML ประเมินกับคำสำคัญ 12 คำบน LibriSpeech test-clean (ประโยคบวก 158 ประโยค, ลบ 60 ประโยค) Threshold ที่ปรับแต่งแล้ว: acThreshold = 0.15, contextScore = 0.5, numTrailingBlanks = 1

ตัวชี้วัดค่าหมายเหตุ
RTF (CPU + Neural Engine)0.0426× เรียลไทม์บนซีรีส์ M
Recall (12 คำสำคัญ)88%LibriSpeech test-clean, ประโยคบวก 158 ประโยค
การเตือนเท็จ / ประโยค0.27ประโยคลบ 60 ประโยค
CoreML INT8 เทียบกับ PyTorch FP3299%ความสอดคล้องในการเปล่งเสียง
ขนาดโมเดลที่คอมไพล์แล้ว~4 MBencoder 3.3 MB + decoder 525 KB + joiner 160 KB
หน่วยความจำ runtime~6 MBน้ำหนัก + แคชสถานะ encoder

ค่าดีฟอลต์ที่ปรับแต่งแล้วช่วยเพิ่ม recall จาก 62% เป็น 88% (และลด FP/ประโยค จาก 0.43 เป็น 0.27) เทียบกับค่าดีฟอลต์ของ icefall upstream (acThreshold = 0.25, contextScore = 2.0) ดู คู่มือ wake-word สำหรับรูปแบบไฟล์คำสำคัญและการปรับ threshold ต่อวลี

เอ็มเบดดิงผู้พูด

ความหน่วงในการสกัด

คลิปเสียง 20 วินาที, ทำซ้ำ 10 ครั้งหลังอุ่นเครื่อง

โมเดลDimBackendความหน่วง
CAM++ (3D-Speaker)192CoreML (ANE)12 ms
WeSpeaker ResNet34-LM256MLX (GPU)64 ms
WeSpeaker ResNet34-LM256CoreML (ANE)143 ms

คุณภาพเอ็มเบดดิง (VoxConverse)

ความคล้ายคลึง cosine ระหว่างเอ็มเบดดิงระดับเซกเมนต์จากการบันทึกหลายผู้พูด 5 รายการ ค่าการแยกที่สูงขึ้น = การแยกแยะผู้พูดดีขึ้น

โมเดลBackendผู้พูดคนเดียวกันผู้พูดต่างกันการแยก
WeSpeakerMLX0.7260.1420.584
WeSpeakerCoreML0.7260.1430.582
CAM++CoreML0.7230.3950.328
ประเด็นสำคัญ

Engine ทั้งสามตัวเทียบเท่ากับการอ้างอิง Python pyannote (การแยก 0.577, ความคล้ายคลึง cosine >0.96) WeSpeaker ทำได้ การแยก 0.584 ทั้งบน MLX และ CoreML CAM++ ทำงาน เร็วขึ้น 5x (12 ms เทียบกับ 65 ms) ด้วยการแยกที่ดี (0.328)

การแยกแหล่งกำเนิดเสียง — SDR

อัตราส่วนสัญญาณต่อความบิดเบือน (SDR) บน MUSDB18-HQ (เพลงทดสอบความยาวเต็ม 50 เพลง, stereo 44.1kHz) ค่าสูงกว่าดีกว่า โมเดลสองขนาด: HQ (8.9M พารามิเตอร์/stem) และ L (28.3M พารามิเตอร์/stem)

เป้าหมายUMX-HQ (MLX)UMX-L (MLX)UMX-HQ (เผยแพร่)
เสียงร้อง6.23 dB~10.5 dB6.32 dB
กลอง6.44 dB~7.0 dB5.73 dB
เบส4.56 dB~5.5 dB5.23 dB
อื่น ๆ3.41 dB~4.5 dB4.02 dB
โมเดลพารามิเตอร์/stemขนาดRTFความเร็ว
Open-Unmix HQ8.9M136 MB0.234.3x เรียลไทม์
Open-Unmix L28.3M432 MB0.214.8x เรียลไทม์
ประเด็นสำคัญ

UMX-HQ เทียบเท่ากับ SDR ที่เผยแพร่บนเสียงร้องและกลองด้วยโมเดลเบาขนาด 8.9M UMX-L ให้การปรับปรุง +2–4 dB ด้วยขนาดโมเดล 3 เท่า ทั้งคู่รวมการกรองหลังด้วย Wiener EM แบบหลายช่อง และทำงานเร็วกว่าเรียลไทม์บน Apple Silicon

การทำซ้ำ

# ASR benchmarks (LibriSpeech test-clean)
make build
python scripts/benchmark_asr.py --batch --engine qwen3 --model 0.6B
python scripts/benchmark_asr.py --batch --engine qwen3 --model 0.6B-8bit
python scripts/benchmark_asr.py --batch --engine parakeet
python scripts/benchmark_asr.py --batch --engine parakeet --model int8

# ASR multilingual (FLEURS, auto-download)
python scripts/benchmark_asr.py --dataset fleurs --language en_us --batch

# TTS round-trip
python scripts/benchmark_tts.py --compare

# VAD comparison
python scripts/benchmark_vad.py --compare

# Speaker embeddings comparison
python scripts/benchmark_speaker.py --compare

# Source separation (MUSDB18-HQ, download from Zenodo)
python scripts/benchmark_separation.py --data-dir benchmarks/data/musdb18-hq