编程语言
首页 > 编程语言> > php – Google cloud -speech api返回null结果

php – Google cloud -speech api返回null结果

作者:互联网

我使用Google云语音API.当我运行我的脚本时,会调用API和响应.操作信息返回数据,但结果为空.

这是我的代码(文件网址,文件名,密钥网址,项目名称和存储桶名称,我删除了真实数据):

function __construct(){


        $file_url='file path.mp3';
        $filename='file name.mp3';

        /** Create google client **/
        $client = new Google_Client();
        $key='path to google key';
        putenv($key);
        $client->useApplicationDefaultCredentials();


        /** Create storage **/
        $str_config = array(
                            'projectId' => 'project id'
                            );
        $storage = new StorageClient($str_config);

        $bucket_name='bucket name';
        $bucket=$storage->bucket($bucket_name);
        $object = $bucket->object($filename);


        /** Create Speech **/
        $config = array(
                'projectId' => 'project id',
                'languageCode' => 'en-US'
        );

        $options = array(
                "encoding"=>'LINEAR16',
                "languageCode"=>"en-US",
                'sampleRateHertz' => 16000
        )
        ;
        $speech = new Google\Cloud\Speech\SpeechClient($config);
        $operation = $speech->beginRecognizeOperation(
                $object,
                $options
                );


        $backoff = new ExponentialBackoff(100);
        $backoff->execute(function () use ($operation) {
            print('Waiting for operation to complete' . PHP_EOL);
            $operation->reload();
            if (!$operation->isComplete()) {
                throw new Exception('Job has not yet completed', 500);
            }
        });

            if ($operation->isComplete()) {
                if (empty($results = $operation->results())) {
                    $results = $operation->info();

                }
                var_dump($results, $operatimon->results());
            }


}

结果我接到电话:

Array
(
    [0] => Array
        (
            [name] => some name
            [metadata] => Array
                (




                    [@type]=> type.googleapis.com/google.cloud.speech.v1.LongRunningRecognizeMetadata
                    [progressPercent] => 100
                    [startTime] => 2017-07-16T19:15:58.768490Z
                    [lastUpdateTime] => 2017-07-16T19:15:59.999625Z
                )

            [done] => 1
            [response] => Array
                (
                    [@type]=> type.googleapis.com/google.cloud.speech.v1.LongRunningRecognizeResponse
                    [totalBilledTime] => 15s
                )

        )

    [1] => Array
        (
        )

)

我试过几种文件类型的白色几种编码,找不到合适的组合.或许还有另一个问题.请求帮助.

解决方法:

通过使用ffmpeg库将音频编码为flac whit mono通道解决了这个问题.

标签:php,encoding,google-cloud-speech
来源: https://codeday.me/bug/20190823/1699684.html