Wednesday, 11 October 2017

How to get Speech Recognition from Audio OR Video

How to get Speech Recognition from Audio OR Video

Question: What does do the voicebase.com?
Give the Audio/Video URL in API and get all Speech in Text.


Question: How to get the API Key?
You can request API access using this form: http://info.voicebase.com/request-api-key


Question: What other it can do?
  1. Machine-generated Transcript
  2. Per Word Confidence
  3. Time-stamped words
  4. Player SDK
  5. Stereo speaker ID



Question: How to get media-id in voicebase api?
    //Get Token
    $tokenKey='eyJ0eXAiOiJKV1QiLCJhbGciOiJIUadDKFDSLJLDLJKJLKKWWUEUUEEUUEUEUUEUUEUDUUDUDDLDLDLLDLLLDLLDLDLKFMFKK2b2ljZWJhc2UuY29tIn0.8M4bmafBqdlqon-o65CMKabBjxVatDObzRklDoUysNU';

    //Get Video URL
    $videoAudioURL='http://example.com/audio/filename.mp3';

    $curl = curl_init();
    curl_setopt_array($curl, array(
      CURLOPT_URL => "https://apis.voicebase.com/v3/media",
      CURLOPT_RETURNTRANSFER => true,
        CURLOPT_SSL_VERIFYPEER=>false,
      CURLOPT_ENCODING => "",
      CURLOPT_MAXREDIRS => 10,
      CURLOPT_TIMEOUT => 30,
      CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
      CURLOPT_CUSTOMREQUEST => "POST",
      CURLOPT_POSTFIELDS => "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"mediaUrl\"\r\n\r\n{$videoAudioURL}\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--",
      CURLOPT_HTTPHEADER => array(
        "authorization: Bearer {$tokenKey}",
        "cache-control: no-cache",
        "content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW",    
      ),
    ));

    $response = curl_exec($curl);
    $err = curl_error($curl);

    curl_close($curl);

    if ($err) {
      echo "cURL Error #:" . $err;
    } else {
      echo $response;
    }



Output
{
  "_links": {
    "self": {
      "href": "/v3/media/70cafaf7-89bc-474f-bb02-c59f0181a51f"
    },
    "progress": {
      "href": "/v3/media/70cafaf7-89bc-474f-bb02-c59f0181a51f/progress"
    },
    "metadata": {
      "href": "/v3/media/70cafaf7-89bc-474f-bb02-c59f0181a51f/metadata"
    }
  },
  "formatVersion": "3.0.1",
  "mediaId": "70cafaf7-89bc-474f-bb02-c59f0181a51f",
  "status": "accepted",
  "dateCreated": "2017-10-11T08:46:56.343Z",
  "metadata": {
    
  },
  "mediaContentType": "video/mp4",
  "length": 222956
}



Question: How to get transcription from mediaID?
        //Get Token
        $tokenKey='eyJ0eXAiOiJKV1QiLCJhbGciOiJIUadDKFDSLJLDLJKJLKKWWUEUUEEUUEUEUUEUUEUDUUDUDDLDLDLLDLLLDLLDLDLKFMFKK2b2ljZWJhc2UuY29tIn0.8M4bmafBqdlqon-o65CMKabBjxVatDObzRklDoUysNU';
        $mediaId='70cafaf7-89bc-474f-bb02-c59f0181a51f';

$curl = curl_init();
curl_setopt_array($curl, array(
  CURLOPT_URL => "https://apis.voicebase.com/v3/media/{$mediaId}",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_POSTFIELDS => "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"mediaUrl\"\r\n\r\nhttp://enterprise-dev2.georama.com/test/love.mp3\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--",
  CURLOPT_HTTPHEADER => array(
    "authorization: Bearer {$tokenKey}",
    "cache-control: no-cache",
    "content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW",
    "postman-token: 0effcf6c-38cd-0ebc-dc87-3d821fd5ca72"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
Output
{
  "confidence": 0.16606535003699963,
  "words": [
    {
      "p": 0,
      "c": 0.998,
      "s": 4230,
      "e": 4540,
      "w": "Hello"
    },
    {
      "p": 1,
      "c": 0.95,
      "s": 4549,
      "e": 4660,
      "w": "my"
    },
    {
      "p": 2,
      "c": 0.941,
      "s": 4670,
      "e": 4799,
      "w": "name"
    }
  ]
}

Tuesday, 10 October 2017

CURL Example with Zend Framework1

CURL Example with Zend Framework1

Question: Give CURL Example with parameter in POST Method in Zend framework?
$config = array(
    'adapter' => 'Zend_Http_Client_Adapter_Curl',
    'ssltransport' => 'tls',
    'strict' => false,
    'persistent' => true,
);
$url = 'http://www.example.com';
$client = new Zend_Http_Client($url, $config);
$postArray = array('name'=>'Georage','age'=>33);
$client->setParameterPost($postArray);
$response = $client->request('POST');
echo $response->getBody();



Question: How to set Header data in CURL with Zend Framework1?
$client->setHeaders(array(
    'Host: www.example.com',
    'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0',
    'Accept: text/javascript, application/javascript, */*',
    'Accept-Language: en-gb,en;q=0.5',
    'Accept-Encoding: gzip, deflate',
    'Content-Type: application/x-www-form-urlencoded; charset=UTF-8',
    'X-Requested-With: XMLHttpRequest',
    'Referer: http://example.com'
));


Question: How to set Cookie data in CURL with Zend Framework1?
$client->setCookie('__utma', '174057141.1507422797.1392357517.1392698281.1392702703.3');
$client->setCookie('PHPSESSID', '0a12ket5d8d7otlo6uh66p658a5');



Question: How to set Content-Type in CURL with Zend Framework1?
$client->setHeaders('Content-Type', 'audio/flac');



Question: Give CURL Example with different option in Zend framework?
$config = array(
    'adapter' => 'Zend_Http_Client_Adapter_Curl',
    'ssltransport' => 'tls',
    'strict' => false,
    'persistent' => true,
);
$url = 'http://www.example.com';
$client = new Zend_Http_Client($url, $config);
$postArray = array('name'=>'Georage','age'=>33);
$client->setParameterPost($postArray);
/** set Headers **/
$client->setHeaders(array(
    'Host: www.example.com',
    'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0',
    'Accept: text/javascript, application/javascript, */*',
    'Accept-Language: en-gb,en;q=0.5',
    'Accept-Encoding: gzip, deflate',
    'Content-Type: application/x-www-form-urlencoded; charset=UTF-8',
    'X-Requested-With: XMLHttpRequest',
    'Referer: http://example.com'
));

/** set cookie **/
$client->setCookie('__utma', '174057141.1507422797.1392357517.1392698281.1392702703.3');
$client->setCookie('PHPSESSID', '0a12ket5d8d7otlo6uh66p658a5');
$response = $client->request('POST');

$data= $response->getBody();
echo $data; 



Question: How to Skip SSL Check in CURL using Zend Framework?
$url='www.example.com';
$config = array(
    'adapter' => 'Zend_Http_Client_Adapter_Curl',
    'curloptions' => array(
        CURLOPT_FOLLOWLOCATION => TRUE,
        CURLOPT_SSL_VERIFYPEER => FALSE
    ),
);
 $client = new Zend_Http_Client($url, $config);
 $response = $client->request('GET');



Question: How to pass binary data of in CURL usig Zend Framework?
$file='http://example.com/test/GM-qE2zq-1078-5525_360p.flac';
$jsonData = '';        
$config = array(
       'adapter' => 'Zend_Http_Client_Adapter_Curl',
       'curloptions' => array(CURLOPT_FOLLOWLOCATION => true,CURLOPT_SSL_VERIFYPEER =>FALSE),            
   );
    $url='https://stream.watsonplatform.net/speech-to-text/api/v1/recognize';
   $client = new Zend_Http_Client($url, $config);
   //Set the Header value
    $client->setHeaders('Content-Type', 'audio/flac');
    $client->setHeaders('Transfer-Encoding', 'chunked');            

   $client->setRawData(file_get_contents($file));
    //Set post method
   $response = $client->request('POST'); 
   $jsonData= ($response->getBody());