Leitfaden zur Spracherkennung für Python

Mit der Aufgabe „MediaPipe Language Detector“ können Sie die Sprache eines Textabschnitts ermitteln. In dieser Anleitung erfahren Sie, wie Sie den Language Detector mit Python verwenden. Das in dieser Anleitung beschriebene Codebeispiel ist auf GitHub verfügbar.

In der Demo können Sie sich diese Aufgabe in Aktion ansehen. Weitere Informationen zu den Funktionen, Modellen und Konfigurationsoptionen dieser Aufgabe finden Sie in der Übersicht.

Codebeispiel

Der Beispielcode für Language Detector enthält eine vollständige Implementierung dieser Aufgabe in Python zu Referenzzwecken. Mit diesem Code können Sie diese Aufgabe testen und mit dem Erstellen Ihres eigenen Spracherkennungsfeatures beginnen. Sie können den Beispielcode für die Spracherkennung nur mit Ihrem Webbrowser aufrufen, ausführen und bearbeiten.

Einrichtung

In diesem Abschnitt werden die wichtigsten Schritte zum Einrichten Ihrer Entwicklungsumgebung und Codeprojekte speziell für die Verwendung von Language Detector beschrieben. Allgemeine Informationen zum Einrichten der Entwicklungsumgebung für die Verwendung von MediaPipe-Aufgaben, einschließlich der Anforderungen an die Plattformversion, finden Sie im Einrichtungsleitfaden für Python.

Pakete

Der Language Detector verwendet das mediapipe-Pip-Paket. So können Sie die Abhängigkeit installieren:

$ python -m pip install mediapipe

Importe

Importieren Sie die folgenden Klassen, um auf die Funktionen der Language Detector-Aufgaben zuzugreifen:

import mediapipe as mp
from mediapipe.tasks import python
from mediapipe.tasks.python import text

Modell

Die MediaPipe-Spracherkennung erfordert ein trainiertes Modell, das mit dieser Aufgabe kompatibel ist. Weitere Informationen zu verfügbaren trainierten Modellen für Language Detector finden Sie in der Aufgabenübersicht im Abschnitt Modelle.

Wählen Sie das Modell aus, laden Sie es herunter und speichern Sie es dann in Ihrem Projektverzeichnis:

model_path = '/absolute/path/to/language_detector.tflite'

Geben Sie den Pfad des Modells mit dem Parameter BaseOptions für das model_asset_path-Objekt an:

base_options = BaseOptions(model_asset_path=model_path)

Aufgabe erstellen

Die MediaPipe-Spracherkennungsaufgabe verwendet die Funktion create_from_options, um die Aufgabe einzurichten. Die Funktion create_from_options akzeptiert Werte für Konfigurationsoptionen, um die Detektoroptionen festzulegen. Sie können die Aufgabe auch mit der Factory-Funktion create_from_model_path initialisieren. Die Funktion create_from_model_path akzeptiert einen relativen oder absoluten Pfad zur Datei des trainierten Modells. Weitere Informationen zum Konfigurieren von Aufgaben finden Sie unter Konfigurationsoptionen.

Im folgenden Codebeispiel wird gezeigt, wie diese Aufgabe erstellt und konfiguriert wird.

base_options = python.BaseOptions(model_asset_path=model_path)
options = text.LanguageDetectorOptions(base_options=base_options)

Konfigurationsoptionen

Diese Aufgabe bietet die folgenden Konfigurationsoptionen für Python-Anwendungen:

Option Beschreibung Wertebereich Standardwert
max_results Legt die optionale maximale Anzahl von Sprachvorhersagen mit den besten Bewertungen fest, die zurückgegeben werden sollen. Wenn dieser Wert kleiner als null ist, werden alle verfügbaren Ergebnisse zurückgegeben. Beliebige positive Zahlen -1
score_threshold Legt den Schwellenwert für den Vorhersagewert fest, der den in den Modellmetadaten angegebenen Grenzwert überschreibt (falls vorhanden). Ergebnisse unter diesem Wert werden abgelehnt. Beliebige Gleitkommazahl Nicht festgelegt
category_allowlist Legt die optionale Liste der zulässigen Sprachcodes fest. Wenn das Feld nicht leer ist, werden Sprachvorhersagen herausgefiltert, deren Sprachcode nicht in diesem Dataset enthalten ist. Diese Option und category_denylist schließen sich gegenseitig aus und die Verwendung beider Werte führt zu einem Fehler. Beliebige Strings Nicht festgelegt
category_denylist Legt die optionale Liste der unzulässigen Sprachcodes fest. Wenn das Feld nicht leer ist, werden Sprachvorhersagen herausgefiltert, deren Sprachcode in diesem Satz enthalten ist. Diese Option und category_allowlist schließen sich gegenseitig aus und die Verwendung beider Werte führt zu einem Fehler. Beliebige Strings Nicht festgelegt

Daten vorbereiten

Language Detector arbeitet mit Textdaten (str). Die Aufgabe übernimmt die Vorverarbeitung der Dateneingabe, einschließlich Tokenisierung und Tensor-Vorverarbeitung. Die gesamte Vorverarbeitung erfolgt in der detect-Funktion. Es ist keine zusätzliche Vorverarbeitung des Eingabetexts im Voraus erforderlich.

input_text = 'The input text to be classified.'

Task ausführen

Der Language Detector verwendet die Funktion detect, um Inferenzen auszulösen. Für die Spracherkennung werden die möglichen Sprachen für den Eingabetext zurückgegeben.

Der folgende Code zeigt, wie die Verarbeitung mit dem Aufgabenmodell ausgeführt wird.

with python.text.LanguageDetector.create_from_options(options) as detector:
  detection_result = detector.detect(input_text)

Ergebnisse verarbeiten und anzeigen

Der Sprachdetektor gibt eine LanguageDetectorResult aus, die aus einer Liste von Sprachvorhersagen und den Wahrscheinlichkeiten für diese Vorhersagen besteht. Im Folgenden sehen Sie ein Beispiel für die Ausgabedaten dieser Aufgabe:

LanguageDetectorResult:
  LanguagePrediction #0:
    language_code: "fr"
    probability: 0.999781

Dieses Ergebnis erhalten Sie, indem Sie das Modell für den Eingabetext ausführen: "Il y a beaucoup de bouches qui parlent et fort peu de têtes qui pensent.".

Ein Beispiel für den Code, der zum Verarbeiten und Visualisieren der Ergebnisse dieser Aufgabe erforderlich ist, finden Sie in der Python-Beispielanwendung.