UNPKG

@maximai/maxim-js

Version:

Maxim AI JS SDK. Visit https://getmaxim.ai for more info.

90 lines 3.18 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.pcm16ToWav = pcm16ToWav; exports.extractMessageContent = extractMessageContent; exports.extractOutputText = extractOutputText; /** * Convert PCM16 audio data to WAV format. */ function pcm16ToWav(pcmData, sampleRate = 24000, channels = 1) { const byteRate = sampleRate * channels * 2; // 16-bit = 2 bytes const blockAlign = channels * 2; const dataSize = pcmData.length; const headerSize = 44; const fileSize = headerSize + dataSize; const buffer = Buffer.alloc(fileSize); // RIFF header buffer.write("RIFF", 0); buffer.writeUInt32LE(fileSize - 8, 4); buffer.write("WAVE", 8); // fmt subchunk buffer.write("fmt ", 12); buffer.writeUInt32LE(16, 16); // Subchunk1Size buffer.writeUInt16LE(1, 20); // AudioFormat (PCM) buffer.writeUInt16LE(channels, 22); buffer.writeUInt32LE(sampleRate, 24); buffer.writeUInt32LE(byteRate, 28); buffer.writeUInt16LE(blockAlign, 32); buffer.writeUInt16LE(16, 34); // BitsPerSample // data subchunk buffer.write("data", 36); buffer.writeUInt32LE(dataSize, 40); pcmData.copy(buffer, 44); return buffer; } /** * Extract message content from a conversation item. */ function extractMessageContent(item) { const content = item.content; if (!content) return ""; if (typeof content === "string") return content; if (Array.isArray(content)) { const parts = []; for (const contentItem of content) { if (typeof contentItem === "string") { parts.push(contentItem); } else if ((contentItem === null || contentItem === void 0 ? void 0 : contentItem.type) === "input_text") { parts.push(contentItem.text || ""); } else if ((contentItem === null || contentItem === void 0 ? void 0 : contentItem.type) === "input_audio") { const transcript = contentItem.transcript; if (transcript) { parts.push(transcript); } } else if ((contentItem === null || contentItem === void 0 ? void 0 : contentItem.type) === "input_image") { parts.push("[image]"); } } return parts.join(""); } return String(content); } /** * Extract output text from a response message. */ function extractOutputText(item) { const content = item.content; if (!content) return ""; if (typeof content === "string") return content; if (Array.isArray(content)) { const parts = []; for (const contentItem of content) { if ((contentItem === null || contentItem === void 0 ? void 0 : contentItem.type) === "output_text") { parts.push(contentItem.text || ""); } else if ((contentItem === null || contentItem === void 0 ? void 0 : contentItem.type) === "output_audio") { parts.push(contentItem.transcript || ""); } } return parts.join(""); } return ""; } //# sourceMappingURL=utils.js.map