Я пытаюсь реализовать методы, обсуждаемые в этом вопрос написать функцию php, которая загружает аудиофайл для данной строки, но я не могу обойти защиту Google от злоупотреблений. Результаты нерегулярны, иногда я получаю аудиофайл, а иногда это пустой mp3 размером 2 КБ из-за ответа «Наши системы обнаружили необычный трафик из вашей компьютерной сети». Вот то, что я получил до сих пор (обратите внимание, что $ file имеет местоположение в моем коде, но для целей этого я его опустил):
function downloadMP3( $url, $file ){
$curl = curl_init();
curl_setopt( $curl, CURLOPT_URL, $url );
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $curl, CURLOPT_REFERER, 'http://translate.google.com/' );
curl_setopt( $curl, CURLOPT_USERAGENT, 'stagefright/1.2 (Linux;Android 5.0)' );
$output = curl_exec( $curl );
curl_close( $curl );
if( $output === false ) {
return false;
}
$fp = fopen( $file, 'wb' );
fwrite( $fp, $output );
fclose( $fp );
return true;
}
$word = "Test";
$file = md5( $word ) . '.mp3';
if ( !file_exists( $file ) ) {
$url = 'http://translate.google.com/translate_tts?q=' . $word . '&tl=en&client=t';
downloadMP3( $url, $file );
}
Попробуйте другой сервис, я только что нашел тот, который работает даже лучше, чем Google Translate; Google Text-To-Speech API
Других решений пока нет …