簡體   English   中英

帶有音頻的 Dialogflow V2 HTTP API detectIntent 返回無效響應(不完整的正文)

[英]Dialogflow V2 HTTP API detectIntent with audio returns invalid response (incomplete body)

我面臨下一個問題:一些 Dialogflow V2 HTTP API 請求響應體不完整。 沒有發現規律,它可能發生在具有不同意圖和會話信息的隨機請求期間。

例子:

POST https://dialogflow.googleapis.com/v2/projects/{project-name}/agent/sessions/{session-uuid}:detectIntent

> Content-Type: application/json
> Authorization: Bearer {token}

REQUEST BODY:
{
    "queryInput": {
        "audioConfig": {
            "audioEncoding": "AUDIO_ENCODING_OGG_OPUS",
            "sampleRateHertz": 48000,
            "languageCode": "en-US",
            "model": "command_and_search"
        }
    },
    "inputAudio": "{base64-encoded-file}"
}

RESPONSE:
< HTTP/1.1 200 OK
< Content-Type: application/json; charset=UTF-8

RESPONSE BODY:
{
  "queryResult": {
    "languageCode": "en-US"
  }
}

... 就這樣。 API 僅在queryResult返回帶有languageCode字段的正文。 除了這個,其他都不見了。

問題僅在有音頻的請求期間發生,對於文本輸入一切正常。

任何幫助/提示如何避免這個問題? 我將不勝感激任何幫助。

我已經查看了文檔 [1],在我看來,您使用的采樣間隔與默認格式的采樣間隔不同。

特別是,如您所見“Ogg 容器 (OggOpus) 中的 Opus 編碼音頻幀。sampleRateHertz 必須為 16000。”

同時,您指定了“sampleRateHertz”:48000。

這可能是您出現意外結果的原因。 如果采樣率不同,那么您可能會錯誤地識別信號。 我建議您將輸入中的音頻重新采樣為 16000 Hz 或更改編碼格式,也許選擇 FLAC(免費無損音頻編解碼器),因為這是推薦的編碼,因為它是無損的(因此識別不會受到影響)

[1] https://cloud.google.com/dialogflow/docs/reference/rest/v2beta1/QueryInput#audioencoding

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM