API Google Voice to Text обрабатывает слишком медленно в PHP - PullRequest
0 голосов
/ 11 октября 2018

Мы используем API голосового поиска Google для веб-приложения только в мобильных браузерах.

Моя проблема в том, что повторная обработка в Google очень медленная.

Я использую PHP и jQueryБиблиотека для рендеринга голосового поиска Google.Пользователь нажимает значок голосовой связи во внешнем интерфейсе, а затем произносит любое слово через микрофон, затем он соединяется с Google Voice API и преобразует голос в текст и выполняет поиск по сайту.Этот процесс занимает много времени с конца Google.

Дайте мне знать, если кто-то может предложить решение для ускорения этой обработки?

Это нормально или мы что-то делаем неправильно?

<?php
header('Access-Control-Allow-Origin: *');
/**
 * Created by PhpStorm.
 * User: evg
 * Date: 23.05.18
 * Time: 2:53
 */

# Includes the autoloader for libraries installed with composer
require __DIR__ . '/vendor/autoload.php';
# Imports the Google Cloud client library
use Google\Cloud\Speech\SpeechClient;



//logdata('---------'.date("Y-m-d H:i:s").'---------');

//logdata(var_export($_SERVER, true));


if (isset($_POST['sound'])) {

    $data = $_POST['sound'];

    try {
        $ret = request($data);
        echo json_encode(['error' => 0, 'data' => $ret ]);

    }
    catch (Exception $e) {
        logdata('error: '. $e->getMessage());
        echo json_encode(['error' => 1, 'message' => $e->getMessage()]);

    }
} else {
    logdata('error: '. 'Data missed');
    echo json_encode(['error' => 1, 'message' => 'Data missed']);

}


function logdata($data = 'no data was sent')
{
    $fname = 'requestlog.txt';
    file_put_contents($fname, $data."\r\n", FILE_APPEND);

}

function request($data)
{
    # Your Google Cloud Platform project ID
    $projectId = '';

    # Instantiates a client
    $speech = new SpeechClient([
        'projectId' => $projectId,
        'languageCode' => 'en-IN',
        'keyFilePath' => 'keyfile.json'
    ]);
    # The audio file's encoding and sample rate
    $options = ['encoding' => 'LINEAR16'];
    # Detects speech in the audio file
//    file_put_contents('123.wav', base64_decode($data));

    # Detects speech in the audio file
    $results = $speech->recognize(base64_decode($data), $options);
    //$e = var_export($results, true);

   // logdata('---results---: ');

  //  logdata($e);

    if ( ! empty($results)) { return $results[0]->alternatives()[0]['transcript']; }

    throw  new Exception('Unable to transcript');

}
processor.php

Displaying processor.php.
?>
...