I am trying to transcribe a audio file with OpenAI API:
import flash.filesystem.*;
var fileData: ByteArray = new ByteArray();
var bbb: ByteArray = new ByteArray();
var file: File = File.desktopDirectory.resolvePath("narcos.m4a");
var fs: FileStream = new FileStream();
fs.open(file, FileMode.READ);
fs.readBytes(bbb);
trace(file.exists, bbb.length)
fs.close();
import flash.net.URLRequest;
import flash.net.URLRequestMethod;
import flash.net.URLRequestHeader;
import flash.net.URLVariables;
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.net.URLLoader;
import flash.utils.ByteArray;
import flash.net.URLStream;
var credentials:String = "xxx";
var urlLoader:URLLoader = new URLLoader()
urlLoader.addEventListener(Event.COMPLETE, complete)
function complete(e:Event) { trace("DONE")}
var req:URLRequest = new URLRequest('https://api.openai.com/v1/audio/transcriptions')
req.method = URLRequestMethod.POST;
req.requestHeaders.push(new URLRequestHeader("Authorization", "Bearer " + credentials));
req.requestHeaders.push(new URLRequestHeader("Content-Type", "multipart/form-data; boundary=" + "---------------------------boundary"));
req.data = makeData("---------------------------boundary")
urlLoader.load(req)
function makeData(boundary:String):ByteArray {
var body:ByteArray = new ByteArray();
var paramName = 'file'; var fileName = 'narcos.m4a'; var contentType = 'audio/mpeg';
body.writeUTFBytes("--" + boundary + "\r\n");
body.writeUTFBytes("Content-Disposition: form-data; name=\"" + paramName + "\"; filename=\"" + fileName + "\"\r\n");
body.writeUTFBytes("Content-Type: " + contentType + "\r\n\r\n");
body.writeBytes(bbb, 0, bbb.length);
body.writeUTFBytes("\r\n");
var paramName = 'model'; var value='whisper-1'
body.writeUTFBytes("--" + boundary + "\r\n");
body.writeUTFBytes("Content-Disposition: form-data; name=\"" + paramName + "\"\r\n\r\n");
body.writeUTFBytes(value + "\r\n");
return body;
}
What am I doing wrong? It's not working....