@duyquangnvx/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 • 89.3 kB
Source Map (JSON)
{"version":3,"sources":["../src/browser.ts","../src/browser-utils.ts","../src/exceptions.ts","../src/tts_config.ts","../src/constants.ts","../src/browser-drm.ts","../src/browser-communicate.ts","../src/browser-simple.ts","../src/browser-voices.ts","../src/submaker.ts"],"names":["WIN_EPOCH","S_TO_NS"],"mappings":"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","file":"browser.cjs","sourcesContent":["/**\n * Browser-compatible version of edge-tts Simple API\n * Uses native browser APIs instead of Node.js dependencies\n */\n\n/**\n * Options for controlling the voice prosody (rate, pitch, volume).\n */\nexport interface ProsodyOptions {\n /**\n * The speaking rate of the voice.\n * Examples: \"+10.00%\", \"-20.00%\"\n */\n rate?: string;\n /**\n * The speaking volume of the voice.\n * Examples: \"+15.00%\", \"-10.00%\"\n */\n volume?: string;\n /**\n * The speaking pitch of the voice.\n * Examples: \"+20Hz\", \"-10Hz\"\n */\n pitch?: string;\n}\n\n/**\n * Represents a single word boundary with its timing and text.\n * The API provides timing in 100-nanosecond units.\n */\nexport interface WordBoundary {\n /**\n * The offset from the beginning of the audio stream in 100-nanosecond units.\n */\n offset: number;\n /**\n * The duration of the word in 100-nanosecond units.\n */\n duration: number;\n /**\n * The text of the spoken word.\n */\n text: string;\n}\n\n/**\n * The final result of the synthesis process.\n */\nexport interface SynthesisResult {\n /**\n * The generated audio as a Blob, which can be used in an <audio> element.\n */\n audio: Blob;\n /**\n * An array of word boundaries containing timing and text for creating subtitles.\n */\n subtitle: WordBoundary[];\n}\n\n/**\n * Browser-compatible Edge TTS class that uses native browser APIs.\n * \n * @remarks This uses an undocumented Microsoft API. CORS policy may prevent\n * direct usage from web apps. Consider using a proxy server.\n */\nexport class EdgeTTSBrowser {\n public text: string;\n public voice: string;\n public rate: string;\n public volume: string;\n public pitch: string;\n\n private ws: WebSocket | null = null;\n private readonly WSS_URL = \"wss://speech.platform.bing.com/consumer/speech/synthesize/readaloud/edge/v1\";\n private readonly TRUSTED_CLIENT_TOKEN = \"6A5AA1D4EAFF4E9FB37E23D68491D6F4\";\n\n /**\n * @param text The text to be synthesized.\n * @param voice The voice to use for synthesis.\n * @param options Prosody options (rate, volume, pitch).\n */\n constructor(\n text: string,\n voice = \"Microsoft Server Speech Text to Speech Voice (en-US, EmmaMultilingualNeural)\",\n options: ProsodyOptions = {}\n ) {\n this.text = text;\n this.voice = voice;\n this.rate = options.rate || \"+0%\";\n this.volume = options.volume || \"+0%\";\n this.pitch = options.pitch || \"+0Hz\";\n }\n\n /**\n * Initiates the synthesis process.\n * @returns A promise that resolves with the synthesized audio and subtitle data.\n */\n public async synthesize(): Promise<SynthesisResult> {\n await this.connect();\n\n if (!this.ws || this.ws.readyState !== WebSocket.OPEN) {\n throw new Error(\"WebSocket is not connected.\");\n }\n\n this.ws.send(this.createSpeechConfig());\n this.ws.send(this.createSSML());\n\n return new Promise((resolve, reject) => {\n const audioChunks: Uint8Array[] = [];\n let wordBoundaries: WordBoundary[] = [];\n\n if (this.ws) {\n this.ws.onmessage = (event: MessageEvent) => {\n if (typeof event.data === \"string\") {\n // Text message\n const { headers, body } = this.parseMessage(event.data);\n if (headers.Path === \"audio.metadata\") {\n try {\n const metadata = JSON.parse(body);\n if (metadata.Metadata && Array.isArray(metadata.Metadata)) {\n const boundaries = metadata.Metadata\n .filter((item: any) => item.Type === \"WordBoundary\" && item.Data)\n .map((item: any) => ({\n offset: item.Data.Offset,\n duration: item.Data.Duration,\n text: item.Data.text.Text,\n }));\n wordBoundaries = wordBoundaries.concat(boundaries);\n }\n } catch (e) {\n // Ignore JSON parsing errors for metadata\n }\n } else if (headers.Path === \"turn.end\") {\n if (this.ws) this.ws.close();\n }\n } else if (event.data instanceof Blob) {\n // Binary audio message\n event.data.arrayBuffer().then(arrayBuffer => {\n const dataView = new DataView(arrayBuffer);\n const headerLength = dataView.getUint16(0);\n\n if (arrayBuffer.byteLength > headerLength + 2) {\n const audioData = new Uint8Array(arrayBuffer, headerLength + 2);\n audioChunks.push(audioData);\n }\n });\n }\n };\n\n this.ws.onclose = () => {\n // TS 5.5+ requires BlobPart views to be ArrayBuffer-backed.\n // Our chunks are Uint8Array; cast them for type compatibility.\n const audioBlob = new Blob(\n audioChunks as unknown as ArrayBufferView<ArrayBuffer>[],\n { type: \"audio/mpeg\" }\n );\n resolve({ audio: audioBlob, subtitle: wordBoundaries });\n };\n\n this.ws.onerror = (error) => {\n reject(error);\n };\n }\n });\n }\n\n /**\n * Establishes a connection to the WebSocket server.\n */\n private connect(): Promise<void> {\n const connectionId = this.generateConnectionId();\n const secMsGec = this.generateSecMsGec();\n const url = `${this.WSS_URL}?TrustedClientToken=${this.TRUSTED_CLIENT_TOKEN}&ConnectionId=${connectionId}&Sec-MS-GEC=${secMsGec}&Sec-MS-GEC-Version=1-130.0.2849.68`;\n\n this.ws = new WebSocket(url);\n\n return new Promise((resolve, reject) => {\n if (!this.ws) {\n return reject(new Error(\"WebSocket not initialized\"));\n }\n this.ws.onopen = () => {\n resolve();\n };\n this.ws.onerror = (error) => {\n reject(error);\n };\n });\n }\n\n /**\n * Parses a string message from the WebSocket into headers and a body.\n */\n private parseMessage(message: string): { headers: Record<string, string>; body: string } {\n const parts = message.split(\"\\r\\n\\r\\n\");\n const headerLines = parts[0].split(\"\\r\\n\");\n const headers: Record<string, string> = {};\n headerLines.forEach(line => {\n const [key, value] = line.split(\":\", 2);\n if (key && value) {\n headers[key.trim()] = value.trim();\n }\n });\n return { headers, body: parts[1] || '' };\n }\n\n /**\n * Creates the speech configuration message.\n */\n private createSpeechConfig(): string {\n const config = {\n context: {\n synthesis: {\n audio: {\n metadataoptions: {\n sentenceBoundaryEnabled: false,\n wordBoundaryEnabled: true,\n },\n outputFormat: \"audio-24khz-48kbitrate-mono-mp3\",\n },\n },\n },\n };\n return `X-Timestamp:${this.getTimestamp()}\\r\\nContent-Type:application/json; charset=utf-8\\r\\nPath:speech.config\\r\\n\\r\\n${JSON.stringify(config)}`;\n }\n\n /**\n * Creates the SSML (Speech Synthesis Markup Language) message.\n */\n private createSSML(): string {\n const ssml = `<speak version='1.0' xmlns='http://www.w3.org/2001/10/synthesis' xml:lang='en-US'>\n <voice name='${this.voice}'>\n <prosody pitch='${this.pitch}' rate='${this.rate}' volume='${this.volume}'>\n ${this.escapeXml(this.text)}\n </prosody>\n </voice>\n </speak>`;\n return `X-RequestId:${this.generateConnectionId()}\\r\\nContent-Type:application/ssml+xml\\r\\nX-Timestamp:${this.getTimestamp()}Z\\r\\nPath:ssml\\r\\n\\r\\n${ssml}`;\n }\n\n private generateConnectionId(): string {\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, (c) => {\n const r = (Math.random() * 16) | 0;\n const v = c === \"x\" ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n }\n\n private getTimestamp(): string {\n return new Date().toISOString().replace(/[:-]|\\.\\d{3}/g, \"\");\n }\n\n private escapeXml(text: string): string {\n return text.replace(/[<>&'\"]/g, (char) => {\n switch (char) {\n case \"<\": return \"<\";\n case \">\": return \">\";\n case \"&\": return \"&\";\n case \"'\": return \"'\";\n case '\"': return \""\";\n default: return char;\n }\n });\n }\n\n /**\n * Browser-compatible version of DRM security token generation\n * Uses Web Crypto API instead of Node.js crypto\n */\n private async generateSecMsGec(): Promise<string> {\n const WIN_EPOCH = 11644473600;\n const S_TO_NS = 1e9;\n\n let ticks = Date.now() / 1000;\n ticks += WIN_EPOCH;\n ticks -= ticks % 300;\n ticks *= S_TO_NS / 100;\n\n const strToHash = `${ticks.toFixed(0)}${this.TRUSTED_CLIENT_TOKEN}`;\n\n // Use Web Crypto API for hashing\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}\n\n// ==================================================================================\n// Subtitle Generation Utilities (Browser Compatible)\n// ==================================================================================\n\n/**\n * Formats a time value from 100-nanosecond units into a VTT or SRT timestamp string.\n */\nfunction formatTimestamp(timeIn100ns: number, format: 'vtt' | 'srt'): string {\n const totalSeconds = Math.floor(timeIn100ns / 10000000);\n const hours = Math.floor(totalSeconds / 3600);\n const minutes = Math.floor((totalSeconds % 3600) / 60);\n const seconds = totalSeconds % 60;\n const milliseconds = Math.floor((timeIn100ns % 10000000) / 10000);\n const separator = format === 'vtt' ? '.' : ',';\n return `${padNumber(hours)}:${padNumber(minutes)}:${padNumber(seconds)}${separator}${padNumber(milliseconds, 3)}`;\n}\n\n/**\n * Pads a number with leading zeros to a specified length.\n */\nfunction padNumber(num: number, length = 2): string {\n return num.toString().padStart(length, '0');\n}\n\n/**\n * Creates a subtitle file content in VTT (WebVTT) format.\n */\nexport function createVTT(wordBoundaries: WordBoundary[]): string {\n let vttContent = \"WEBVTT\\n\\n\";\n wordBoundaries.forEach((word, index) => {\n const startTime = formatTimestamp(word.offset, 'vtt');\n const endTime = formatTimestamp(word.offset + word.duration, 'vtt');\n vttContent += `${index + 1}\\n`;\n vttContent += `${startTime} --> ${endTime}\\n`;\n vttContent += `${word.text}\\n\\n`;\n });\n return vttContent;\n}\n\n/**\n * Creates a subtitle file content in SRT (SubRip) format.\n */\nexport function createSRT(wordBoundaries: WordBoundary[]): string {\n let srtContent = \"\";\n wordBoundaries.forEach((word, index) => {\n const startTime = formatTimestamp(word.offset, 'srt');\n const endTime = formatTimestamp(word.offset + word.duration, 'srt');\n srtContent += `${index + 1}\\n`;\n srtContent += `${startTime} --> ${endTime}\\n`;\n srtContent += `${word.text}\\n\\n`;\n });\n return srtContent;\n} \n","/**\n * Browser-specific utility functions that avoid Node.js dependencies.\n * Provides browser-native implementations of UUID generation and XML escaping.\n */\n\n/**\n * Generates a UUID v4 string without hyphens using browser's crypto API.\n * @returns UUID string with hyphens removed\n */\nexport function browserConnectId(): string {\n // Use crypto.getRandomValues for browser-native UUID generation\n const array = new Uint8Array(16);\n 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 * Browser-native XML escaping function.\n * @param text - Text to escape\n * @returns XML-escaped text\n */\nexport function browserEscape(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 * @param text - Text containing XML entities to unescape\n * @returns Text with XML entities converted back to their original characters\n */\nexport function browserUnescape(text: string): string {\n return text\n .replace(/"/g, '\"')\n .replace(/'/g, \"'\")\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/&/g, '&'); // Do & last to avoid double unescaping\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 browserRemoveIncompatibleCharacters(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 * Formats the current date as a string in the format expected by the TTS service.\n * @returns Formatted date string\n */\nexport function browserDateToString(): string {\n return new Date().toUTCString().replace(\"GMT\", \"GMT+0000 (Coordinated Universal Time)\");\n}\n\n/**\n * Creates SSML (Speech Synthesis Markup Language) from text and voice configuration.\n * @param voice - Voice name\n * @param rate - Speech rate (e.g., \"+0%\")\n * @param volume - Speech volume (e.g., \"+0%\") \n * @param pitch - Speech pitch (e.g., \"+0Hz\")\n * @param escapedText - Text content (should be XML-escaped)\n * @returns Complete SSML document string\n */\nexport function browserMkssml(voice: string, rate: string, volume: string, pitch: string, escapedText: string): string {\n return (\n \"<speak version='1.0' xmlns='http://www.w3.org/2001/10/synthesis' xml:lang='en-US'>\"\n + `<voice name='${voice}'>`\n + `<prosody pitch='${pitch}' rate='${rate}' volume='${volume}'>`\n + `${escapedText}`\n + \"</prosody>\"\n + \"</voice>\"\n + \"</speak>\"\n );\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 browserSsmlHeadersPlusData(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 voice - Voice name\n * @param rate - Speech rate\n * @param volume - Speech volume\n * @param pitch - Speech pitch\n * @returns Maximum byte size for text content in a single message\n */\nexport function browserCalcMaxMesgSize(voice: string, rate: string, volume: string, pitch: string): number {\n const websocketMaxSize = 2 ** 16;\n const overheadPerMessage = browserSsmlHeadersPlusData(\n browserConnectId(),\n browserDateToString(),\n browserMkssml(voice, rate, volume, pitch, \"\"),\n ).length + 50; // margin of error\n return websocketMaxSize - overheadPerMessage;\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 t