react-native-deepgram
Version:
React Native SDK for Deepgram's AI-powered speech-to-text, real-time transcription, and text intelligence APIs. Supports live audio streaming, file transcription, sentiment analysis, and topic detection for iOS and Android.
41 lines (40 loc) • 1.91 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.arrayBufferToBase64 = arrayBufferToBase64;
exports.createAudioPlayerController = createAudioPlayerController;
var _buffer = require("buffer");
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
function arrayBufferToBase64(buffer) {
const bytes = new Uint8Array(buffer);
return _buffer.Buffer.from(bytes).toString('base64');
}
function createAudioPlayerController() {
let isActive = false;
return {
start: async (sampleRate = 16000, channels = 1) => {
const {
Deepgram
} = await Promise.resolve().then(() => _interopRequireWildcard(require('../NativeDeepgram')));
Deepgram.startPlayer?.(sampleRate, channels);
isActive = true;
},
feed: async audio => {
const {
Deepgram
} = await Promise.resolve().then(() => _interopRequireWildcard(require('../NativeDeepgram')));
const b64 = typeof audio === 'string' ? audio : arrayBufferToBase64(audio);
await Deepgram.feedAudio?.(b64);
},
stop: async () => {
const {
Deepgram
} = await Promise.resolve().then(() => _interopRequireWildcard(require('../NativeDeepgram')));
Deepgram.stopPlayer?.();
isActive = false;
},
isActive: () => isActive
};
}
//# sourceMappingURL=audioUtils.js.map