Мы используем 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.
?>