Dialogflow V2 HTTP API detectIntent与音频返回无效响应(不完整的正文)

问题描述 投票:0回答:1

我面临下一个问题: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仅在languageCode中返回带有queryResult字段的主体。除了这一个,其他所有的东西都不见了。

问题仅在带有音频的请求中发生,所有操作对于文本输入均适用。

任何帮助/提示如何避免此问题?我将不胜感激。

google-cloud-platform dialogflow google-oauth2
1个回答
0
投票

我已经查看了文档[1],在我看来您正在使用的采样间隔不同于默认格式的采样间隔。

特别是,您可以看到“ Ogg容器(OggOpus)中的Opus编码音频帧。sampleRateHertz必须为16000。”

同时您指定了“ sampleRateHertz”:48000。

这可能是您意外结果的原因。如果采样率不同,则可能是信号识别错误。我建议您将输入中的音频重新采样到16000 Hz或更改编码格式,并可能选择FLAC(免费无损音频编解码器),因为是推荐的编码,因为它无损(因此识别不会受到损害)] >

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

© www.soinside.com 2019 - 2024. All rights reserved.