Bearbeiten

Share via


Implementieren von benutzerdefinierter Spracherkennung

Azure KI Services
Azure KI Speech
Azure Machine Learning

In diesem zweiteiligen Leitfaden werden verschiedene Ansätze zur effizienten Implementierung von hochwertigen sprachbasierten Anwendungen beschrieben. Der Schwerpunkt liegt auf dem Erweitern und Anpassen des Baselinemodells der Spracherkennungsfunktionalität, das vom KI-Speech-Dienst bereitgestellt wird.

In diesem Artikel werden der Problembereich und der Entscheidungsprozess für das Entwerfen Ihrer Lösung beschrieben. Der zweite Artikel Bereitstellen einer benutzerdefinierten Spracherkennungslösung enthält einen Anwendungsfall zum Anwenden dieser Anweisungen und empfohlenen Methoden.

Das vordefinierte und benutzerdefinierte KI-Spektrum

Das vordefinierte und benutzerdefinierte KI-Spektrum stellt mehrere Anpassungs- und Entwicklungsaufwandsebenen für KI-Modelle dar, die von einsatzbereiten vorgefertigten Modellen bis hin zu vollständig angepassten KI-Lösungen reichen.

Diagramm: Spektrum der Anpassungsebenen.

Auf der linken Seite des Spektrums ermöglicht Azure KI Services eine schnelle und reibungsarme Implementierung von KI-Funktionen in Anwendungen über vortrainierte Modelle. Microsoft erstellt umfangreiche Datasets, um diese Baselinemodelle zu trainieren und zu erstellen. Daher können Sie Baselinemodelle ohne zusätzliche Trainingsdaten verwenden. Sie werden über programmgesteuerte API-Aufrufe mit erweiterter Sicherheit genutzt.

Azure KI Services umfassen Folgendes:

  • Spracherkennung, Spracherkennung, Sprachsynthese, Sprachübersetzung und Sprecher*innenerkennung
  • Sprache. Entitätserkennung, Stimmungsanalyse, Fragen und Antworten, Conversational Language Understanding und Übersetzer
  • Vision. Maschinelles Sehen und Gesichtserkennungs-API
  • Entscheidung. Anomalieerkennung, Content Moderator, Personalisierung
  • OpenAI Service. Erweiterte Sprachmodelle

Wenn die vordefinierten Baselinemodelle nicht genau genug für Ihre Daten funktionieren, können Sie sie anpassen, indem Sie Trainingsdaten hinzufügen, die relativ zur Problemdomäne sind. Diese Anpassung erfordert den zusätzlichen Aufwand, geeignete Daten zu sammeln, um ein akzeptables Modell zu trainieren und auszuwerten. Azure KI Services, die anpassbar sind, umfassen Custom Vision, Benutzerdefinierter Translator, Benutzerdefinierte Spracherkennung und CLU. Das Erweitern vordefinierter Azure KI Services steht im Mittelpunkt des Spektrums. Der Großteil dieses Artikels befasst sich mit diesem zentralen Bereich.

Wenn sich Modelle und Trainingsdaten mit einem bestimmten Szenario befassen und ein proprietäres Trainingsdataset erfordern, stellt Azure Machine Learning alternativ benutzerdefinierte Lösungsressourcen, Tools, Compute und Workflow-Anleitungen bereit, um die Erstellung vollständig benutzerdefinierter Modelle zu unterstützen. Dieses Szenario wird auf der rechten Seite des Spektrums angezeigt. Diese Modelle werden von Grund auf neu erstellt. Die Entwicklung eines Modells mit Azure Machine Learning reicht in der Regel von der Verwendung visueller Tools wie AutoML bis zur programmgesteuerten Entwicklung des Modells mithilfe von Notebooks.

Azure Speech-Dienst

Der Azure-Spracherkennungsdienst vereint die Funktionen für Spracherkennung, Sprachsynthese, Sprachübersetzung, Sprach-Assistent und Sprecher*innenerkennung in einem einzigen Abonnement, das auf Azure KI Services basiert. Sie können eine Anwendung für Sprache aktivieren, indem Sie über benutzerfreundliche SDKs und APIs in den Speech-Dienst integrieren.

Der Azure-Spracherkennungsdienst analysiert Audio in Echtzeit oder asynchron, um das gesprochene Wort in Text zu transkribieren. Standardmäßig verwendet der Azure-Spracherkennungsdienst ein Universal Language Model als Grundlage, das die häufig verwendete gesprochene Sprache widerspiegelt. Dieses Baselinemodell wird mit Dialekten und Phonemen vortrainiert, die eine Vielzahl von gängigen Bereichen abbilden. Die Nutzung des Baselinemodells erfordert daher keine zusätzliche Konfiguration und funktioniert in den meisten Szenarien sehr gut.

Beachten Sie jedoch, dass das Baselinemodell möglicherweise nicht ausreicht, wenn das Audio Umgebungsgeräusche oder viel branchen- und domänenspezifischen Jargon enthält. In diesen Fällen ist das Erstellen eines benutzerdefinierten Sprachmodells sinnvoll. Dazu trainieren Sie mit zusätzlichen Daten, die der jeweiligen Domäne zugeordnet sind.

Je nach Größe der benutzerdefinierten Domäne kann es auch sinnvoll sein, mehrere Modelle zu trainieren und ein Modell für eine einzelne Anwendung aufzuteilen. So berichten Olympia-Kommentatoren über verschiedene Sportarten, jede mit ihrem eigenen Jargon. Da jede Sportart ein Vokabular hat, das sich deutlich von den anderen unterscheidet, erhöht das Erstellen eines benutzerdefinierten Modells speziell für eine Sportart die Genauigkeit, indem die Äußerungsdaten relativ zu dieser bestimmten Sportart begrenzt werden. Dadurch kann das Modell aus einem präzisen und gezielten Satz von Daten lernen.

Es gibt also drei Ansätze für die Implementierung von Azure-Spracherkennung:

  • Das Baselinemodell ist geeignet, wenn die Audiowiedergabe frei von Umgebungsgeräuschen ist und die transkribierte Sprache aus häufig gesprochener Sprache besteht.
  • Ein benutzerdefiniertes Modell erweitert das Baselinemodell um das domänenspezifische Vokabular aller Fachgebiete der benutzerdefinierten Domäne.
  • Mehrere benutzerdefinierte Modelle sind sinnvoll, wenn die benutzerdefinierte Domäne zahlreiche Bereiche mit jeweils einem bestimmten Vokabular umfasst.

Diagramm, das die drei Ansätze zur Implementierung von Azure-Spracherkennung zusammenfasst.

Mögliche Anwendungsfälle

Hier sind einige allgemeine Szenarien und Anwendungsfälle, in denen benutzerdefinierte Spracherkennung hilfreich ist:

  • Sprachtranskription für eine bestimmte Domäne, z. B. medizinische Transkription oder Callcentertranskription
  • Live-Transkription, wie in einer App oder zur Bereitstellung von Untertiteln für Live-Videostreaming

Microsoft SDKs und Open-Source-Tools

Wenn Sie mit Spracherkennung arbeiten, können die folgenden Ressourcen hilfreich sein:

Überlegungen zum Entwurf

In diesem Abschnitt werden einige Entwurfsüberlegungen zum Erstellen einer sprachbasierten Anwendung beschrieben.

Baselinemodell im Vergleich zu benutzerdefiniertem Modell

Azure Speech umfasst Baselinemodelle, die verschiedene Sprachen unterstützen. Diese Modelle sind mit einer Vielzahl von Vokabular und Domänen vortrainiert. Möglicherweise verfügen Sie jedoch über ein spezielles Vokabular, das anerkannt werden muss. In solchen Fällen könnten Baselinemodelle nicht ausreichen. Ob das Basismodell ausreicht, stellt man am besten fest, indem man die aus dem Baselinemodell erstellte Transkription analysiert und mit einem von Menschen erstellten Transkript für dasselbe Audio vergleicht. Der Bereitstellungsartikel in diesem Leitfaden beschreibt die Verwendung von Speech Studio, um die Transkripte zu vergleichen und einen WER-Score (Word Error Rate) zu erhalten. Wenn mehrere falsche Wortersetzungen in den Ergebnissen vorhanden sind, wird empfohlen, ein benutzerdefiniertes Modell zu trainieren, um diese Wörter zu erkennen.

Ein im Vergleich zu vielen benutzerdefinierten Modellen

Wenn Ihr Szenario von einem benutzerdefinierten Modell profitiert, müssen Sie als Nächstes ermitteln, wie viele Modelle erstellt werden sollen. Ein Modell ist in der Regel ausreichend, wenn die Äußerungen eng mit einem Bereich oder einer Domäne zusammenhängen. Mehrere Modelle sind jedoch am besten geeignet, wenn sich das Vokabular in den Domänenbereichen erheblich unterscheidet. In diesem Szenario benötigen Sie auch eine Vielzahl von Trainingsdaten.

Kehren wir nun zum Olympia-Beispiel zurück. Angenommen, Sie müssen die Transkription von Audiokommentaren für mehrere Sportarten einschließen, darunter Eishockey, Rennrodeln, Snowboarden, alpines Skifahren und mehr. Das Erstellen eines benutzerdefinierten Sprachmodells für jede Sportart verbessert die Genauigkeit, da jede Sportart eine eindeutige Terminologie aufweist. Jedes Modell muss jedoch über unterschiedliche Trainingsdaten verfügen. Es ist zu restriktiv und unausdehnbar, ein Modell für jeden Kommentator für jede Sportart zu erstellen. Ein praktischerer Ansatz besteht darin, ein einzelnes Modell für jede Sportart zu erstellen, aber Audio von einer Gruppe einzubeziehen, die Kommentatoren mit unterschiedlichen Akzenten, beider Geschlechter und unterschiedlichen Alters umfasst. Alle domänenspezifischen Ausdrücke im Zusammenhang mit dem Sport, die von den verschiedenen Kommentatoren erfasst werden, befinden sich im gleichen Modell.

Sie müssen auch berücksichtigen, welche Sprachen und Gebietsschemas unterstützt werden sollen. Es kann sinnvoll sein, diese Modelle nach Gebietsschema zu erstellen.

Anpassung von Akustik- und Sprachmodellen

Azure Speech bietet drei Optionen zum Training eines benutzerdefinierten Modells:

Die Anpassung des Sprachmodells ist die am häufigsten verwendete Anpassung. Ein Sprachmodell hilft beim Trainieren der gemeinsamen Verwendung bestimmter Wörter in einem bestimmten Kontext oder einer bestimmten Domäne. Das Erstellen eines Sprachmodells ist auch relativ einfach und schnell. Trainieren Sie zunächst das Modell, indem Sie eine Vielzahl von Äußerungen und Ausdrücken für die jeweilige Domäne bereitstellen. Wenn das Ziel beispielsweise darin besteht, eine Transkription für alpines Skifahren zu erstellen, sammeln Sie von Menschen erstellte Transkripte mehrerer Ski-Events. Bereinigen und kombinieren Sie sie, um eine Trainingsdatendatei mit etwa 50.000 Ausdrücken und Sätzen zu erstellen. Weitere Informationen zu den Datenanforderungen für das Training benutzerdefinierter Sprachmodelle finden Sie unter Training und Testdatasets.

Die Anpassung des Aussprachemodells ist auch eine der am häufigsten verwendeten Anpassungen. Ein Aussprachemodell hilft dem benutzerdefinierten Modell, ungewöhnliche Wörter ohne Standardaussprache zu erkennen. Beispielsweise sind einige der Begriffe im alpinen Skisport aus anderen Sprachen entlehnt, wie die Begriffe Schuss und Mogul. Diese Wörter sind hervorragende Kandidaten für das Training mit einem Aussprachedataset. Weitere Informationen zur Verbesserung der Erkennung mithilfe einer Aussprachedatei finden Sie unter Aussprachedaten für das Training. Ausführliche Informationen zum Erstellen eines benutzerdefinierten Modells mithilfe von Speech Studio finden Sie unter Was ist Custom Speech?.

Die akustische Modellanpassung bietet phonetisches Training für die Aussprache bestimmter Wörter, damit Azure Speech sie richtig erkennen kann. Um ein Akustikmodell zu erstellen, benötigen Sie Audiobeispiele und von Menschen generierte Transkripte. Wenn die Erkennungssprache mit allgemeinen Gebietsschemas wie en-US übereinstimmt, sollte die Verwendung des aktuellen Baselinemodells ausreichend sein. Baselinemodelle verfügen über ein vielfältiges Training, das die Stimmen von englischen Muttersprachlern und Nicht-Muttersprachlern verwendet, um eine große Menge an englischem Vokabular abzudecken. Daher bietet das Erstellen einer akustischen Modellanpassung auf dem en-US-Basismodell möglicherweise keine große Verbesserung. Das Training eines benutzerdefinierten Akustikmodells nimmt auch etwas mehr Zeit in Anspruch. Weitere Informationen zu den Datenanforderungen für benutzerdefiniertes Akustiktraining finden Sie unter Training und Testdatasets.

Das endgültige benutzerdefinierte Modell kann Datasets enthalten, die eine Kombination aller drei in diesem Abschnitt beschriebenen Anpassungen verwenden.

Training eines benutzerdefinierten Modells

Es gibt zwei Ansätze zum Trainieren eines benutzerdefinierten Modells:

  • Trainieren Sie mit zahlreichen Beispielen für Ausdrücken und Äußerungen aus der Domäne. Fügen Sie beispielsweise Transkripte von bereinigtem und normalisiertem Audio von alpinen Skiereignissen und von Menschen erstellte Transkripte früherer Ereignisse hinzu. Stellen Sie sicher, dass die Transkripte die im alpinen Skisport verwendeten Begriffe und mehrere Beispiele dafür enthalten, wie Kommentatoren sie aussprechen. Wenn Sie diesen Prozess ausführen, sollte das resultierende benutzerdefinierte Modell domänenspezifische Wörter und Ausdrücke erkennen können.

  • Trainieren sie mit bestimmten Daten, die sich auf Problembereiche konzentrieren. Dieser Ansatz funktioniert gut, wenn nicht viele Trainingsdaten vorhanden sind, z. B. wenn neue Slang-Begriffe bei alpinen Skiereignissen verwendet werden und in das Modell einbezogen werden müssen. Für diese Art von Training wird der folgende Ansatz verwendet:

    • Verwenden Sie Speech Studio, um eine Transkription zu generieren und mit von Menschen generierten Transkriptionen zu vergleichen.
    • Identifizieren Sie Problembereiche anhand von Mustern in den Aussagen der Kommentatoren. Ermitteln:
      • Die Kontexte, in denen das Problemwort oder die Äußerung angewendet wird.
      • Verschiedene Flexionen und Aussprachen des Wortes oder der Äußerung.
      • Alle eindeutigen Kommentator-spezifischen Anwendungen des Wortes oder der Äußerung.

Das Training eines benutzerdefinierten Modells mit bestimmten Daten kann zeitaufwändig sein. Zu den Schritten gehören die sorgfältige Analyse der Transkriptionslücken, das manuelle Hinzufügen von Trainingsausdrücken und das mehrmalige Wiederholen dieses Vorgangs. Letztendlich bietet dieser Ansatz jedoch ein gezieltes Training für die Problembereiche, die zuvor falsch transkribiert wurden. Und es ist möglich, dieses Modell iterativ zu erstellen, indem man selektiv kritische Bereiche trainiert und dann die Liste nach Wichtigkeit durchgeht. Ein weiterer Vorteil besteht darin, dass die Größe des Datensets auch nach vielen Iterationen beim Erstellen der Trainingsdaten einige hundert statt einige tausend Äußerungen umfasst.

Nach dem Erstellen Ihres Modells

Beachten Sie nach dem Erstellen Ihres Modells die folgenden Empfehlungen:

  • Beachten Sie den Unterschied zwischen lexikalischem Text und Anzeigetext. Speech Studio erstellt WER basierend auf lexikalischem Text. Der Benutzer sieht jedoch den Anzeigetext mit Interpunktion, Groß-/Kleinschreibung und numerischen Wörtern, die als Zahlen dargestellt werden. Im Folgenden finden Sie ein Beispiel für lexikalischen Text im Vergleich zu Anzeigetext.

    Lexikalischer Text: die Geschwindigkeit ist super und die Zeit ist noch besser fünfzig sieben oh sechs drei Sekunden für Deutsch

    Anzeigen von Text: Die Geschwindigkeit ist super. Und diese Zeit ist noch besser. 57063 Sekunden für Deutsch.

    Was erwartet (angedeutet) wird, ist: Die Geschwindigkeit ist super. Und diese Zeit ist noch besser. 57,063 Sekunden für Deutsch

    Das benutzerdefinierte Modell weist eine niedrige WER-Rate auf, was jedoch nicht bedeutet, dass die vom Benutzer wahrgenommene Fehlerrate (Fehler im Anzeigetext) niedrig ist. Dieses Problem tritt hauptsächlich bei alphanumerischen Eingaben auf, da verschiedene Anwendungen alternative Möglichkeiten zur Darstellung der Eingabe haben können. Sie sollten sich nicht nur auf die WER verlassen. Sie müssen auch das endgültige Erkennungsergebnis überprüfen.

    Wenn der Anzeigetext falsch erscheint, überprüfen Sie das detaillierte Erkennungsergebnis aus dem SDK, das lexikalischen Text enthält, in dem alles geschrieben ist. Wenn der lexikalische Text korrekt ist, ist die Erkennung fehlerfrei. Anschließend können Sie Ungenauigkeiten im Anzeigetext (das endgültige erkannte Ergebnis) beheben, indem Sie Nachbearbeitungsregeln hinzufügen.

  • Verwalten von Datasets, Modellen und deren Versionen. In Speech Studio gibt es beim Erstellen von Projekten, Datasets und Modellen nur zwei Felder: Name und Beschreibung. Wenn Sie Datasets und Modelle iterativ erstellen, müssen Sie einem guten Benennungs- und Versionsverwaltungsschema folgen, um den Inhalt eines Datasets leicht identifizieren zu können und welches Modell welche Version des Datasets widerspiegelt. Weitere Informationen zu dieser Empfehlung finden Sie unter Bereitstellen einer benutzerdefinierten Spracherkennungslösung.

Beitragende

Dieser Artikel wird von Microsoft gepflegt. Er wurde ursprünglich von folgenden Mitwirkenden geschrieben:

Hauptautor:

Andere Mitwirkende:

Melden Sie sich bei LinkedIn an, um nicht öffentliche LinkedIn-Profile anzuzeigen.

Nächste Schritte