orate
Version:
The AI toolkit for speech.
2 lines (1 loc) • 777 B
JavaScript
import{RevAiApiClient as f,RevAiApiDeployment as l,RevAiApiDeploymentConfigMap as u}from"revai-node-sdk";var s=class{constructor(e){if(this.apiKey=e||process.env.REV_API_KEY||"",!this.apiKey)throw new Error("REV_API_KEY is not set")}createProvider(){return new f({token:this.apiKey,deploymentConfig:u.get(l.US)})}stt(e="machine",o){let r=this.createProvider();return{generate:async a=>{let c=await a.arrayBuffer(),p=Buffer.from(c),t=await r.submitJobAudioData(p,a.name,{transcriber:e,...o});if(t.status==="failed")throw new Error(t.failure_detail);for(;;){let i=await r.getJobDetails(t.id);if(i.status==="transcribed")return await r.getTranscriptText(t.id);if(i.status==="failed")throw new Error(i.failure_detail);await new Promise(n=>setTimeout(n,1e3))}}}}};export{s as Rev};