edge-tts-universal
Version:
Universal text-to-speech library using Microsoft Edge's online TTS service. Works in Node.js and browsers WITHOUT needing Microsoft Edge, Windows, or an API key
1 lines • 79.6 kB
Source Map (JSON)
{"version":3,"sources":["../src/exceptions.ts","../src/utils.ts","../src/tts_config.ts","../src/constants.ts","../src/runtime-detection.ts","../src/isomorphic-drm.ts","../src/isomorphic-communicate.ts","../src/isomorphic-voices.ts","../src/isomorphic-simple.ts","../src/submaker.ts"],"names":["uuidv4","escape","WebSocket","fetch"],"mappings":"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","file":"isomorphic.cjs","sourcesContent":["/**\n * Base exception class for all Edge TTS related errors.\n */\nexport class EdgeTTSException extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"EdgeTTSException\";\n }\n}\n\n/**\n * Exception raised when there's an error adjusting clock skew for API requests.\n * This typically occurs when the client and server clocks are significantly out of sync.\n */\nexport class SkewAdjustmentError extends EdgeTTSException {\n constructor(message: string) {\n super(message);\n this.name = \"SkewAdjustmentError\";\n }\n}\n\n/**\n * Exception raised when an unknown response is received from the TTS service.\n * This indicates an unexpected message type or format that the client cannot handle.\n */\nexport class UnknownResponse extends EdgeTTSException {\n constructor(message: string) {\n super(message);\n this.name = \"UnknownResponse\";\n }\n}\n\n/**\n * Exception raised when an unexpected response is received from the TTS service.\n * This indicates a response that doesn't match the expected protocol flow.\n */\nexport class UnexpectedResponse extends EdgeTTSException {\n constructor(message: string) {\n super(message);\n this.name = \"UnexpectedResponse\";\n }\n}\n\n/**\n * Exception raised when no audio data is received during synthesis.\n * This typically indicates a problem with the synthesis request or service.\n */\nexport class NoAudioReceived extends EdgeTTSException {\n constructor(message: string) {\n super(message);\n this.name = \"NoAudioReceived\";\n }\n}\n\n/**\n * Exception raised when there's an error with the WebSocket connection.\n * This can occur during connection establishment, data transmission, or connection closure.\n */\nexport class WebSocketError extends EdgeTTSException {\n constructor(message: string) {\n super(message);\n this.name = \"WebSocketError\";\n }\n}\n\n/**\n * Exception raised when an invalid value is provided to a function or method.\n * This is typically used for input validation errors.\n */\nexport class ValueError extends EdgeTTSException {\n constructor(message: string) {\n super(message);\n this.name = \"ValueError\";\n }\n} ","import { v4 as uuidv4 } from 'uuid';\nimport { TTSConfig } from './tts_config';\nimport { ValueError } from \"./exceptions\";\nimport escape from 'xml-escape';\n\n/**\n * Parses text-based WebSocket messages to extract headers and data.\n * @param message - Buffer containing the message to parse\n * @returns Tuple of headers object and data buffer\n */\nexport function getHeadersAndDataFromText(message: Buffer): [{ [key: string]: string }, Buffer] {\n const headerLength = message.indexOf('\\r\\n\\r\\n');\n const headers: { [key: string]: string } = {};\n const headerString = message.subarray(0, headerLength).toString('utf-8');\n if (headerString) {\n const headerLines = headerString.split('\\r\\n');\n for (const line of headerLines) {\n const [key, value] = line.split(':', 2);\n if (key && value) {\n headers[key] = value.trim();\n }\n }\n }\n\n return [headers, message.subarray(headerLength + 2)];\n}\n\n/**\n * Parses binary WebSocket messages to extract headers and data.\n * @param message - Buffer containing the binary message to parse\n * @returns Tuple of headers object and data buffer\n */\nexport function getHeadersAndDataFromBinary(message: Buffer): [{ [key: string]: string }, Buffer] {\n const headerLength = message.readUInt16BE(0);\n const headers: { [key: string]: string } = {};\n const headerString = message.subarray(2, headerLength + 2).toString('utf-8');\n if (headerString) {\n const headerLines = headerString.split('\\r\\n');\n for (const line of headerLines) {\n const [key, value] = line.split(':', 2);\n if (key && value) {\n headers[key] = value.trim();\n }\n }\n }\n\n return [headers, message.subarray(headerLength + 2)];\n}\n\n/**\n * Removes control characters that are incompatible with TTS processing.\n * @param text - Input text to clean\n * @returns Text with control characters replaced by spaces\n */\nexport function removeIncompatibleCharacters(text: string): string {\n // Remove control characters (U+0000 to U+001F except \\t, \\n, \\r)\n // eslint-disable-next-line no-control-regex\n return text.replace(/[\\u0000-\\u0008\\u000B\\u000C\\u000E-\\u001F]/g, ' ');\n}\n\n/**\n * Generates a unique connection ID for WebSocket connections.\n * @returns UUID string with hyphens removed\n */\nexport function connectId(): string {\n return uuidv4().replace(/-/g, '');\n}\n\nfunction _findLastNewlineOrSpaceWithinLimit(text: Buffer, limit: number): number {\n const slice = text.subarray(0, limit);\n let splitAt = slice.lastIndexOf('\\n');\n if (splitAt < 0) {\n splitAt = slice.lastIndexOf(' ');\n }\n return splitAt;\n}\n\nfunction _findSafeUtf8SplitPoint(textSegment: Buffer): number {\n let splitAt = textSegment.length;\n while (splitAt > 0) {\n const slice = textSegment.subarray(0, splitAt);\n // check if the slice is a valid utf8 string\n if (slice.toString('utf-8').endsWith('�')) {\n splitAt--;\n continue;\n }\n return splitAt;\n }\n return splitAt;\n}\n\nfunction _adjustSplitPointForXmlEntity(text: Buffer, splitAt: number): number {\n let ampersandIndex = text.lastIndexOf('&', splitAt - 1);\n while (ampersandIndex !== -1) {\n const semicolonIndex = text.indexOf(';', ampersandIndex);\n if (semicolonIndex !== -1 && semicolonIndex < splitAt) {\n break; // Found a terminated entity\n }\n // Ampersand is not terminated before split_at\n splitAt = ampersandIndex;\n ampersandIndex = text.lastIndexOf('&', splitAt - 1);\n }\n return splitAt;\n}\n\n/**\n * Splits text into chunks that don't exceed the specified byte length.\n * Attempts to split at word boundaries and handles UTF-8 encoding properly.\n * @param text - Text to split (string or Buffer)\n * @param byteLength - Maximum byte length per chunk\n * @yields Buffer chunks of the split text\n * @throws {ValueError} If byteLength is too small or text has invalid structure\n */\nexport function* splitTextByByteLength(text: string | Buffer, byteLength: number): Generator<Buffer> {\n let buffer = Buffer.isBuffer(text) ? text : Buffer.from(text, 'utf-8');\n\n if (byteLength <= 0) {\n throw new ValueError(\"byteLength must be greater than 0\");\n }\n\n while (buffer.length > byteLength) {\n let splitAt = _findLastNewlineOrSpaceWithinLimit(buffer, byteLength);\n\n if (splitAt < 0) {\n splitAt = _findSafeUtf8SplitPoint(buffer.subarray(0, byteLength));\n }\n\n splitAt = _adjustSplitPointForXmlEntity(buffer, splitAt);\n\n if (splitAt <= 0) {\n throw new ValueError(\n \"Maximum byte length is too small or \"\n + \"invalid text structure near '&' or invalid UTF-8\"\n );\n }\n\n const chunk = buffer.subarray(0, splitAt);\n const chunkString = chunk.toString('utf-8').trim();\n if (chunkString) {\n yield Buffer.from(chunkString, 'utf-8');\n }\n\n buffer = buffer.subarray(splitAt);\n }\n\n const remainingChunk = buffer.toString('utf-8').trim();\n if (remainingChunk) {\n yield Buffer.from(remainingChunk, 'utf-8');\n }\n}\n\n/**\n * Creates SSML (Speech Synthesis Markup Language) from text and TTS configuration.\n * @param tc - TTS configuration containing voice and prosody settings\n * @param escapedText - Text content (should be XML-escaped)\n * @returns Complete SSML document string\n */\nexport function mkssml(tc: TTSConfig, escapedText: string | Buffer): string {\n const text = Buffer.isBuffer(escapedText) ? escapedText.toString('utf-8') : escapedText;\n return (\n \"<speak version='1.0' xmlns='http://www.w3.org/2001/10/synthesis' xml:lang='en-US'>\"\n + `<voice name='${tc.voice}'>`\n + `<prosody pitch='${tc.pitch}' rate='${tc.rate}' volume='${tc.volume}'>`\n + `${text}`\n + \"</prosody>\"\n + \"</voice>\"\n + \"</speak>\"\n );\n}\n\n/**\n * Formats the current date as a string in the format expected by the TTS service.\n * @returns Formatted date string\n */\nexport function dateToString(): string {\n return new Date().toUTCString().replace(\"GMT\", \"GMT+0000 (Coordinated Universal Time)\");\n}\n\n/**\n * Creates a complete WebSocket message with headers and SSML data.\n * @param requestId - Unique request identifier\n * @param timestamp - Timestamp string for the request\n * @param ssml - SSML content to include in the message\n * @returns Complete WebSocket message string with headers and data\n */\nexport function ssmlHeadersPlusData(requestId: string, timestamp: string, ssml: string): string {\n return (\n `X-RequestId:${requestId}\\r\\n`\n + \"Content-Type:application/ssml+xml\\r\\n\"\n + `X-Timestamp:${timestamp}Z\\r\\n` // This is not a mistake, Microsoft Edge bug.\n + \"Path:ssml\\r\\n\\r\\n\"\n + `${ssml}`\n );\n}\n\n/**\n * Calculates the maximum message size for text chunks based on WebSocket limits.\n * @param ttsConfig - TTS configuration to calculate overhead for\n * @returns Maximum byte size for text content in a single message\n */\nexport function calcMaxMesgSize(ttsConfig: TTSConfig): number {\n const websocketMaxSize = 2 ** 16;\n const overheadPerMessage = ssmlHeadersPlusData(\n connectId(),\n dateToString(),\n mkssml(ttsConfig, \"\"),\n ).length + 50; // margin of error\n return websocketMaxSize - overheadPerMessage;\n}\n\nexport { escape };\n\n/**\n * Unescapes XML entities in text.\n * @param text - Text containing XML entities to unescape\n * @returns Text with XML entities converted back to their original characters\n */\nexport function unescape(text: string): string {\n return text.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');\n} ","import { ValueError } from \"./exceptions\";\n\n/**\n * Interface defining the configuration options for TTS synthesis.\n */\nexport interface ITTSConfig {\n /** Voice name to use for synthesis */\n voice: string;\n /** Speech rate adjustment (e.g., \"+20%\", \"-10%\") */\n rate: string;\n /** Volume level adjustment (e.g., \"+50%\", \"-25%\") */\n volume: string;\n /** Pitch adjustment in Hz (e.g., \"+5Hz\", \"-10Hz\") */\n pitch: string;\n}\n\n/**\n * Configuration class for TTS synthesis parameters.\n * Handles voice name normalization and parameter validation.\n * \n * @example\n * ```typescript\n * const config = new TTSConfig({\n * voice: 'en-US-EmmaMultilingualNeural',\n * rate: '+20%',\n * volume: '+10%',\n * pitch: '+5Hz'\n * });\n * ```\n */\nexport class TTSConfig implements ITTSConfig {\n public voice: string;\n public rate: string;\n public volume: string;\n public pitch: string;\n\n /**\n * Creates a new TTSConfig instance with the specified parameters.\n * \n * @param options - Configuration options\n * @param options.voice - Voice name (supports both short and full formats)\n * @param options.rate - Speech rate adjustment (default: \"+0%\")\n * @param options.volume - Volume adjustment (default: \"+0%\") \n * @param options.pitch - Pitch adjustment (default: \"+0Hz\")\n * @throws {ValueError} If any parameter has an invalid format\n */\n constructor({\n voice,\n rate = \"+0%\",\n volume = \"+0%\",\n pitch = \"+0Hz\",\n }: {\n voice: string,\n rate?: string,\n volume?: string,\n pitch?: string,\n }) {\n this.voice = voice;\n this.rate = rate;\n this.volume = volume;\n this.pitch = pitch;\n\n this.validate();\n }\n\n private validate() {\n // Voice validation and transformation\n const match = /^([a-z]{2,})-([A-Z]{2,})-(.+Neural)$/.exec(this.voice);\n if (match) {\n const [, lang] = match;\n let [, , region, name] = match;\n if (name.includes('-')) {\n const parts = name.split('-');\n region += `-${parts[0]}`;\n name = parts[1];\n }\n this.voice = `Microsoft Server Speech Text to Speech Voice (${lang}-${region}, ${name})`;\n }\n\n TTSConfig.validateStringParam(\n \"voice\",\n this.voice,\n /^Microsoft Server Speech Text to Speech Voice \\(.+,.+\\)$/\n );\n TTSConfig.validateStringParam(\"rate\", this.rate, /^[+-]\\d+%$/);\n TTSConfig.validateStringParam(\"volume\", this.volume, /^[+-]\\d+%$/);\n TTSConfig.validateStringParam(\"pitch\", this.pitch, /^[+-]\\d+Hz$/);\n }\n\n private static validateStringParam(paramName: string, paramValue: string, pattern: RegExp) {\n if (typeof paramValue !== 'string') {\n throw new TypeError(`${paramName} must be a string`);\n }\n if (!pattern.test(paramValue)) {\n throw new ValueError(`Invalid ${paramName} '${paramValue}'.`);\n }\n }\n} ","/** Base URL for Microsoft Edge TTS service endpoints */\nexport const BASE_URL = \"speech.platform.bing.com/consumer/speech/synthesize/readaloud\";\n\n/** Trusted client token used for authentication with the TTS service */\nexport const TRUSTED_CLIENT_TOKEN = \"6A5AA1D4EAFF4E9FB37E23D68491D6F4\";\n\n/** WebSocket URL for TTS streaming synthesis */\nexport const WSS_URL = `wss://${BASE_URL}/edge/v1?TrustedClientToken=${TRUSTED_CLIENT_TOKEN}`;\n\n/** HTTP URL for fetching available voices list */\nexport const VOICE_LIST_URL = `https://${BASE_URL}/voices/list?trustedclienttoken=${TRUSTED_CLIENT_TOKEN}`;\n\n/** Default voice to use when none is specified */\nexport const DEFAULT_VOICE = \"en-US-EmmaMultilingualNeural\";\n\n/** Version string for Chromium browser emulation */\nexport const CHROMIUM_FULL_VERSION = \"130.0.2849.68\";\n\n/** Major version number extracted from the full Chromium version */\nexport const CHROMIUM_MAJOR_VERSION = CHROMIUM_FULL_VERSION.split(\".\")[0];\n\n/** Security token version for API authentication */\nexport const SEC_MS_GEC_VERSION = `1-${CHROMIUM_FULL_VERSION}`;\n\n/** Base HTTP headers for API requests, mimicking a real browser */\nexport const BASE_HEADERS = {\n \"User-Agent\": `Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/${CHROMIUM_MAJOR_VERSION}.0.0.0 Safari/537.36 Edg/${CHROMIUM_MAJOR_VERSION}.0.0.0`,\n \"Accept-Encoding\": \"gzip, deflate, br\",\n \"Accept-Language\": \"en-US,en;q=0.9\",\n};\n\n/** HTTP headers specific to WebSocket connection requests */\nexport const WSS_HEADERS = {\n ...BASE_HEADERS,\n \"Pragma\": \"no-cache\",\n \"Cache-Control\": \"no-cache\",\n \"Origin\": \"chrome-extension://jdiccldimpdaibmpdkjnbmckianbfold\",\n};\n\n/** HTTP headers specific to voice list API requests */\nexport const VOICE_HEADERS = {\n ...BASE_HEADERS,\n \"Authority\": \"speech.platform.bing.com\",\n \"Sec-CH-UA\": `\" Not;A Brand\";v=\"99\", \"Microsoft Edge\";v=\"${CHROMIUM_MAJOR_VERSION}\", \"Chromium\";v=\"${CHROMIUM_MAJOR_VERSION}\"`,\n \"Sec-CH-UA-Mobile\": \"?0\",\n \"Accept\": \"*/*\",\n \"Sec-Fetch-Site\": \"none\",\n \"Sec-Fetch-Mode\": \"cors\",\n \"Sec-Fetch-Dest\": \"empty\",\n}; ","/**\n * Runtime detection utilities for cross-platform compatibility\n */\n\nexport interface RuntimeInfo {\n name: 'node' | 'deno' | 'bun' | 'browser' | 'webworker' | 'unknown';\n version?: string;\n isNode: boolean;\n isDeno: boolean;\n isBun: boolean;\n isBrowser: boolean;\n isWebWorker: boolean;\n}\n\n/**\n * Detect the current JavaScript runtime environment\n */\nexport function detectRuntime(): RuntimeInfo {\n const info: RuntimeInfo = {\n name: 'unknown',\n isNode: false,\n isDeno: false,\n isBun: false,\n isBrowser: false,\n isWebWorker: false,\n };\n\n // Check for Deno\n if (typeof (globalThis as any).Deno !== 'undefined') {\n info.name = 'deno';\n info.isDeno = true;\n info.version = (globalThis as any).Deno.version?.deno;\n return info;\n }\n\n // Check for Bun\n if (typeof (globalThis as any).Bun !== 'undefined') {\n info.name = 'bun';\n info.isBun = true;\n info.version = (globalThis as any).Bun.version;\n return info;\n }\n\n // Check for Node.js\n if (typeof process !== 'undefined' && process.versions && process.versions.node) {\n info.name = 'node';\n info.isNode = true;\n info.version = process.versions.node;\n return info;\n }\n\n // Check for Web Worker\n if (typeof (globalThis as any).importScripts === 'function' && typeof (globalThis as any).WorkerGlobalScope !== 'undefined') {\n info.name = 'webworker';\n info.isWebWorker = true;\n return info;\n }\n\n // Check for Browser\n if (typeof window !== 'undefined') {\n info.name = 'browser';\n info.isBrowser = true;\n return info;\n }\n\n return info;\n}\n\n/**\n * Get the appropriate fetch implementation for the current runtime\n */\nexport function getFetch(): typeof fetch {\n const runtime = detectRuntime();\n\n if (runtime.isDeno || runtime.isBrowser || runtime.isWebWorker) {\n return globalThis.fetch;\n }\n\n if (runtime.isNode || runtime.isBun) {\n try {\n // Try using built-in fetch first (Node 18+, Bun)\n if (typeof globalThis.fetch !== 'undefined') {\n return globalThis.fetch;\n }\n // Fallback to cross-fetch for older Node versions\n return require('cross-fetch');\n } catch {\n throw new Error('No fetch implementation available. Please install cross-fetch.');\n }\n }\n\n throw new Error('Unsupported runtime environment');\n}\n\n/**\n * Get the appropriate WebSocket implementation for the current runtime\n */\nexport function getWebSocket(): any {\n const runtime = detectRuntime();\n\n if (runtime.isDeno || runtime.isBrowser || runtime.isWebWorker) {\n return globalThis.WebSocket;\n }\n\n if (runtime.isNode || runtime.isBun) {\n try {\n return require('isomorphic-ws');\n } catch {\n throw new Error('No WebSocket implementation available. Please install isomorphic-ws.');\n }\n }\n\n throw new Error('Unsupported runtime environment');\n}\n\n/**\n * Get runtime-specific crypto implementation\n */\nexport function getCrypto(): Crypto {\n const runtime = detectRuntime();\n\n if (runtime.isDeno || runtime.isBrowser || runtime.isWebWorker) {\n return globalThis.crypto;\n }\n\n if (runtime.isNode || runtime.isBun) {\n try {\n // Node.js 16+ has built-in crypto.webcrypto\n if (typeof globalThis.crypto !== 'undefined') {\n return globalThis.crypto;\n }\n // Fallback for older Node versions\n return require('isomorphic-webcrypto');\n } catch {\n throw new Error('No crypto implementation available. Please install isomorphic-webcrypto.');\n }\n }\n\n throw new Error('Unsupported runtime environment');\n} ","import { TRUSTED_CLIENT_TOKEN } from './constants';\nimport { SkewAdjustmentError } from \"./exceptions\";\nimport { getCrypto } from './runtime-detection';\nimport type { Response } from 'cross-fetch';\n\nconst WIN_EPOCH = 11644473600;\nconst S_TO_NS = 1e9;\n\n/**\n * Isomorphic DRM class that works in both Node.js and browsers.\n * Uses appropriate crypto APIs based on the environment.\n */\nexport class IsomorphicDRM {\n private static clockSkewSeconds = 0.0;\n\n static adjClockSkewSeconds(skewSeconds: number) {\n IsomorphicDRM.clockSkewSeconds += skewSeconds;\n }\n\n static getUnixTimestamp(): number {\n return Date.now() / 1000 + IsomorphicDRM.clockSkewSeconds;\n }\n\n static parseRfc2616Date(date: string): number | null {\n try {\n return new Date(date).getTime() / 1000;\n } catch (e) {\n return null;\n }\n }\n\n static handleClientResponseError(response: Response | { status: number; headers: Record<string, string> }) {\n let serverDate: string | null = null;\n\n if ('headers' in response && typeof response.headers === 'object') {\n if ('get' in response.headers && typeof response.headers.get === 'function') {\n // Fetch Response object\n serverDate = response.headers.get(\"date\");\n } else {\n // Plain object with headers\n const headers = response.headers as Record<string, string>;\n serverDate = headers[\"date\"] || headers[\"Date\"];\n }\n }\n\n if (!serverDate) {\n throw new SkewAdjustmentError(\"No server date in headers.\");\n }\n const serverDateParsed = IsomorphicDRM.parseRfc2616Date(serverDate);\n if (serverDateParsed === null) {\n throw new SkewAdjustmentError(`Failed to parse server date: ${serverDate}`);\n }\n const clientDate = IsomorphicDRM.getUnixTimestamp();\n IsomorphicDRM.adjClockSkewSeconds(serverDateParsed - clientDate);\n }\n\n static async generateSecMsGec(): Promise<string> {\n let ticks = IsomorphicDRM.getUnixTimestamp();\n ticks += WIN_EPOCH;\n ticks -= ticks % 300;\n ticks *= S_TO_NS / 100;\n\n const strToHash = `${ticks.toFixed(0)}${TRUSTED_CLIENT_TOKEN}`;\n\n const crypto = getCrypto();\n if (!crypto || !crypto.subtle) {\n throw new Error('Crypto API not available');\n }\n\n const encoder = new TextEncoder();\n const data = encoder.encode(strToHash);\n const hashBuffer = await crypto.subtle.digest('SHA-256', data);\n const hashArray = Array.from(new Uint8Array(hashBuffer));\n return hashArray.map(b => b.toString(16).padStart(2, '0')).join('').toUpperCase();\n }\n} ","import {\n calcMaxMesgSize,\n connectId,\n dateToString,\n escape,\n getHeadersAndDataFromBinary,\n getHeadersAndDataFromText,\n mkssml,\n removeIncompatibleChar