Text to Speech-Service dynamisch konfigurieren

Mit der IBM® Voice Gateway-API können Sie den Text to Speech-Service während eines Anrufs dynamisch konfigurieren. Definieren Sie zum Ändern der Konfiguration die Aktion vgwActSetTTSConfig über den "output" einer Knotenantwort in Ihrer Watson Assistant-Dialogbaumstruktur. Weitere Informationen zur Verwendung der API finden Sie unter Aktionstags und Statusvariablen definieren.

Das folgende Beispiel zeigt eine Konfiguration, die Sie der Knotenantwort in Ihrer Watson Assistant-Dialogbaumstruktur hinzufügen können. Die Einstellungen werden transparent als JSON-Eigenschaften an den Text to Speech-Service übergeben.

{
  "output": {
    "vgwAction": {
      "command": "vgwActSetTTSConfig",
      "parameters": {
              "credentials": {
              "url": "https://stream.watsonplatform.net/text-to-speech/api",
                "username": "9h7f54cb-5epb-80d6-45c3-da41d2bf7a71",
                "password": "asxNzDLpIJ6F"
              },
            "config": {
                "x-watson-learning-opt-out": true,
                "voice": "es-ES_LauraVoice"
            },
              "jitterBufferDelay": 200,
              "connectionTimeout": 30,
              "requestTimeout": 10,
              "cacheTimeToLive": 336
          }
    }
  }
}
Tabelle 1. JSON-Eigenschaften für den Text to Speech-Service
JSON-Eigenschaft Beschreibung
credentials Berechtigungsnachweise für den Watson-Service "Text to Speech". Wenn keine Berechtigungsnachweise definiert wurden, werden die Standardberechtigungsnachweise aus der Media Relay-Konfiguration verwendet. Sie können Anruflatenzzeiten auch verringern, wenn Sie den Berechtigungsnachweis tokenAuthEnabled konfigurieren, um die Tokenauthentifizierung für Version 1.0.0.5a und höher zu aktivieren. Weitere Informationen finden Sie unter Tokenauthentifizierung mit Benutzernamen und Kennwort für Watson-Services aktivieren.
config Parameter für den Watson-Service "Text to Speech". Weitere Informationen finden Sie in der WebSockets-API-Referenz für den Watson-Service "Text to Speech".
jitterBufferDelay Die Zeit in Millisekunden, in der Audiodaten gepuffert werden, bevor die Audiodaten aus dem Text to Speech-Service wiedergegeben werden. Diese Pufferung ist der Grund für etwaige Schwankungen beim Audiostreaming. Wenn kein Wert definiert wurde, wird der Wert für WATSON_TTS_JITTER_BUFFER_DELAY in der Media Relay-Konfiguration verwendet.
connectionTimeout Zeit in Sekunden, die Voice Gateway darauf wartet, bis eine Socketverbindung mit dem Watson Text to Speech-Service hergestellt ist. Wenn die Zeit überschritten wird, versucht Voice Gateway erneut, eine Verbindung zum Watson Text to Speech-Service herzustellen. Wenn der Service daraufhin immer noch nicht erreicht werden kann, schlägt der Anruf fehl. Gilt ab Version 1.0.0.5.
requestTimeout Zeit in Sekunden, die Voice Gateway darauf wartet, bis eine Sprachsynthesesitzung mit dem Watson Text to Speech-Service hergestellt ist. Wenn die Zeit überschritten wird, versucht Voice Gateway erneut, eine Verbindung zum Watson Text to Speech-Service herzustellen. Wenn der Service daraufhin immer noch nicht erreicht werden kann, schlägt der Anruf fehl. Gilt ab Version 1.0.0.5.
cacheTimeToLive Die Zeit (Angabe in Stunden), in der Antworten vom Text to Speech-Service in den Cache gestellt werden, um die Antwortzeit für die Audiowiedergabe zu verbessern. Wenn diese Option aktiviert ist, werden alle Text to Speech-Antworten in den Cache gestellt, sofern sie nicht im Watson Assistant-Dialog ausgeschlossen wurden. Wenn kein Wert definiert wurde, wird der Wert für TTS_CACHE_TIME_TO_LIVE in der Media Relay-Konfiguration verwendet.
updateMethod Optional. Gibt die Aktualisierungsstrategie an, die beim Festlegen der Sprachkonfiguration ausgewählt werden soll. Gültige Werte:
  • replace
  • replaceOnce
  • merge
  • mergeOnce
Weitere Informationen finden Sie unter updateMethod verwenden. Gilt ab Version 1.0.0.7.

Anmerkung: Die folgenden Parameter aus dem Text to Speech-Service können nicht geändert werden, weil sie feste von Media Relay verwendete Werte haben.

Beispiel: Wert für den Sprecher für "Text to Speech" (en-US_LisaVoice) festlegen

In diesem Beispiel wird der Wert für den Sprecher auf en-US_LisaVoice gesetzt. Da die Eigenschaft credentials nicht definiert ist, verwendet Media Relay die in der Media Relay-Konfiguration definierten Berechtigungsnachweise (WATSON_TTS_URL, WATSON_TTS_USERNAME und WATSON_TTS_PASSWORD).

{
  "output": {
    "vgwAction": {
      "command": "vgwActSetTTSConfig",
      "parameters": {
              "config": {
                "voice": "en-US_LisaVoice"
            }
        }
    }
  }
}

Eigenschaft updateMethod verwenden

Sie können die Eigenschaft updateMethod in der dynamischen Konfiguration verwenden, um zu definieren, wie Änderungen an der Konfiguration vorgenommen werden, ob die Konfiguration ersetzt oder neue Konfigurationseigenschaften zusammengeführt werden, und ob diese Änderungen für die Dauer des Anrufs oder für einen Conversation-Turnus gelten sollen.

Tabelle 2. Verfügbare Optionen zur Aktualisierung von Eigenschaften bei Verwendung der Eigenschaft 'updateMethod'.
JSON-Eigenschaft Beschreibung
replace Ersetzt die Konfiguration für die Dauer des Anrufs.
replaceOnce Ersetzt die Konfiguration einmal, sodass die Konfiguration nur für den folgenden Conversation-Turnus verwendet wird. Anschließend wird die Konfiguration wieder auf die vorherige Konfiguration zurückgesetzt.
merge Führt die Konfiguration mit der vorhandenen Konfiguration für die Dauer des Anrufs zusammen.
mergeOnce Führt die Konfiguration für einen Conversation-Turnus zusammen. Anschließend wird die vorherige Konfiguration wieder verwendet.

Felder, die sich nicht auf Stammverzeichnisebene befinden, aktualisieren

Beachten Sie, dass bei der dynamischen Konfiguration über Watson Assistant nur die Felder auf Stammverzeichnisebene, wie z. B. config oder bargeInResume aktualisiert werden. Wenn sie bei der Aktion übergangen werden, bleiben die ursprünglichen Konfigurationseinstellungen erhalten. Sie können die verschiedenen updateMethod-Eigenschaften für merge und mergeOnce verwenden, um die config-Felder mit der vorhandenen Konfiguration zusammenzuführen.

Veraltet: Text to Speech-Service mithilfe von definierten Statusvariablen konfigurieren

Ab Version 1.0.0.2 wird die Konfiguration von Watson-Speech-Services mithilfe von definierten Statusvariablen nicht mehr unterstützt. Stattdessen werden die in den vorherigen Abschnitten beschriebenen Aktionstags verwendet.

Wichtig: Obwohl die Statusvariablen weiterhin funktionieren, können Sie diese veralteten Statusvariablen und die Aktionstags nicht innerhalb eines Knotens definieren. Ihr Watson Assistant-Dialog kann Aktionstags sowie veraltete Statusvariablen enthalten, wohingegen die JSON-Definition für jeden Knoten entweder nur Aktionstags oder nur Statusvariablen enthalten kann.

{
    "context": {
        "vgwTTSConfigSettings":{
            "credentials": {
              "url": "https://stream.watsonplatform.net/text-to-speech/api",
              "username": "9h7f54cb-5epb-80d6-45c3-da41d2bf7a71",
              "password": "asxNzDLpIJ6F"
            },
            "config": {
                "x-watson-learning-opt-out": true,
                "voice": "es-ES_LauraVoice"
            },
              "jitterBufferDelay": 200,
              "cacheTimeToLive": 336
          }
    }
}
Tabelle 2. JSON-Eigenschaften für den Text to Speech-Service
JSON-Eigenschaft Beschreibung
credentials Berechtigungsnachweise für den Watson-Service "Text to Speech". Wenn keine Berechtigungsnachweise definiert wurden, werden die Standardberechtigungsnachweise aus der Media Relay-Konfiguration verwendet.
config Parameter für den Watson-Service "Text to Speech". Weitere Informationen finden Sie in der WebSockets-API-Referenz für den Watson-Service "Text to Speech".
jitterBufferDelay Die Zeit in Millisekunden, in der Audiodaten gepuffert werden, bevor die Audiodaten aus dem Text to Speech-Service wiedergegeben werden. Diese Pufferung ist der Grund für etwaige Schwankungen beim Audiostreaming. Wenn kein Wert definiert wurde, wird der Wert für WATSON_TTS_JITTER_BUFFER_DELAY in der Media Relay-Konfiguration verwendet.
cacheTimeToLive Die Zeit (Angabe in Stunden), in der Antworten vom Text to Speech-Service in den Cache gestellt werden, um die Antwortzeit für die Audiowiedergabe zu verbessern. Wenn diese Option aktiviert ist, werden alle Text to Speech-Antworten in den Cache gestellt, sofern sie nicht im Watson Assistant-Dialog ausgeschlossen wurden. Wenn kein Wert definiert wurde, wird der Wert für TTS_CACHE_TIME_TO_LIVE in der Media Relay-Konfiguration verwendet. Gilt ab Version 1.0.0.1.