Konvertieren von Sprache in Text mit der SpeechRecognition-API

Die SpeechRecognition-API ist eine standardmäßige Web-API, mit der Sprache aus einer Audioquelle wie einer Mediendatei oder einem Gerätemikrofon direkt aus dem JavaScript-Code einer Website oder Browsererweiterung in Text konvertiert werden kann. Dieser Artikel konzentriert sich auf die Verwendung der Spracherkennungs-API mit dem gerätebasierten (oder lokalen) Spracherkennungsmodell, das in Microsoft Edge integriert ist.

Weitere Informationen zur API finden Sie unter Web Speech-API bei MDN.

Detaillierter Inhalt:

Verfügbarkeit des lokalen Spracherkennungsmodells

Das lokale Spracherkennungsmodell ist in Microsoft Edge, Canary oder Dev (Version 150.0.4076 oder höher) verfügbar. Weitere Informationen finden Sie unter Microsoft Edge-Insider werden.

Vorteile des lokalen Spracherkennungsmodells

Wenn Sie die SpeechRecognition-API mit dem lokalen Modell in Microsoft Edge verwenden, erfolgt die Spracherkennung auf demselben Gerät, auf dem die Sprache erfasst wird. Dieser Ansatz hat im Vergleich zu cloudbasierten Lösungen die folgenden Vorteile:

  • Reduzierte Kosten: Für die Nutzung eines Cloudanerkennungsdiensts fallen keine Kosten an.

  • Netzwerkunabhängigkeit: Über den anfänglichen Modelldownload hinaus gibt es bei der Verwendung dieser API zum Konvertieren von Sprache keine Netzwerklatenz, und die API kann auch verwendet werden, wenn das Gerät offline ist.

  • Verbesserter Datenschutz: Die Spracheingabe in das Modell verlässt nie das Gerät und wird nicht zum Trainieren von KI-Modellen gesammelt.

Modellverfügbarkeit

Ein erster Download des Modells ist erforderlich, wenn eine Website zum ersten Mal das lokale Spracherkennungsmodell mit der SpeechRecognition-API verwendet.

Sie können den Modelldownload mithilfe der Zusage überwachen, die von der SpeechRecognition-API-Methode install() zurückgegeben wird. Siehe unten, um zu überprüfen, ob das lokale Modell bereits installiert ist.

Aktivieren der lokalen Spracherkennung in Microsoft Edge

Um das lokale Spracherkennungsmodell mit der SpeechRecognition-API zu verwenden, müssen Sie das Feature in Microsoft Edge aktivieren Canary oder Dev. So aktivieren Sie die Spracherkennung über das On-Device-Modell:

  1. Stellen Sie sicher, dass Sie Microsoft Edge Canary oder Dev (Version 150.0.4076 oder neuer) verwenden. Weitere Informationen finden Sie unter Microsoft Edge-Insider werden.

  2. Öffnen Sie in Microsoft Edge Canary oder Dev eine neue Registerkarte oder ein neues Fenster und wechseln Sie zu edge://flags.

  3. Geben Sie im Suchfeld oben auf der Seite Spracherkennung mit Gerätemodell ein.

  4. Wählen Sie in der Dropdownliste Spracherkennung mit dem Modell auf dem Gerätdie Option Aktiviert aus, und klicken Sie dann unten rechts auf die Schaltfläche Neustart :

    Seite

Sehen Sie sich ein funktionierendes Beispiel an

So sehen Sie die SpeechRecognition-API in Aktion und sehen den Democode:

  1. Aktivieren Sie die lokale Spracherkennung in Microsoft Edge, wie oben beschrieben.

  2. Öffnen Sie in Microsoft Edge Canary oder Dev eine Registerkarte oder ein Fenster, und wechseln Sie zum SpeechRecognition-API-Playground.

  3. Überprüfen Sie im Informationsbanner oben den Status: Zunächst wird SpeechRecognition API ready angezeigt. Klicken Sie auf "Start", um zu beginnen.

  4. Wählen Sie in der Dropdownliste "Eingabesprache " die Sprache aus, die Sie für die Spracherkennung verwenden möchten.

  5. Wählen Sie in der Dropdownliste "Audioquelle " eine Audioquelle für die Spracherkennung aus:

    • Wählen Sie Mikrofon aus, um das Mikrofon Ihres Geräts als Audioquelle zu verwenden.
    • Wählen Sie "Datei" aus, um eine Audio- oder Videodatei von Ihrem Gerät als Audioquelle zu verwenden.
  6. Wenn Sie Datei als Audioquelle ausgewählt haben, wird ein Abschnitt Mediendatei angezeigt. Klicken Sie auf die Schaltfläche "Datei auswählen ", und wählen Sie dann eine Audio- oder Videodatei von Ihrem Gerät aus.

  7. Klicken Sie auf die Schaltfläche Start.

    Wenn Sie das lokale Spracherkennungsmodell für die ausgewählte Sprache noch nicht heruntergeladen haben, startet der Download und das Informationsbanner enthält die Meldung Installing on-device model for en-US...:

    Installation des Spracherkennungsmodells auf dem Gerät

    Nachdem das Modell installiert wurde, wird die Texttranskription auf der Seite angezeigt:

    Konvertieren von Sprache in Text

  8. Klicken Sie auf die Schaltfläche " Stopp ", um die Umwandlung von Sprache in Text jederzeit zu beenden.

    Die Transkription kann auch nach einer längeren Zeit der Stille im Eingangsaudio automatisch beendet werden.

Siehe auch:

Verwenden der SpeechRecognition-API mit lokaler Erkennung in Ihrer Website

In den folgenden Abschnitten wird beschrieben, wie Sie die SpeechRecognition-API mit lokaler Spracherkennung im Code Ihrer Website verwenden. Weitere Informationen zur API selbst finden Sie unter Web Speech-API auf MDN.

Überprüfen Sie, ob die API unterstützt wird, und instanziieren Sie ein SpeechRecognition-Objekt.

Um sicherzustellen, dass die SpeechRecognition-API im Browser unterstützt wird, testen Sie, ob das SpeechRecognition Objekt verfügbar ist:

if (!window.SpeechRecognition) {
  console.log("The SpeechRecognition API is not available in this browser.");
} else {
  console.log("The SpeechRecognition API is available.");
}

Wenn die API unterstützt wird, erstellen Sie eine neue SpeechRecognition Instance, um mit der Verwendung der API zu beginnen:

const recognition = new SpeechRecognition();

Siehe auch:

Wählen Sie eine Eingabesprache aus, und aktivieren Sie die lokale Anerkennung

Um die Spracherkennung nach einem lokalen Modell zu konfigurieren, geben Sie eine Eingabesprache an, und legen Sie die processLocally Option fest:

recognition.lang = "en-US";
recognition.processLocally = true;

Die folgenden Eingabesprachen werden für die lokale Spracherkennung unterstützt:

  • Englisch (En-US)
  • Deutsch (de-DE)
  • Italienisch (it-IT)
  • Portugiesisch (pt-PT)
  • Spanisch (es-ES)
  • Koreanisch (ko-KR)

Die Sprachunterstützung wird voraussichtlich in zukünftigen Versionen erweitert.

Legen Sie außerdem die continuousinterimResults und-Optionen fest, um true lange Audiositzungen ohne Unterbrechung zu transkribieren und Zwischenergebnisse zu erhalten:

recognition.continuous = true;
recognition.interimResults = true;

Siehe auch:

Überprüfen, ob das lokale Modell bereits installiert ist

Bevor Sie mit der SpeechRecognition.available() Erkennung beginnen, prüfen Sie mithilfe der Methode, ob das lokale Modell für die ausgewählte Sprache verfügbar ist.

Wenn das Modell noch nicht installiert ist, lösen Sie die Installation mithilfe der Methode aus, und warten Sie, bis das Modell abgeschlossen ist, bevor Sie mit der SpeechRecognition.install() Erkennung beginnen:

async function ensureModelReady(lang) {
  // Check if the model is already available.
  const availability = await SpeechRecognition.available({
    langs: [lang],
    processLocally: true,
  });

  // If the model is already available, proceed to recognition.
  if (availability === "available") {
    return true;
  }

  // If the model is not available but can be downloaded,
  // trigger the installation and wait for it to complete
  // before proceeding to recognition.
  if (availability === "downloadable" || availability === "downloading") {
    const installed = await SpeechRecognition.install({
      langs: [lang],
      processLocally: true,
    });

    if (!installed) {
      throw new Error(`Failed to install local model for ${lang}.`);
    }

    return true;
  }

   return false;
}

Die von zurückgegebene SpeechRecognition.install() Zusage wird aufgelöst, wenn die Installation erfolgreich ist oder fehlschlägt.

Siehe auch:

Spracherkennung starten

Nachdem Sie sichergestellt haben, dass sowohl die API als auch das Modell bereit sind, verwenden Sie die Methode, um mit der start() Erkennung zu beginnen.

Wenn die Methode ohne Parameter aufgerufen wird, erkennt sie start() Audio vom Mikrofon des Benutzers:

recognition.start();

Um Audio aus einer Mediendatei statt aus dem Mikrofon des Benutzers zu erkennen, übergeben Sie eine MediaStreamTrack instance als Argument an die start() Methode. Sie können beispielsweise eine MediaStreamTrack Instance erstellen, indem Sie eine MediaStreamDestinationNode Instance mithilfe der WebAudio-API erstellen:

const audioContext = new AudioContext();
const mediaStreamDestination = audioContext.createMediaStreamDestination();
recognition.start(mediaStreamDestination.stream.getAudioTracks()[0]);

Siehe auch:

Erkennung explizit und medienseitig beenden

Verwenden Sie die stop() folgende Methode, um die Erkennung zu beenden:

recognition.stop();

Sie können die Erkennung auch beenden, wenn die Medieneingabe endet, indem Sie den onended Ereignishandler des Medienelements verwenden, das Sie als Eingabe verwenden. Wenn Sie beispielsweise ein HTMLAudioElement oder HTMLVideoElement als Audioquelle verwenden, können Sie den Ereignishandler wie folgt einrichten:

mediaElement.onended = () => recognition.stop();

Siehe auch:

Feedback senden

Wir interessieren uns für Ihr Feedback zu:

  • Das lokale Spracherkennungsmodell.
  • Die Leistung des lokalen Spracherkennungsmodells.
  • Alle anderen Verbesserungen, die Sie für Ihre Anwendungsfälle sehen möchten.

Bitte senden Sie uns Feedback, indem Sie einen Kommentar zum Problem mit dem SpeechRecognition-API-Feedback hinzufügen.

Siehe auch

Microsoft:

MDN:

GitHub: