تحديد اللغة

حدّد لغة الكلام على الجهاز باستخدام 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 وسياسة رفض معايرة للصمت والموسيقى وتبديل اللغات واللغات غير المدعومة.

Hugging Face

CLI: language-id