Spracherkennung

Webfunktionen: Spracherkennung

Die Language Detector API ist eine clientseitige Web-API, mit der die Sprache eines bestimmten Textstrings erkannt werden kann. Da die Erkennung lokal im Browser erfolgt, wird der Datenschutz verbessert und die Notwendigkeit umfangreicher externer Bibliotheken oder kostspieliger serverseitiger Aufrufe reduziert.

Wichtige Anwendungsfälle

  • Übersetzungsvorbereitung: Die Ausgangssprache wird identifiziert, bevor der Text an einen Übersetzer gesendet wird.
  • Sicherheit und Filterung: Laden bestimmter Modelle für Aufgaben wie die Erkennung schädlicher Inhalte.
  • Barrierefreiheit: Inhalte mit dem richtigen lang-Attribut für Screenreader kennzeichnen.
  • Lokalisierung der Benutzeroberfläche: Die Benutzeroberfläche der Anwendung wird an die Eingabesprache der Nutzerinnen und Nutzer angepasst.

Hardware- und Systemanforderungen

  • Betriebssystem: Windows 10/11, macOS 13+, Linux oder Chromebook Plus.
  • Speicherplatz: 22 GB freier Speicherplatz (das Modell wird entfernt, wenn der Speicherplatz unter 10 GB fällt).
  • RAM/CPU: 16 GB RAM und mindestens 4 CPU-Kerne.
  • VRAM: Mindestens 4 GB bei Verwendung einer GPU.

Implementierungsleitfaden

1. Modellverwaltung und Nutzeraktivierung

Prüfen Sie die Modellverfügbarkeit, bevor Sie versuchen, den Detektor zu instanziieren oder den Download auszulösen.

OBLIGATORISCH: Die Instanziierung des Language Detectors oder das Auslösen eines Modelldownloads mit LanguageDetector.create() MUSS durch eine Nutzergeste (z. B. einen Buttonklick) initiiert werden, um einen NotAllowedError zu verhindern, wenn sich das Modell im Status downloadable oder downloading befindet.

// Check if the model is available or downloadable
const availability = await LanguageDetector.availability();

if (availability !== 'unavailable') {
  button.addEventListener('click', async () => {
    const detector = await LanguageDetector.create({
      monitor(m) {
        m.addEventListener('downloadprogress', (e) => {
          console.log(`Downloaded ${e.loaded * 100}%`);
        });
      },
    });
  });
}

2. Lauferkennung

Die API gibt eine nach Rangfolge sortierte Liste potenzieller Sprachen mit einem Konfidenzwert zwischen 0.0 und 1.0 zurück.

const someUserText = 'Hallo und herzlich willkommen!';
const results = await detector.detect(someUserText);

for (const result of results) {
  // result.detectedLanguage (e.g., 'de')
  // result.confidence (e.g., 0.999)
  console.log(result.detectedLanguage, result.confidence);
}

Vermeiden Sie die Verwendung des Detektors für sehr kurze Wortgruppen oder einzelne Wörter, da die Genauigkeit dann erheblich abnimmt.

Sicherheit und Umwelt

  • iFrames: Für ursprungsübergreifende iFrames ist eine explizite Berechtigungsrichtlinie erforderlich, um auf die API zuzugreifen.

    <iframe
      src="https://cross-origin.example.com/"
      allow="language-detector"
    ></iframe>
    
  • Web-Worker: Die API ist derzeit aufgrund der Komplexität der Berechtigungsrichtlinien nicht in Web-Workern verfügbar.

  • Datenschutz: Während des Erkennungsprozesses werden keine Daten an Google oder Dritte gesendet.

Fallback-Strategie

Prüfen Sie vor der Verwendung, ob das LanguageDetector-Objekt im globalen Bereich verfügbar ist:

if ('LanguageDetector' in self) {
  // The Language Detector API is supported.
} else {
  // Execute fallback strategy
}

Wenn die LanguageDetector API nicht unterstützt wird oder die Verfügbarkeitsprüfungen 'unavailable' zurückgeben, müssen Sie einen ordnungsgemäßen Fallback durchführen:

  1. Remote API Fallback: Die Erkennungsanfrage wird an einen Serverendpunkt oder eine Cloud-API (z. B. die Vertex AI Gemini API) weitergeleitet, um die Sprache zu identifizieren.
  2. Graduelle Fehlertoleranz: Deaktivieren Sie Elemente/Schaltflächen zur Spracherkennung und informieren Sie den Nutzer, dass die clientseitige Erkennung in diesem Browser derzeit nicht unterstützt wird. So verhindern Sie unbehandelte Ausnahmen oder Abstürze.