การระบุภาษา

ระบุภาษาพูดบนอุปกรณ์ด้วย SpeechBrain ECAPA VoxLingua107 รันไทม์ Swift รองรับทั้ง MLX แบบเนทีฟและ Core ML ที่คอมไพล์แล้ว พร้อมจัดอันดับ 107 ป้ายภาษา

สถาปัตยกรรม

เสียงถูกรีแซมเพิลเป็น 16 kHz และผ่านฟรอนต์เอนด์ log-mel 60 แบนด์ที่ตรงกับ SpeechBrain จากนั้นปรับค่าเฉลี่ยตามเวลาแล้วส่งเข้า ECAPA-TDNN และตัวจำแนก 107 คลาส

CLI

speech language-id recording.wav
speech language-id recording.wav --engine coreml --top 3
speech language-id recording.wav --json

ค่าเริ่มต้นคือ MLX ใช้ --engine coreml สำหรับโมเดลที่คอมไพล์แล้ว --top เพื่อกำหนดจำนวนตัวเลือก และ --json สำหรับผลลัพธ์ที่เครื่องอ่านได้

Swift API

import SpeechLanguageID

let identifier = try await SpeechLanguageIdentifier.fromPretrained(engine: .mlx)
let result = try identifier.identify(
    audio: samples,
    sampleRate: sampleRate,
    topK: 5
)
print(result.best?.label.code ?? "unknown")

ไฟล์บันทึกเสียงยาว

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

โมเดลชุดปิด

โมเดลจะจัดอันดับป้ายที่รู้จักเสมอ ค่าความมั่นใจไม่ใช่ตัวตรวจจับภาษาที่ไม่รู้จัก ควรเพิ่ม VAD และนโยบายปฏิเสธที่ปรับเทียบแล้วสำหรับความเงียบ เพลง การสลับภาษา และภาษาที่ไม่รองรับ

Hugging Face

CLI: language-id