Sprechaktivitätserkennung

Der IBM Watson® Speech to Text-Service stellt zwei Parameter für die Erkennung von Sprachaktivitäten bereit, mit denen Sie steuern können, welche Audiodaten für die Spracherkennung verwendet werden. Diese Parameter geben die Sensitivität des Service für nichtsprachliche Ereignisse und für Nebengeräusche an. Beide Parameter sind unabhängig voneinander, d. h. sie können einzeln oder zusammen verwendet werden.

Die Sprechaktivitätserkennung wird bei den meisten Sprachmodellen unterstützt. Weitere Informationen finden Sie im Abschnitt Sprachmodellunterstützung.

Funktionsweise der Erkennung von Sprachaktivitäten

Die Spracherkennungsfunktion nutzt den eingehenden Audiostream und bestimmt, welche Teile des Streams zur Spracherkennung weitergeleitet werden sollen. Hintergrundsprache und Störgeräusche können zu Spracherkennungsfehlern führen, z. B. zu falschen Transkriptionen, zusätzlichen Wörtern oder fehlenden Wörtern in den eingegebenen Audiodaten. Die Funktion zur Erkennung von Sprechaktivitäten kann Sie dabei unterstützen, sicherzustellen, dass nur relevante Audiodaten für die Spracherkennung verarbeitet werden.

Sie können die Funktion verwenden, um die folgenden Aspekte der Spracherkennung zu steuern:

  • Nebengespräche unterdrücken Call-Center-Daten enthalten häufig Nebengespräche, also das Mithören von Gesprächen anderer Mitarbeiter. Sie können einen Lautstärkeschwellenwert festlegen, der den Dienst veranlasst, Hintergrundgespräche zu ignorieren, die leiser als der angegebene Pegel sind.
  • Hintergrundgeräusche unterdrücken Einige Audiodaten wie beispielsweise Sprachaufnahmen in einer Produktionshalle können einen hohen Anteil an Hintergrundgeräuschen enthalten. Sie können einen Schwellenwert festlegen, der das System veranlasst, Hintergrundgeräusche zu ignorieren, die leiser als der angegebene Pegel sind.
  • Nichtsprachliche Audioereignisse unterdrücken Hintergrundmusik und Tonereignisse wie beispielsweise die einem Kunden bei einem Anruf in der Warteschleife vorgespielte Audiodatei können zu fehlerhafter Spracherkennung führen. Sprechpausen und Schweigen können ebenfalls zu einer unnötigen Erkennung oder zu Fehlern bei der Transkription führen. Sie können einen Schwellenwert festlegen, der das System veranlasst, solche Ereignisse zu ignorieren, die leiser als der angegebene Pegel sind.

Die Sprechaktivitätserkennung ist standardmäßig so konfiguriert, dass eine optimale Leistung für den allgemeinen Fall eines jeden Modells bereitgestellt wird. Für bestimmte Fälle ist dieser Standard möglicherweise nicht optimal und kann zu einer langsamen Transkription oder zu Worteinfügungen und Wortauslassungen führen. Sie sind aufgefordert, mit unterschiedlichen Einstellungen zu experimentieren, um die besten Werte für Ihre Audiodaten zu ermitteln.

Sensitivität des Sprachdetektors

Mit dem Parameter speech_detector_sensitivity können Sie die Sensitivität für die Erkennung von Sprachaktivitäten anpassen. Verwenden Sie den Parameter, um Worteinfügungen aus Musik oder durch Husten oder andere nichtsprachliche Ereignisse zu unterdrücken. Der Service trifft eine Vorauswahl der Audiodaten, die er an die Spracherkennung übergibt, indem er Blöcke der Audioeingabe mit früheren Sprachmodellen und nichtsprachlichen Aktivitäten abgleicht.

Geben Sie einen Gleitkommawert zwischen 0,0 und 1,0 ein. Der Standardwert beträgt 0,5, was einen angemessenen Kompromiss für die Empfindlichkeitsstufe darstellt. Der Wert 0,0 unterdrückt alle Audiodaten. (Es wird keine Sprache transkribiert.) Der Wert 1,0 unterdrückt keine Audiodaten. (Die Sensitivität der Spracherkennung ist inaktiviert.) Die Werte steigen in einer monotonen Kurve der Empfindlichkeit versus Sprache an. Die Angabe einer oder zweier Dezimalstellen für die Genauigkeit (z. B. 0.55) ist in der Regel mehr als ausreichend.

Dieser Parameter kann sowohl die Qualität als auch die Latenzzeit der Spracherkennung beeinflussen.

  • Kleinere Werte können die Latenz verringern, da weniger Audio für die Spracherkennung übertragen wird. Die Einstellung eines zu kleinen Werts kann jedoch dazu führen, dass Audioabschnitte mit tatsächlicher Sprache verworfen werden, wodurch wichtige Inhalte aus dem Transkript verloren gehen.
  • Höhere Werte können die Latenzzeit erhöhen, da potenziell mehr Audiodaten zur Spracherkennung übergeben werden. Ein hoher Wert kann jedoch dazu führen, dass Audioabschnitte mit Nicht-Sprachereignissen durchgelassen werden, wodurch dem Transkript irreführende Inhalte hinzugefügt werden.

Beispiel für die Sensitivität des Sprachdetektors

Die folgende Beispielanforderung gibt den Wert 0,6 für den Parameter speech_detector_sensitivity an der synchronen HTTP-Schnittstelle an. Der Service erkennt etwas mehr potenzielle nichtsprachliche Ereignisse als bei der Standardeinstellung.

IBM Cloud

curl -X POST -u "apikey:{apikey}" \
--header "Content-Type: audio/flac" \
--data-binary @{path}audio-file1.flac \
"{url}/v1/recognize?speech_detector_sensitivity=0.6"

IBM Cloud Pak for Data IBM Software Hub

curl -X POST \
--header "Authorization: Bearer {token}" \
--header "Content-Type: audio/flac" \
--data-binary @{path}audio-file1.flac \
"{url}/v1/recognize?speech_detector_sensitivity=0.6"

Erkennung der Sprachaktivität (SAD)

Speech Activity Detection (SAD) wurde nun um eine neue, verbesserte Methode erweitert, die zusätzlich zur bestehenden Methode in der Speech To Text recognize API zur Verfügung steht. Die neue Methode erhöht die Genauigkeit und Leistung bei der Erkennung von Sprachgrenzen innerhalb des Audiostroms. Sie kann durch die Einstellung sad_module:2 verwendet werden.

Verbesserte Funktionen

Die SAD verfügt über die folgenden erweiterten Funktionen:

  • Bessere Leistung bei der Erkennung von Sprachbeginn und -ende.
  • Verbesserte Rauschunterdrückung.
  • Schnellere Reaktionszeit bei der Identifizierung von Segmenten mit Sprache.
  • Erhöhte Erkennungsgenauigkeit in lauten Umgebungen.

Erkennung von Sprachbeginn-Ereignissen

Durch die Verwendung der Sprachbeginn-Ereigniserkennung können Sie jetzt mit der recognize API eine frühzeitige Benachrichtigung erhalten. Es erkennt den Beginn von Sprache im eingehenden Audiostrom und sendet eine Benachrichtigung an den Benutzer. Wenn die speech_begin_event: true in der Anfrage gesetzt ist, wird ein neues Antwortobjekt gesendet, das den Beginn eines Sprachsegments anzeigt. Sie kann für Echtzeit-Transkriptionen oder sprachaktivitätsgesteuerte Anwendungen nützlich sein. Sie kann von Client-Anwendungen genutzt werden, um nachgelagerte Aktionen auszulösen, z. B. die Anzeige von speech started oder active und die Vorbereitung von Echtzeit-Verarbeitungspipelines.

Ein Sprachbeginn-Ereignis wird in zwei Szenarien erzeugt:

  1. Wenn eine Sprache zuerst in einem Audiostrom erkannt wird
  2. Nach jeder end_of_phrase_silence_time Periode, wenn eine neue Sprache erkannt wird

Die Empfindlichkeit der Erkennung kann mit dem Parameter speech_event_sensitivity (Standardwert 0.5 ) eingestellt werden, der ein Maß für die Intensität des Sprachsignals ist, das das Ereignis "Sprachbeginn" auslöst.

Höhere Werte bedeuten, dass sie empfindlicher auf Sprache reagiert. Werte, die näher an 0 liegen, machen die Erkennung weniger empfindlich gegenüber Hintergrundgeräuschen. Werte, die näher bei 1 liegen, erhöhen die Wahrscheinlichkeit, dass ein Sprachanfangsereignis erkannt wird, können aber in lauten Umgebungen zu Fehlalarmen führen.

Durch die Verwendung von speech_event_sensitivity können Sie die Empfindlichkeit des Sprachanfangsereignisses getrennt von der STT-Transkription steuern, die durch den Parameter speech_detector_sensitivity gesteuert wird. speech_event_sensitivity ignoriert Rauschen für speech_begin_event, was zu falschen Barge-in-Ereignissen führen kann.

Nebengeräuschunterdrückung

Mit dem Parameter background_audio_suppression können Nebengeräusche basierend auf der Lautstärke unterdrückt werden, um zu verhindern, dass Sie als Sprechereignisse transkribiert werden. Verwenden Sie diesen Parameter, um Nebengespräche oder Hintergrundgeräusche zu unterdrücken. Verwenden Sie diesen Parameter beispielsweise, um gleichmäßige, leise Hintergrundgeräusche, wie schwache Audiosignale, zu verwalten. Solche Geräusche können die Transkription stören und Inhalte produzieren, wo tatsächlich keine Sprache in den Audiodaten vorhanden ist.

Geben Sie einen Gleitkommawert im Bereich von 0,0 bis 1,0 an. Der Standardwert ist 0,0. Bei diesem Wert erfolgt keine Unterdrückung. (Die Unterdrückung von Hintergrundaudiosignale ist inaktiviert.) Der Wert 0,5 bietet eine angemessene Stufe der Geräuschunterdrückung für allgemeine Zwecke. Der Wert 1,0 unterdrückt alle Audiosignale. (Es wird keine Sprache transkribiert.) Die Werte steigen in einer monotonen Kurve an. Die Angabe einer oder zweier Dezimalstellen für die Genauigkeit (z. B. 0.55) ist in der Regel mehr als ausreichend.

Dieser Parameter kann sowohl die Qualität als auch die Latenzzeit der Spracherkennung beeinflussen. Da jedoch die Unterdrückung von Hintergrundgeräuschen standardmäßig inaktiviert ist, kann die Einstellung des Parameters auf einen Wert größer Null die Latenzzeit nur verbessern. Höhere Werte können aber graduell die Audiodaten reduzieren, die an die Spracherkennung übergeben werden, was zum Verlust von gültigem Inhalt in der Transkription führen kann.

Beispiel für Nebengeräuschunterdrückung

Die folgende Beispielanforderung gibt den Wert 0,5 für den Parameter background_audio_suppression an der synchronen HTTP-Schnittstelle an. Der Service unterdrückt auf einer angemessenen Stufe die Hintergrundaudiosignale.

IBM Cloud

curl -X POST -u "apikey:{apikey}" \
--header "Content-Type: audio/flac" \
--data-binary @{path}audio-file1.flac \
"{url}/v1/recognize?background_audio_suppression=0.5"

IBM Cloud Pak for Data IBM Software Hub

curl -X POST \
--header "Authorization: Bearer {token}" \
--header "Content-Type: audio/flac" \
--data-binary @{path}audio-file1.flac \
"{url}/v1/recognize?background_audio_suppression=0.5"

Sprachmodellunterstützung

Die Parameter speech_detector_sensitivity und background_audio_suppression werden für die Verwendung mit den folgenden Sprachmodellen unterstützt:

  • Bei großen Sprachmodellen und Modellen der nächsten Generation werden die Parameter von allen Modellen unterstützt.
  • Bei Modellen der vorherigen Generation werden die Parameter von den meisten Modellen unterstützt. Die folgenden Modelle unterstützen derzeit keine Spracherkennung. Die Parameter werden ignoriert, wenn Sie mit diesen Modellen verwendet werden.
    • Breitbandmodell für Arabisch (ar-MS_BroadbandModel)
    • Brasilianisches Portugiesisch, Breitbandmodell (pt-BR_BroadbandModel)
    • Chinesisch, Breitbandmodell (zh-CN_BroadbandModel)
    • Chinesisch, Schmalbandmodell (zh-CN_NarrowbandModel)
    • Deutsch, Schmalbandmodell (de-DE_BroadbandModel)