Что означает эта ошибка из Google Cloud Speech-to-Text API gRPC? - PullRequest
1 голос
/ 21 июня 2019

Несколько месяцев назад все работало нормально.Мы используем gRPC службы преобразования речи в текст.Мы отправляем аудиофайл, закрываем речевой клиент и далее продолжаем операцию:

$speechClient->resumeOperation($this->operation, 'LongRunningRecognize');

^ Именно эта строка кода из документов вызывает эту ошибку:

Error occurred during parsing: Class google.cloud.speech.v1p1beta1.LongRunningRecognizeMetadata hasn't been added to descriptor pool

^ «пул дескрипторов» говорит мне, что это специфично для gRPC и буферов протокола.

Из composer.json:

"google/apiclient": "2.2.2",
"google/cloud": "0.72.0",
"google/protobuf": "3.6.0.1",

1 Ответ

2 голосов
/ 27 июня 2019

Спасибо за отчет здесь. Я был бы рад помочь вам встать на правильный путь.

Я проверил это на следующем примере и не смог воспроизвести проблему, о которой вы сообщили здесь:

Файл: composer.json

{
    "require": {
        "google/apiclient": "2.2.2",
        "google/cloud": "0.72.0",
        "google/protobuf": "3.6.0.1"
    }
}

Файл: test.php

require 'vendor/autoload.php';

use Google\Cloud\Speech\V1p1beta1\RecognitionAudio;
use Google\Cloud\Speech\V1p1beta1\RecognitionConfig_AudioEncoding;
use Google\Cloud\Speech\V1p1beta1\RecognitionConfig;
use Google\Cloud\Speech\V1p1beta1\SpeechClient;

$client = new SpeechClient();
$config = (new RecognitionConfig)
    ->setLanguageCode('en-US')
    ->setSampleRateHertz(44100)
    ->setEncoding(RecognitionConfig_AudioEncoding::FLAC);
$audio = (new RecognitionAudio)
    ->setUri('gs://gapic-toolkit/hello.flac');

$operation = $client->longRunningRecognize($config, $audio);

$metadata = $client->resumeOperation(
    $operation->getName(),
    'LongRunningRecognize'
)->getMetadata();

echo $metadata->getProgressPercent() . PHP_EOL;

Одним из ключевых отличий здесь могут быть версии расширения gRPC / protobuf, которые установлены в вашей целевой системе. Я использую v3.8.0 protobuf и v1.21.3 gRPC. Вы могли бы поделиться своим? (Обратите внимание, что расширение protobuf отличается от пакета "google / protobuf", который вы установили с помощью composer).

Если вы сможете поделиться со мной более широким фрагментом кода, это также может помочь.

Спасибо! Dave

...