Verbessern der Erkennungsgenauigkeit mit einer Begriffsliste

Eine Begriffsliste ist eine Liste von Wörtern oder Begriffen, die im Voraus bereitgestellt wird, um die Erkennung zu verbessern. Das Hinzufügen eines Begriffs zu einer Begriffsliste erhöht seine Bedeutung und dadurch die Wahrscheinlichkeit, dass er erkannt wird.

Unterstützte Gebietsschemas für Begriffslisten finden Sie unter Sprach- und Stimmunterstützung für den Speech-Dienst.

Beispiele für Begriffe:

  • Namen
  • Geografische Orte
  • Homonyme
  • Branchen- oder organisationsspezifische Wörter oder Akronyme

Begriffslisten sind einfach und kompakt:

  • Just-In-Time: Eine Begriffsliste wird direkt vor dem Starten der Spracherkennung bereitgestellt, sodass kein benutzerdefiniertes Modell trainiert werden muss.
  • Kompakt: Sie benötigen kein umfangreiches Dataset. Geben Sie ein Wort oder einen Ausdruck an, um seine Erkennung zu verbessern.

Sie können Begriffslisten mit Speech Studio, dem Speech SDK oder der Speech-Befehlszeilenschnittstelle (Command Line Interface, CLI) verwenden. Begriffslisten werden von der Batch-Transkriptions-API nicht unterstützt.

Sie können Begriffslisten sowohl mit einer Standardsprache als auch mit Custom Speech verwenden. Es gibt einige Situationen, in denen das Trainieren eines benutzerdefinierten Modells mit Begriffen wahrscheinlich die beste Option darstellt, um die Genauigkeit zu verbessern. In den folgenden Fällen würden Sie beispielsweise Custom Speech verwenden:

  • Wenn Sie eine umfangreiche Liste von Begriffen benötigen. Eine Begriffsliste sollte maximal 500 Ausdrücke enthalten.
  • Wenn Sie eine Begriffsliste für derzeit nicht unterstützte Sprachen benötigen.

Testen in Speech Studio

Mit Speech Studio können Sie testen, inwiefern eine Begriffsliste Ihre Audioerkennung verbessert. Wenn Sie eine Begriffsliste mit Ihrer Anwendung in der Produktion implementieren möchten, verwenden Sie das Speech SDK oder die Speech-CLI.

Angenommen, der Speech-Dienst soll den folgenden Satz erkennen: „Hi Rehaan, this is Jessie from Contoso bank.“

Sie stellen möglicherweise fest, dass der Satz fälschlicherweise wie folgt erkannt wird: „Hi everyone, I'm Jesse from can't do so bank.“

In vorherigen Szenario sollten Sie Ihrer Begriffsliste „Rehaan“, „Jessie“ und „Contoso“ hinzufügen. Anschließend sollten die Namen korrekt erkannt werden.

Testen Sie nun Speech Studio, um zu sehen, wie eine Begriffsliste die Erkennungsgenauigkeit verbessern kann.

Hinweis

Sie werden möglicherweise aufgefordert, Ihr Azure-Abonnement und Ihre Speech-Ressource auszuwählen und dann die Abrechnung für Ihre Region zu bestätigen.

  1. Navigieren Sie zu Spracherkennung in Echtzeit in Speech Studio.
  2. Zum Testen der Spracherkennung muss eine Audiodatei hochgeladen oder Audio über ein Mikrofon aufgezeichnet werden. Wählen Sie beispielsweise Audiodaten alternativ dazu mit einem Mikrofon aufzeichnen aus, und sagen Sie „Hi Rehaan, I'm Jessie from Contoso bank.“ Wählen Sie dann die rote Schaltfläche aus, um die Aufzeichnung zu beenden.
  3. Das Transkriptionsergebnis sollte im Textfeld Testergebnisse angezeigt werden. Falls „Rehaan“, „Jessie“ oder „Contoso“ nicht korrekt erkannt wurde, können Sie die Begriffe im nächsten Schritt einer Begriffsliste hinzufügen.
  4. Wählen Sie Erweiterte Optionen anzeigen aus, und aktivieren Sie Begriffsliste.
  5. Geben Sie „Contoso;Jessie;Rehaan“ in das Textfeld der Begriffsliste ein. Mehrere Begriffe müssen jeweils durch ein Semikolon getrennt werden. Screenshot of a phrase list applied in Speech Studio.
  6. Verwenden Sie das Mikrofon, um die Erkennung erneut zu testen. Alternativ können Sie den Wiederholungspfeil neben Ihrer Audiodatei auswählen, um Ihre Audiodaten erneut zu verwenden. Die Begriffe „Rehaan“, „Jessie“ und „Contoso“ sollten erkannt werden.

Implementieren einer Begriffsliste

Mit dem Speech SDK können Sie Ausdrücke einzeln hinzufügen und dann die Spracherkennung ausführen.

var phraseList = PhraseListGrammar.FromRecognizer(recognizer);
phraseList.AddPhrase("Contoso");
phraseList.AddPhrase("Jessie");
phraseList.AddPhrase("Rehaan");

Mit dem Speech SDK können Sie Ausdrücke einzeln hinzufügen und dann die Spracherkennung ausführen.

auto phraseListGrammar = PhraseListGrammar::FromRecognizer(recognizer);
phraseListGrammar->AddPhrase("Contoso");
phraseListGrammar->AddPhrase("Jessie");
phraseListGrammar->AddPhrase("Rehaan");

Mit dem Speech SDK können Sie Ausdrücke einzeln hinzufügen und dann die Spracherkennung ausführen.

PhraseListGrammar phraseList = PhraseListGrammar.fromRecognizer(recognizer);
phraseList.addPhrase("Contoso");
phraseList.addPhrase("Jessie");
phraseList.addPhrase("Rehaan");

Mit dem Speech SDK können Sie Ausdrücke einzeln hinzufügen und dann die Spracherkennung ausführen.

const phraseList = sdk.PhraseListGrammar.fromRecognizer(recognizer);
phraseList.addPhrase("Contoso");
phraseList.addPhrase("Jessie");
phraseList.addPhrase("Rehaan");

Mit dem Speech SDK können Sie Ausdrücke einzeln hinzufügen und dann die Spracherkennung ausführen.

phrase_list_grammar = speechsdk.PhraseListGrammar.from_recognizer(reco)
phrase_list_grammar.addPhrase("Contoso")
phrase_list_grammar.addPhrase("Jessie")
phrase_list_grammar.addPhrase("Rehaan")

Mit der Speech CLI können Sie eine Begriffsliste inline oder mit einer Textdatei in den recognize-Befehl einschließen.

Testen Sie die Erkennung über ein Mikrofon oder auf der Grundlage einer Audiodatei.

spx recognize --microphone --phrases "Contoso;Jessie;Rehaan;"
spx recognize --file "your\path\to\audio.wav" --phrases "Contoso;Jessie;Rehaan;"

Sie können auch eine Begriffsliste in Form einer Textdatei hinzufügen, die jeweils einen Begriff pro Zeile enthält.

spx recognize --microphone --phrases @phrases.txt
spx recognize --file "your\path\to\audio.wav" --phrases @phrases.txt

Zulässige Zeichen beinhalten gebietsschemaspezifische Buchstaben und Ziffern, Leerzeichen und Sonderzeichen wie +, -, $, :, (, ), {, }, _, ., ?, @, \, ’, &, #, %, ^, *, `, <, >, ;, /. Andere Sonderzeichen werden intern aus dem Ausdruck entfernt.

Nächste Schritte

Informieren Sie sich über weitere Optionen zum Verbessern der Erkennungsgenauigkeit.