PDF version
*: Nexiwave API is part of Nexiwave Enterprise Service. Contact us for setup.
Have You Considered?
Your development hours are precious and expensive resources. Have you considered using Nexiwave's no-coding "Voicemail-to-text Email Service"? Simply send voicemail audio to a Nexiwave provided email address. Our automated service will receive, transcribe and send the Voicemail Transcription email to the destination address. You save valuable development and testing time and instant enterprise class service integration.
Nexiwave Web API
Nexiwave Web API is as simple as posting the audio to Nexiwave via HTTP and receiving transcript back.
For the impatient ones, here are some one liners (choose your flavor). The wav file will be transcribed and transcript printed to stdout:
wget -q --max-redirect=100 --post-file /data/audio/test.wav --user=user@myemail.com --password=password --header="Content-Type: audio/vnd.wav" --header="Accept: text/raw-transcript" -O - "https://api.nexiwave.com/transcribe"
curl -L -u "user@myemail.com:password" --data-binary '@/data/audio/test.wav' -H "Content-Type: audio/vnd.wav" -H "Accept: text/raw-transcript" 'https://api.nexiwave.com/transcribe'
The response will be just the raw transcript. Sample Response:
Hi. My name is Carla I'm calling with I.B.M.. If you can give me a call back, it'd be greatly appreciated it. Our number here is 1 (800) 555-1234.
(More code samples: PHP/CURL PYTHON Java C# VB.NET )
Here is the PHP sample code:
<?php
// Change these:
$user = 'user@myemail.com';
$pass = 'XYZ';
$file = '/data/audio/test.wav';
// the request URL
$url = 'https://api.nexiwave.com/transcribe';
// Build the connection object:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERPWD, "$user:$pass");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Accept: text/raw-transcript', ));
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
// curl_setopt($ch, CURLOPT_MAXREDIRS, 100);
// curl_setopt($ch, CURLOPT_VERBOSE, 1);
// To explicitly configure to wait indefintely for sync requests:
// curl_setopt($ch, CURLOPT_CONNECTTIMEOUT ,0);
// curl_setopt($ch, CURLOPT_TIMEOUT, 0);
// set_time_limit(0); // time execution of php script self
$post = array("data.mediaFileData"=>sprintf("@%s", $file),);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
// Ready to send:
$result = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($code == 200) {
$transcript = $result;
// Perform your magic here
echo $transcript;
}
else {
// Something is wrong. Timed out? Configure the timeout setting above.
throw new exception($result);
}
?>
Also check out our Simple CallBack API.
Instructions for:
magicJACK (also works for ooma, netTalk, RingCentral, Line2, etc)
Outlook/LYNC Unified Messaging
FusionPBX
Asterisk, FreeSWITCH, PBXInaFlash