تحديد اللغة
حدّد لغة الكلام على الجهاز باستخدام SpeechBrain ECAPA VoxLingua107. يدعم تشغيل Swift كلاً من MLX الأصلي وCore ML المترجم، ويرتّب 107 تسميات لغوية.
البنية
تُعاد معاينة الصوت إلى 16 كيلوهرتز ويُحوّل عبر واجهة 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 وسياسة رفض معايرة للصمت والموسيقى وتبديل اللغات واللغات غير المدعومة.