配置 MRCPv2 語音合成器服務

除了使用 IBM® Text to Speech,另一種替代作法是配置 Voice Gateway部署,以便透過 MRCPv2 連線來連接協力廠商的語音合成器服務。

配置 MRCPv2 朗讀器

  1. 複製或下載 GitHub 上的 sample.voice.gateway 儲存庫

  2. 在您的機器上,移至您所複製之 sample.voice.gateway 儲存庫所在的目錄,並開啟 mrcp/ 目錄,其中含有下列檔案:

    • docker-compose.yml - 具有 MRCPv2 之 Voice Gateway 的基本配置
    • tenantConfiguration.json - JSON 配置檔
  3. 開啟 unimrcpConfig/unimrcpclient.xml 配置檔。在 server-ip 欄位中,指定 MRCPv2 的 IP 位址。在 ext-ip 欄位中,指定 Media Relay 儲存器執行所在之機器的外部 IP 位址。

  4. docker-compose.yml 檔中,將 unimrcpclient.xml 檔裝載到 Media Relay 儲存器。

  5. tenantConfiguration.json 檔中,您可以指定將 MRCPv2 提供者用於語音合成,作法是將 tts 配置 providerType 參數設為 mrcpv2。您可以包含更多的配置欄位,以進一步自訂您的部署。

"tts": {
      "providerType": "mrcpv2"
  }

請謹記:如果您沒有指定 providerType,依預設,Voice Gateway 會使用 watson 參數。

範例:使用 MRCPv2 的單一提供者。

{
  "tts": {
    "providerType": "mrcpv2",
    "config": {
      "mrcpv2ProfileID": "MRCP #1",
      "speakHeaders": {
        "Voice-Age": "25",
        "Voice-Gender": "neutral"
      }
    },
    "cacheTimeToLive": 0
  }
}

範例:使用 MRCPv2 的多重提供者配置

在下列範例中,多重提供者的格式化 JSON 配置檔中顯示了一個提供者。不像單一提供者配置,多重提供者在根層次還有 providerSelectionPolicyproviders

{
 "tts": {
    "providerSelectionPolicy" : "sequential",
    "providers": [
        {
        "name" : "mrcp-synthesizer-primary",
          "providerType": "mrcpv2",
          "config": {
            "mrcpv2ProfileID": "MRCP #1",
            "speakHeaders": {
              "Speech-Language": "en-US",
              "Voice-gender": "neutral"
            },
          },
      }
    ]
  }
}

Text to Speech 配置參數

在您配置 MRCPv2 語音合成器時,Voice Gateway 最上層的 Text to Speech 配置會具有同等的值。

表 1. 可同時用於 MRCPv2 語音合成器服務和 Text to Speech 服務的參數。
參數 說明
providerType 字串 定義語音提供者的類型,可以是 mrcpv2watson。預設值為 watson
credentials 認證 如果您使用 Text to Speech,且混合使用數個提供者,就必須指定。若為 MRCPv2 合成器服務,則不需指定。
config WatsonTextToSpeechConfig/MrcpSynthesizerConfig 必要。針對指定的文字轉語音提供者,定義配置。
connectionTimeout 浮點 選用。Voice Gateway 在與 Text to Speech 或合成器服務建立 Socket 連線時,要等待的秒數。如果超過時間,Voice Gateway 會重新嘗試連接 Text to Speech 或合成器服務。如果仍無法連到服務,則通話失敗。1.0.0.5 版及更新版本。
requestTimeout 浮點 選用。Voice Gateway 在與 Text to Speech 或合成器服務建立語音辨識階段作業時,要等待的秒數。如果超過時間,Voice Gateway 會重新嘗試連接 Text to Speech 或合成器服務。如果仍無法連到服務,則通話失敗。1.0.0.5 版及更新版本。
jitterBufferDelay 從服務播放音訊之前的緩衝時間量(毫秒)。這項緩衝會計入多媒體串流音訊中的任何抖動。
cacheTimeToLive 為了改良播放回應時間,而從合成器服務快取回應的時間(小時)。如果啟用,會快取所有的回應(除非在 Watson Assistant 對話中排除它們)。
providers[] 字串 選用。語音提供者清單。

MRCPv2 合成器配置

mrcpv2 提供者配置專用的配置參數。

表 2. MRCPv2 語音合成器專用的配置參數。
參數 格式 說明
mrcpv2ProfileID 字串 MRCPv2 用戶端的設定檔 ID。原始 XML 配置文件可在 MRCPv2 用戶端配置手冊中找到。
speakHeaders JSON 物件 將作為辨識要求標頭的名稱/值配對集合。
speakBody JSON 物件 指定辨識要求的內容內文。
  • contentType:要求內文的內容類型。例如:text/uriapplication/ssml+xml
  • body:放在要求中傳送的內文。
.
來自 Watson Assistant 的文字話語會包裝在 xml 文件中。使用這個欄位時,會置換傳送給 MRCPv2 合成器的 SPEAK 要求內文。