UNPKG

orate

Version:
2 lines (1 loc) 2.46 kB
"use strict";var f=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var S=Object.prototype.hasOwnProperty;var D=(o,e)=>{for(var n in e)f(o,n,{get:e[n],enumerable:!0})},k=(o,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of E(e))!S.call(o,t)&&t!==n&&f(o,t,{get:()=>e[t],enumerable:!(i=b(e,t))||i.enumerable});return o};var O=o=>k(f({},"__esModule",{value:!0}),o);var P={};D(P,{Deepgram:()=>v});module.exports=O(P);var m=require("@deepgram/sdk"),v=class{constructor(e){if(this.apiKey=e||process.env.DEEPGRAM_API_KEY||"",!this.apiKey)throw new Error("DEEPGRAM_API_KEY is not set")}createProvider(){return(0,m.createClient)(this.apiKey)}tts(e="aura",n="asteria-en",i){let t=this.createProvider(),h=`${e}-${n}`;return{generate:async p=>{let a=await(await t.speak.request({text:p},{model:h,...i})).getStream();if(!a)throw new Error("No stream returned from Deepgram");let s=a.getReader(),l=[];for(;;){let{done:w,value:y}=await s.read();if(w)break;l.push(y)}let c=Buffer.concat(l);return new File([c],"speech.mp3",{type:"audio/mpeg"})},stream:async p=>{let a=await(await t.speak.request({text:p},{model:h,...i})).getStream();if(!a)throw new Error("No stream returned from Deepgram");return new ReadableStream({async start(s){let l=a.getReader();try{for(;;){let{done:c,value:g}=await l.read();if(c){s.close();break}s.enqueue(g)}}catch(c){s.error(c)}}})}}}stt(e="nova-2",n){let i=this.createProvider();return{generate:async u=>{var a;let d=await u.arrayBuffer(),p=Buffer.from(d),r=await i.listen.prerecorded.transcribeFile(p,{model:e,...n});if(r.error)throw new Error(r.error.message);if(!((a=r.result)!=null&&a.results))throw new Error("No results returned from Deepgram");if(!r.result.results.channels.length)throw new Error("No channels returned from Deepgram");if(!r.result.results.channels[0].alternatives.length)throw new Error("No alternatives returned from Deepgram");return r.result.results.channels[0].alternatives[0].transcript},stream:async u=>{let d=await u.arrayBuffer(),p=Buffer.from(d),r=i.listen.live({buffer:p,model:e,...n});return new ReadableStream({async start(a){r.on(m.LiveTranscriptionEvents.Open,()=>{r.on(m.LiveTranscriptionEvents.Transcript,s=>{var c;let l=(c=s.channel.alternatives.at(0))==null?void 0:c.transcript;l&&a.enqueue(l)})}),r.on(m.LiveTranscriptionEvents.Error,s=>{a.error(s)}),r.on(m.LiveTranscriptionEvents.Close,()=>{a.close()})}})}}}};0&&(module.exports={Deepgram});