Mit der Aufgabe „MediaPipe Language Detector“ können Sie die Sprache eines Textabschnitts ermitteln. Diese Anweisungen zur Verwendung des Language Detector mit Android-Apps. Der Code das in dieser Anleitung beschriebene Beispiel GitHub
Sie können diese Aufgabe in Aktion sehen, indem Sie die Demo ansehen. Weitere Informationen zu Funktionen, Modellen und Konfigurationsoptionen Sehen Sie sich die Übersicht an.
Codebeispiel
Der Beispielcode für Language Detector bietet eine einfache Implementierung dieses zu Ihrer Information. Dieser Code hilft Ihnen beim Testen dieser Aufgabe und beim um eine eigene Spracherkennungsfunktion zu entwickeln. Sie können in der Beispielcode für die Spracherkennung auf GitHub.
Code herunterladen
In der folgenden Anleitung erfahren Sie, wie Sie eine lokale Kopie des Beispiels erstellen. mit dem Befehlszeilentool git für die Versionsverwaltung erstellen.
<ph type="x-smartling-placeholder">So laden Sie den Beispielcode herunter:
- Klonen Sie das Git-Repository mit dem folgenden Befehl:
git clone https://github.com/google-ai-edge/mediapipe-samples
- Konfigurieren Sie optional Ihre Git-Instanz für den Sparse-Checkout.
Sie haben also nur die Dateien für die Beispiel-App „Spracherkennung“:
cd mediapipe git sparse-checkout init --cone git sparse-checkout set examples/languagedetector/android
Eine Anleitung zum Einrichten und Ausführen eines Beispiels mit Android Studio finden Sie in der Anleitung zur Einrichtung des Beispielcodes Einrichtungsleitfaden für Android
Schlüsselkomponenten
Die folgenden Dateien enthalten den wichtigen Code für die Textklassifizierung. Beispiel-App:
- LanguageDetectorHelper.kt Initialisiert den Sprachdetektor und verarbeitet die Modellauswahl.
- ResultsAdapter.kt – Die Erkennungsergebnisse werden verarbeitet und formatiert.
- MainActivity.kt
Implementiert die Anwendung, einschließlich Aufrufen von
LanguageDetectorHelper
undResultsAdapter
.
Einrichtung
In diesem Abschnitt werden die wichtigsten Schritte zum Einrichten Ihrer Entwicklungsumgebung und Codeprojekte speziell für die Verwendung der Spracherkennung. Allgemeine Informationen zu Einrichten Ihrer Entwicklungsumgebung für die Verwendung von MediaPipe-Aufgaben, einschließlich Plattformversionsanforderungen finden Sie in der Einrichtungsleitfaden für Android
<ph type="x-smartling-placeholder">Abhängigkeiten
Die Spracherkennung verwendet die com.google.mediapipe:tasks-text
-Bibliotheken. Dieses Element hinzufügen
Abhängigkeit zur Datei build.gradle
Ihres Android-App-Entwicklungsprojekts.
Sie können die erforderlichen Abhängigkeiten mit dem folgenden Code importieren:
dependencies {
implementation 'com.google.mediapipe:tasks-text:latest.release'
}
Modell
Für die Aufgabe „MediaPipe Language Detector“ ist ein trainiertes Modell erforderlich, das mit dieser für die Aufgabe. Weitere Informationen zu verfügbaren trainierten Modellen für die Spracherkennung finden Sie unter 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:
<dev-project-root>/src/main/assets
Geben Sie den Pfad des Modells innerhalb des Parameters ModelName
an.
Aufgabe erstellen
Sie können die Aufgabe mit einer der createFrom...()
-Funktionen erstellen. Die
Die Funktion createFromOptions()
akzeptiert Konfigurationsoptionen für die Sprache
Detektor. Sie können die Aufgabe auch mit der createFromFile()
-Factory initialisieren
. Die Funktion createFromFile()
akzeptiert einen relativen oder absoluten Pfad zu
die Datei mit dem trainierten Modell. Weitere Informationen zum Konfigurieren von Aufgaben finden Sie unter
Konfigurationsoptionen.
Der folgende Code zeigt, wie diese Aufgabe erstellt und konfiguriert wird.
// For creating a language detector instance:
LanguageDetectorOptions options =
LanguageDetectorOptions.builder()
.setBaseOptions(
BaseOptions.builder()
.setModelAssetPath(modelPath)
.build()
)
.build();
LanguageDetector languageDetector = LanguageDetector.createFromOptions(context, options);
Im Codebeispiel finden Sie ein Beispiel für das Erstellen einer Aufgabe.
LanguageDetectorHelper
Klasse initDetector()
.
Konfigurationsoptionen
Diese Aufgabe bietet die folgenden Konfigurationsoptionen für Android-Apps:
Option | Beschreibung | Wertebereich | Standardwert |
---|---|---|---|
maxResults |
Legt die optionale maximale Anzahl der am besten bewerteten Sprachvorhersagen fest auf zurückgeben. Wenn dieser Wert kleiner als null ist, werden alle verfügbaren Ergebnisse zurückgegeben. | Beliebige positive Zahlen | -1 |
scoreThreshold |
Legt den Schwellenwert für die Vorhersagepunktzahl fest, der den Wert in die Modellmetadaten (falls vorhanden). Ergebnisse unter diesem Wert werden abgelehnt. | Beliebiger Gleitkommawert | Nicht festgelegt |
categoryAllowlist |
Legt die optionale Liste der zulässigen Sprachcodes fest. Wenn das Feld nicht leer ist,
Sprachvorhersagen, deren Sprachcode nicht in diesem Satz enthalten ist,
herausgefiltert. Diese Option schließt sich mit
categoryDenylist und die Verwendung beider führt zu einem Fehler. |
Alle Strings | Nicht festgelegt |
categoryDenylist |
Legt die optionale Liste der unzulässigen Sprachcodes fest. Wenn
nicht leer ist, werden Sprachvorhersagen, deren Sprachcode in diesem Satz enthalten ist, gefiltert
aus. Diese Option schließt sich mit categoryAllowlist und
führt dies zu einem Fehler. |
Alle Strings | Nicht festgelegt |
Daten vorbereiten
Die Spracherkennung funktioniert mit Textdaten (String
). Die Aufgabe verarbeitet die Dateneingabe
Vorverarbeitung, einschließlich Tokenisierung und Tensor-Vorverarbeitung. Alle
erfolgt die Vorverarbeitung in der Funktion detect()
. Es ist nicht nötig,
zusätzliche Vorverarbeitung des Eingabetexts.
String inputText = "Some input text for the language detector";
Aufgabe ausführen
Die Spracherkennung verwendet die Methode LanguageDetector.detect()
, um die Eingabe zu verarbeiten
und die Sprache des Textes vorhersagen. Sie sollten eine separate Ausführung
Thread zum Ausführen der Erkennung, um das Blockieren des Android-Nutzers zu vermeiden
Threads mit Ihrer Anwendung.
Der folgende Code zeigt, wie die Verarbeitung mit der Aufgabe ausgeführt wird. mit einem separaten Ausführungsthread.
// Predict the language of the input text.
fun classify(text: String) {
executor = ScheduledThreadPoolExecutor(1)
executor.execute {
val results = languageDetector.detect(text)
listener.onResult(results)
}
}
Im Codebeispiel finden Sie ein Beispiel für das Ausführen einer Aufgabe.
LanguageDetectorHelper
Klasse detect()
.
Ergebnisse verarbeiten und anzeigen
Die Spracherkennung gibt eine LanguageDetectorResult
aus, die aus einer Liste von
Sprachvorhersagen zusammen mit den Wahrscheinlichkeiten
für diese Vorhersagen abrufen. Die
Sprachkategorien werden im Modell definiert, siehe Aufgabenübersicht
Abschnitt „Modelle“ für weitere Informationen zu dem von Ihnen verwendeten Modell.
Im Folgenden sehen Sie ein Beispiel für die Ausgabedaten dieser Aufgabe:
LanguageDetectorResult:
LanguagePrediction #0:
language_code: "fr"
probability: 0.999781
Dieses Ergebnis wurde erhalten, indem das Modell für den Eingabetext ausgeführt wurde:
"Il y a beaucoup de bouches qui parlent et fort peu de têtes qui pensent."
Im Codebeispiel finden Sie ein Beispiel für die Anzeige von Ergebnissen.
ResultsAdapter
und ViewHolder
innere Klasse.