преобразование текста в речь — займет всего несколько секунд файла WAV (возвращенного WATSON IBM) в переполнении стека

В настоящее время я использую Watson для преобразования текста в речь IBM с использованием PHP. Это работает хорошо, но я обнаружил, что продолжительность звука составляет 27 часов (в то время как Уотсон говорит только несколько секунд).

Когда я открыл .wav, я обнаружил, что он автоматически останавливается, когда голос останавливается (таким образом, через несколько секунд). После этого я предполагаю, что аудиофайл должен иметь скрытую характеристику, что-то вроде «время окончания».

Я пропустил некоторые параметры, чтобы указать максимальную длительность звука при вызове API? Или я мог бы перезаписать время окончания на «время окончания» в php или, по крайней мере, быть способным получить это «время окончания».

    $username = '****************';
$password = '****************';
$headers = array( 'Content-Type: application/json',
'Accept: audio/wav');

$data_json = json_decode($input['text'], true);
$postdata = array(
'accept'    => 'audio/wav',
'text'      => $data_json['text']
);
$data_json = json_encode($postdata);

$curlPost = curl_init();
curl_setopt($curlPost, CURLOPT_POST, 1);
curl_setopt($curlPost, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curlPost, CURLOPT_URL, "https://stream.watsonplatform.net/text-to-speech/api/v1/synthesize?voice=".$language);
curl_setopt($curlPost, CURLOPT_USERPWD, $username.':'.$password);
curl_setopt($curlPost, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curlPost, CURLOPT_POSTFIELDS, $data_json);
$response  = curl_exec($curlPost);
curl_close($curlPost);

$filePathName = './storage/' . uniqid() . '-Speaking.wav';
if(!file_put_contents($filePathName, $response)){
return response()->json(array(
'code' => '300',
'msg'  => 'Error creating file'
));
}

Зачем мне это нужно? Потому что мой коллега должен прочитать аудиофайл на C ++.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]