Я делаю завиток для текста в тексте Google. У меня есть набор файлов .flac, которые я хочу отправить в службу Google Text to Speech, чтобы содержимое было записано в txt-файле.CURLOPT_POSTFIELDS массив содержимого папки
Это код, который я написал, чтобы сделать это, и это работает:
$url = 'https://www.google.com/speech-api/v2/recognize?output=json&lang=it-IT&key=xxx';
$cont2 = array(
'flac/1.flac',
'flac/2.flac',
'flac/3.flac'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: audio/x-flac; rate=44100'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
foreach ($cont2 as $fn) {
curl_setopt($ch, CURLOPT_POSTFIELDS, file_get_contents($fn));
$result = curl_exec($ch);
$info = curl_getinfo($ch);
//var_dump($info);
if ($result === false) {
die(curl_error());
}else{
echo "<br />".$fn." upload ok"."<br />";
file_put_contents("pum.txt", $result, FILE_APPEND);
}
}
Он работает как шарм, в «pum.txt» Я все содержимое файла писал, и это нормально.
Моя проблема заключается в том, что я не хочу добавлять к массиву «cont2» каждый раз новое имя файлов, к которым я должен перейти, что есть в «папке flac».
Чтобы избежать этого, я использую метод «скандир», удаляю «.». и ".." из массива и передать этот массив CURL_OPT_POSTFIELD, но вызов GTT возвращает пустой контент.
Это код, который я написал, чтобы сделать это (вместо $ CONT2 массив)
$directory = 'flac/';
$cont = array_diff(scandir($directory), array('..', '.', '.DS_Store'));
print_r этого так же, как $ CONT2 массив:
array(3) {
[3]=>
string(6) "1.flac"
[4]=>
string(6) "2.flac"
[5]=>
string(6) "3.flac"
}
Но Google TTS возвращают пустой результат ,
Кто-нибудь скажет мне, где я делаю ошибку?
С наилучшими пожеланиями
Брус
EDIT: использовать "$ прод = Глоб (". $ Каталог/* FLAC ");" решили проблему. Надежда помогает другим.
Спасибо большое! Это решило мою проблему. Я понимаю свою ошибку. – Bebbolin