HTTP-интерфейс Dialogflow V2 DeteIntent со звуком возвращает неверный ответ (неполное тело) - PullRequest
0 голосов
/ 19 марта 2020

Я столкнулся со следующей проблемой: некоторые запросы HTTP API Dialogflow V2 отвечают с неполным телом. Регулярность не обнаружена, это может произойти во время случайных запросов с разными намерениями и информацией о сеансе.

Пример:

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. Все отсутствуют, кроме этого.

Проблема возникает только во время запросов со звуком, все отлично работает для ввода текста.

Любая помощь / советы, как избежать этой проблемы? Буду благодарен за любую помощь.

1 Ответ

0 голосов
/ 20 марта 2020

Я ознакомился с документацией [1], и мне кажется, что вы используете интервал дискретизации, отличный от интервала дискретизации в формате по умолчанию.

В частности, как вы можете видеть, «Аудиокадры, закодированные Opus» в контейнере Ogg (OggOpus). sampleRateHertz должен быть 16000. "

Между тем вы указали" sampleRateHertz ": 48000.

Это может быть причиной ваших неожиданных результатов. Если частота дискретизации различна, возможно, вы неправильно определили сигнал. Я бы посоветовал вам повторно сэмплировать звук на входе до 16000 Гц или изменить формат кодирования и, возможно, выбрать FLA C (свободный код без потерь c), потому что - это рекомендуемое кодирование, потому что оно без потерь ( следовательно, признание не ставится под угрозу)

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

...