2017-01-24 6 views
0

Я использую речь IBM в текстовом сеансе без априта с этой конечной точкой - «https://stream.watsonplatform.net/speech-to-text/api/v1/recognize?model=en-US_NarrowbandModel»; , и загрузку flac-файла для переписывания в текст, но получение ошибки 400 с этим сообщением «не удалось перекодировать поток данных audio/flac -> audio/x-float-array». Пожалуйста, дайте мне знать, где я ошибаюсь.Невозможно перекодировать поток данных audio/flac -> audio/x-float-array

+0

Добро пожаловать. Потратьте минутку, чтобы прочитать Руководство: _ [ask] _, в котором есть много полезной информации о том, что должно быть включено в ваши вопросы, чтобы помочь нам помочь вам в решении этой проблемы. – mike510a

+0

Возможный дубликат [ffmpeg для преобразования из flac в wav] (http://stackoverflow.com/questions/23333678/ffmpeg-to-convert-from-flac-to-wav) –

ответ

1

Я взглянул на код, который вы поделили с нами, и я исправил пару вещей. Проблема не была действительно связана с услугой Watson STT, но так, как вы обращались к звуковым байтам в php и нажали на них, вот рабочая версия:

<form method="post" name="post_form" action="conversion.php" enctype="multipart/form-data"> 
    <input type="file" name="voice"> 
    <input type="submit" name="btnUpload" value="submit"> 
</form> 
<?php 
    if($_POST['btnUpload']) { 
     $username = "username"; 
     $password = "password"; 
     $url = 'https://stream.watsonplatform.net/speech-to-text/api/v1/recognize?continuous=true&model=en-US_NarrowbandModel'; 
     $filename = $_FILES['voice']['name']; 
     $filedata = $_FILES['voice']['tmp_name']; 
     $file = fopen($filename, 'r'); 
     $filesize = filesize($filename); 
     $bytes = fread($file,$filesize); 
     $data = array('part_content_type' => 'audio/flac'); 
     $headers = array("Content-Type: audio/flac", "Transfer-Encoding: chunked"); 
     $ch = curl_init(); 
     curl_setopt($ch, CURLOPT_URL, $url); 
     curl_setopt($ch, CURLOPT_USERPWD, "$username:$password"); 
     curl_setopt($ch, CURLOPT_POST, TRUE); 
     curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
     curl_setopt($ch, CURLOPT_BINARYTRANSFER, TRUE); 
     curl_setopt($ch, CURLOPT_POSTFIELDS, $bytes); 
     curl_setopt($ch, CURLOPT_INFILESIZE, $filesize); 
     curl_setopt($ch, CURLOPT_VERBOSE, true); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
     $executed = curl_exec($ch); 
     curl_close($ch); 
     var_dump($executed); exit; 
    } 

?> 

 Смежные вопросы

  • Нет связанных вопросов^_^