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 • 77.5 kB
Source Map (JSON)
{"version":3,"sources":["../src/isomorphic-utils.ts","../src/exceptions.ts","../src/tts_config.ts","../src/constants.ts","../src/isomorphic-drm.ts","../src/isomorphic-communicate.ts","../src/isomorphic-voices.ts","../src/isomorphic-simple.ts","../src/submaker.ts","../src/webworker-entry.ts"],"names":[],"mappings":"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","file":"webworker.cjs","sourcesContent":["/**\n * Isomorphic utilities that work in both Node.js and browsers using only Web APIs.\n * This module provides browser-compatible implementations without Node.js dependencies.\n */\n\nimport { TTSConfig } from './tts_config';\nimport { ValueError } from \"./exceptions\";\n\n/**\n * Generates a UUID v4 string without hyphens using Web Crypto API.\n * Works in both Node.js (with globalThis.crypto) and browsers.\n */\nexport function connectId(): string {\n // Use Web Crypto API available in both Node.js 16+ and all modern browsers\n const array = new Uint8Array(16);\n globalThis.crypto.getRandomValues(array);\n\n // Set version (4) and variant bits according to RFC 4122\n array[6] = (array[6] & 0x0f) | 0x40;\n array[8] = (array[8] & 0x3f) | 0x80;\n\n // Convert to hex string and format as UUID, then remove hyphens\n const hex = Array.from(array, byte => byte.toString(16).padStart(2, '0')).join('');\n const uuid = `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20, 32)}`;\n\n return uuid.replace(/-/g, '');\n}\n\n/**\n * Web-native XML escaping function.\n */\nexport function escape(text: string): string {\n return text\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n}\n\n/**\n * Unescapes XML entities in text.\n */\nexport function unescape(text: string): string {\n return text\n .replace(/"/g, '\"')\n .replace(/'/g, \"'\")\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/&/g, '&');\n}\n\n/**\n * Parses text-based WebSocket messages to extract headers and data.\n * Uses Uint8Array for universal compatibility.\n */\nexport function getHeadersAndDataFromText(message: Uint8Array): [{ [key: string]: string }, Uint8Array] {\n const messageString = new TextDecoder().decode(message);\n const headerEndIndex = messageString.indexOf('\\r\\n\\r\\n');\n\n const headers: { [key: string]: string } = {};\n if (headerEndIndex !== -1) {\n const headerString = messageString.substring(0, headerEndIndex);\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 const headerByteLength = new TextEncoder().encode(messageString.substring(0, headerEndIndex + 4)).length;\n return [headers, message.slice(headerByteLength)];\n}\n\n/**\n * Parses binary WebSocket messages to extract headers and data.\n * Uses Uint8Array for universal compatibility.\n */\nexport function getHeadersAndDataFromBinary(message: Uint8Array): [{ [key: string]: string }, Uint8Array] {\n if (message.length < 2) {\n throw new Error('Message too short to contain header length');\n }\n\n const headerLength = (message[0] << 8) | message[1]; // Read big-endian uint16\n const headers: { [key: string]: string } = {};\n\n if (headerLength > 0 && headerLength + 2 <= message.length) {\n const headerBytes = message.slice(2, headerLength + 2);\n const headerString = new TextDecoder().decode(headerBytes);\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.slice(headerLength + 2)];\n}\n\n/**\n * Converts a date to the expected string format for WebSocket messages.\n */\nexport function dateToString(date?: Date): string {\n if (!date) {\n date = new Date();\n }\n return date.toISOString().replace(/[-:.]/g, '').slice(0, -1);\n}\n\n/**\n * Removes characters that are incompatible with SSML.\n * Preserves essential punctuation (.?;:!,) for natural speech pauses.\n * XML special characters (&<>\"') are handled by the escape() function.\n */\nexport function removeIncompatibleCharacters(str: string): string {\n // Keep essential punctuation for natural speech: .?;:!,\n // Remove characters that could break SSML structure or cause parsing issues\n const chars_to_remove = \"*/()[]{}$%^@#+=|\\\\~`><\\\"&\";\n let clean_str = str;\n for (const char of chars_to_remove) {\n clean_str = clean_str.replace(new RegExp('\\\\' + char, 'g'), '');\n }\n return clean_str;\n}\n\n/**\n * Creates SSML from TTS configuration and text.\n * Compatible with original mkssml function signature.\n */\nexport function mkssml(tc: TTSConfig, escapedText: string | Uint8Array): string {\n const text = escapedText instanceof Uint8Array ? new TextDecoder().decode(escapedText) : 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 * Splits text by byte length while respecting word boundaries.\n */\nexport function splitTextByByteLength(text: string, byteLength: number): string[] {\n const encoder = new TextEncoder();\n const words = text.split(/(\\s+)/); // Split by whitespace but keep delimiters\n const chunks: string[] = [];\n let currentChunk = \"\";\n\n for (const word of words) {\n const potentialChunk = currentChunk + word;\n if (encoder.encode(potentialChunk).length <= byteLength) {\n currentChunk = potentialChunk;\n } else {\n if (currentChunk) {\n chunks.push(currentChunk.trim());\n currentChunk = word;\n } else {\n // Single word is longer than byteLength, split it\n const wordBytes = encoder.encode(word);\n for (let i = 0; i < wordBytes.length; i += byteLength) {\n const slice = wordBytes.slice(i, i + byteLength);\n chunks.push(new TextDecoder().decode(slice));\n }\n currentChunk = \"\";\n }\n }\n }\n\n if (currentChunk.trim()) {\n chunks.push(currentChunk.trim());\n }\n\n return chunks;\n}\n\n/**\n * Calculates the maximum message size based on configuration.\n */\nexport function calcMaxMesgSize(voiceConfig: TTSConfig): number {\n // Use a fixed maximum size as configured in recent commits\n return 4096;\n}\n\n/**\n * Creates SSML headers plus data for WebSocket communication.\n */\nexport function ssmlHeadersPlusData(requestId: string, timestamp: string, ssml: string): string {\n return `X-RequestId:${requestId}\\r\\nContent-Type:application/ssml+xml\\r\\nX-Timestamp:${timestamp}Z\\r\\nPath:ssml\\r\\n\\r\\n${ssml}`;\n}","/**\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 { 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}; ","import { TRUSTED_CLIENT_TOKEN } from './constants';\nimport { SkewAdjustmentError } from \"./exceptions\";\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: { status: number; headers: any }) {\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 // Use Web Crypto API directly - available in both Node.js 16+ and browsers\n if (!globalThis.crypto || !globalThis.crypto.subtle) {\n throw new Error('Web Crypto API not available');\n }\n\n const encoder = new TextEncoder();\n const data = encoder.encode(strToHash);\n const hashBuffer = await globalThis.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 connectId,\n dateToString,\n escape,\n mkssml,\n removeIncompatibleCharacters,\n splitTextByByteLength,\n ssmlHeadersPlusData,\n unescape\n} from './isomorphic-utils';\nimport {\n NoAudioReceived,\n UnexpectedResponse,\n UnknownResponse,\n WebSocketError\n} from \"./exceptions\";\nimport { TTSConfig } from './tts_config';\nimport { DEFAULT_VOICE, WSS_URL, SEC_MS_GEC_VERSION, WSS_HEADERS } from './constants';\nimport { IsomorphicDRM } from './isomorphic-drm';\n\n// Isomorphic buffer handling - works in both Node.js and browsers\nconst IsomorphicBuffer = {\n from: (input: string | ArrayBuffer | Uint8Array, encoding?: string): Uint8Array => {\n if (typeof input === 'string') {\n return new TextEncoder().encode(input);\n } else if (input instanceof ArrayBuffer) {\n return new Uint8Array(input);\n } else if (input instanceof Uint8Array) {\n return input;\n }\n throw new Error('Unsupported input type for IsomorphicBuffer.from');\n },\n\n concat: (arrays: Uint8Array[]): Uint8Array => {\n const totalLength = arrays.reduce((sum, arr) => sum + arr.length, 0);\n const result = new Uint8Array(totalLength);\n let offset = 0;\n for (const arr of arrays) {\n result.set(arr, offset);\n offset += arr.length;\n }\n return result;\n },\n\n isBuffer: (obj: any): obj is Uint8Array => {\n return obj instanceof Uint8Array;\n },\n\n toString: (buffer: Uint8Array, encoding?: string): string => {\n return new TextDecoder(encoding || 'utf-8').decode(buffer);\n }\n};\n\n// Isomorphic versions of utility functions that handle both Buffer and Uint8Array\nfunction isomorphicGetHeadersAndDataFromText(message: Uint8Array): [{ [key: string]: string }, Uint8Array] {\n const messageString = IsomorphicBuffer.toString(message);\n const headerEndIndex = messageString.indexOf('\\r\\n\\r\\n');\n\n const headers: { [key: string]: string } = {};\n if (headerEndIndex !== -1) {\n const headerString = messageString.substring(0, headerEndIndex);\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 const headerByteLength = new TextEncoder().encode(messageString.substring(0, headerEndIndex + 4)).length;\n return [headers, message.slice(headerByteLength)];\n}\n\nfunction isomorphicGetHeadersAndDataFromBinary(message: Uint8Array): [{ [key: string]: string }, Uint8Array] {\n if (message.length < 2) {\n throw new Error('Message too short to contain header length');\n }\n\n const headerLength = (message[0] << 8) | message[1]; // Read big-endian uint16\n const headers: { [key: string]: string } = {};\n\n if (headerLength > 0 && headerLength + 2 <= message.length) {\n const headerBytes = message.slice(2, headerLength + 2);\n const headerString = IsomorphicBuffer.toString(headerBytes);\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.slice(headerLength + 2)];\n}\n\n// Isomorphic state interface using Uint8Array\ninterface IsomorphicCommunicateState {\n partialText: Uint8Array;\n offsetCompensation: number;\n lastDurationOffset: number;\n streamWasCalled: boolean;\n}\n\n// Isomorphic TTSChunk type using Uint8Array\ninterface IsomorphicTTSChunk {\n type: \"audio\" | \"WordBoundary\";\n data?: Uint8Array;\n duration?: number;\n offset?: number;\n text?: string;\n}\n\n/**\n * Configuration options for the isomorphic Communicate class.\n */\nexport interface IsomorphicCommunicateOptions {\n /** Voice to use for synthesis (e.g., \"en-US-EmmaMultilingualNeural\") */\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 /** Proxy URL for requests (Node.js only) */\n proxy?: string;\n /** WebSocket connection timeout in milliseconds */\n connectionTimeout?: number;\n}\n\n/**\n * Isomorphic Communicate class that works in both Node.js and browsers.\n * Uses isomorphic packages to provide consistent functionality across environments.\n * \n * @example\n * ```typescript\n * // Works in both Node.js and browsers (with CORS considerations)\n * const communicate = new IsomorphicCommunicate('Hello, world!', {\n * voice: 'en-US-EmmaMultilingualNeural',\n * });\n * \n * for await (const chunk of communicate.stream()) {\n * if (chunk.type === 'audio' && chunk.data) {\n * // Handle audio data\n * }\n * }\n * ```\n */\nexport class IsomorphicCommunicate {\n private readonly ttsConfig: TTSConfig;\n private readonly texts: Generator<Uint8Array>;\n // Universal build - proxy and environment detection removed for compatibility\n\n private state: IsomorphicCommunicateState = {\n partialText: IsomorphicBuffer.from(''),\n offsetCompensation: 0,\n lastDurationOffset: 0,\n streamWasCalled: false,\n };\n\n /**\n * Creates a new isomorphic Communicate instance for text-to-speech synthesis.\n * \n * @param text - The text to synthesize\n * @param options - Configuration options for synthesis\n */\n constructor(text: string, options: IsomorphicCommunicateOptions = {}) {\n this.ttsConfig = new TTSConfig({\n voice: options.voice || DEFAULT_VOICE,\n rate: options.rate,\n volume: options.volume,\n pitch: options.pitch,\n });\n\n if (typeof text !== 'string') {\n throw new TypeError('text must be a s