UNPKG

audio-transcripter

Version:

Lightweight TypeScript library for transcribing audio files using Google Gemini 2.0 models. Supports local files, remote URLs, and Blobs.

33 lines (32 loc) 1.45 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.transcribeAudio = transcribeAudio; const file_helper_1 = require("./utils/file-helper"); const genAi_1 = require("./utils/genAi"); async function transcribeAudio(input, options = {}) { try { // Destructure with default values and types const { style = "accurate", language = null, context = null, sourceType = "local", } = options; // Step 1: Get file buffer const buffer = await (0, file_helper_1.getFileBuffer)(input, sourceType); if (!buffer) { return null; } // Step 2: Create file object const file = (0, file_helper_1.createFileFromBuffer)(buffer, input, sourceType); // Step 3: Upload file const mimeType = sourceType === "buffer" ? "audio/wav" : (0, file_helper_1.getMimeType)(input); const uploadResult = await (0, genAi_1.uploadFileToGenAI)(file, mimeType); if (!uploadResult) { return null; } // Step 4: Build prompt const prompt = (0, genAi_1.buildTranscriptionPrompt)(style, language, context); // Step 5: Generate transcription return await (0, genAi_1.generateTranscription)(prompt, uploadResult.uri, uploadResult.mimeType); } catch (err) { console.error("[error] Failed to transcribe:", err instanceof Error ? err.message : String(err)); return null; } }