| 
<?php
 function delete_old_files(){
 
 
 $files = glob('upload/*');
 foreach($files as $file){
 if(is_file($file))
 unlink($file);
 }
 }
 
 
 
 function delete_old_speech_files(){
 
 
 $files = glob('output_speech/*');
 foreach($files as $file){
 if(is_file($file))
 unlink($file);
 }
 }
 
 
 function delete_old_output_files(){
 
 $files = glob('output/*');
 foreach($files as $file){
 if(is_file($file))
 unlink($file);
 }
 
 }
 
 function get_filename(){
 
 
 $path    = 'output_speech';
 $files = scandir($path);
 foreach ($files as $filename ) {
 
 
 $filename;
 }
 
 return $filename;
 }
 
 
 function fileExist()
 {
 
 $open = "upload/";
 
 if ($files = glob($open . "/*")) {
 
 
 $result= true;
 return $result;
 } else {
 
 
 $result=false;
 return $result;
 }
 }
 
 
 
 function output_fileExist()
 {
 
 $open = "output_speech/";
 
 if ($files = glob($open . "/*")) {
 
 
 $result= true;
 return $result;
 } else {
 
 
 $result=false;
 return $result;
 }
 }
 
 function query_result($apiKey,$message,$format){
 
 delete_old_speech_files();
 $output_location="output_speech";
 
 
 $curl = curl_init();
 
 curl_setopt_array($curl, array(
 CURLOPT_URL => 'https://api.openai.com/v1/chat/completions',
 CURLOPT_RETURNTRANSFER => true,
 CURLOPT_ENCODING => '',
 CURLOPT_MAXREDIRS => 10,
 CURLOPT_TIMEOUT => 0,
 CURLOPT_FOLLOWLOCATION => true,
 CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
 CURLOPT_CUSTOMREQUEST => 'POST',
 CURLOPT_POSTFIELDS =>'{
 "model": "gpt-3.5-turbo-16k",
 "messages": [
 {
 "role": "user",
 "content": "'.$message.'"
 }
 ]
 }',
 CURLOPT_HTTPHEADER => array(
 'Authorization: Bearer '.$apiKey,
 'Content-Type: application/json'
 ),
 ));
 
 $response = curl_exec($curl);
 
 
 
 curl_close($curl);
 
 
 $json = json_decode($response);
 $completion = $json->choices[0]->message->content;
 
 // $completion;
 
 
 $ch = curl_init();
 
 curl_setopt($ch, CURLOPT_URL, 'https://api.openai.com/v1/audio/speech');
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 curl_setopt($ch, CURLOPT_POST, true);
 curl_setopt($ch, CURLOPT_HTTPHEADER, array(
 'Authorization: Bearer ' . $apiKey,
 'Content-Type: application/json'
 ));
 curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(array(
 'model' => 'tts-1',
 'input' => $completion,
 'voice' => 'alloy'
 )));
 
 $result = curl_exec($ch);
 
 if (curl_errno($ch)) {
 echo 'Error:' . curl_error($ch);
 } else {
 
 
 
 file_put_contents($output_location."/".uniqid().".".$format, $result);
 header("refresh: 1");
 }
 
 curl_close($ch);
 
 }
 function text($apiKey,$text,$format){
 
 //first delete old files
 delete_old_speech_files();
 delete_old_output_files();
 
 $output_location="output_speech";
 
 $ch = curl_init();
 
 curl_setopt($ch, CURLOPT_URL, 'https://api.openai.com/v1/audio/speech');
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 curl_setopt($ch, CURLOPT_POST, true);
 curl_setopt($ch, CURLOPT_HTTPHEADER, array(
 'Authorization: Bearer ' . $apiKey,
 'Content-Type: application/json'
 ));
 curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(array(
 'model' => 'tts-1',
 'input' => $text,
 'voice' => 'alloy'
 )));
 
 $result = curl_exec($ch);
 
 if (curl_errno($ch)) {
 echo 'Error:' . curl_error($ch);
 } else {
 
 
 
 file_put_contents($output_location."/".uniqid().".".$format, $result);
 header("refresh: 1");
 }
 
 curl_close($ch);
 }
 
 function speech_to_text($apiKey,$filename){
 
 $headers=array();
 $headers = [
 'Authorization: Bearer ' . $apiKey,
 'Content-Type : "multipart/form-data'
 ];
 
 
 $ch = curl_init();
 
 
 curl_setopt($ch, CURLOPT_URL, 'https://api.openai.com/v1/audio/transcriptions');
 
 
 curl_setopt($ch, CURLOPT_POST, 1);
 
 
 curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
 
 
 
 $data = array(
 'file' => new CurlFile($filename),
 'model' => 'whisper-1'
 
 );
 
 curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
 
 
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 
 
 $response = curl_exec($ch);
 
 
 
 
 
 delete_old_files();
 
 $output_location="output";
 //create text file
 
 $file_name=uniqid()."."."txt";
 
 
 $new_str = preg_replace('~[\\\\{:}"]~', ' ', $response);
 $last_str=str_replace("text", '', $new_str);
 
 
 $myfile = fopen($output_location."/".$file_name, "w") or die("Unable to open file!");
 
 fwrite($myfile, trim($last_str));
 
 fclose($myfile);
 
 
 
 }
 ?>
 |