Я успешно отправил аудиофайл в формате RAW в Google Cloud Speech API, используя мой ключ API. Теперь я хотел бы записать свой голос с помощью браузера Chrome и отправить его, а не «audio.raw» (как на Google.com). Я предполагаю, что это должен быть скрипт HTML5.
Вот что я сделал до сих пор:
<?php
$data = json_encode(array(
'config' => array(
'encoding' => 'LINEAR16',
'sample_rate' => 16000,
'language_code' => 'en-US'
),
'audio' => array(
'content' => base64_encode(file_get_contents(dirname(__FILE__) . '/audio.raw'))
)
));
$ch = curl_init('https://speech.googleapis.com/v1beta1/speech:syncrecognize?key=XXX');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Content-Length: ' . strlen($data)));
$result = json_decode(curl_exec($ch));
$text = (isset($result->results[0]->alternatives[0]->transcript) ? $result->results[0]->alternatives[0]->transcript : '');
echo $text;
?>
Задача ещё не решена.
Других решений пока нет …