diff --git a/packages/text-to-speech/src/textToSpeech.ts b/packages/text-to-speech/src/textToSpeech.ts index 5b35aae48..1da109085 100644 --- a/packages/text-to-speech/src/textToSpeech.ts +++ b/packages/text-to-speech/src/textToSpeech.ts @@ -139,11 +139,12 @@ export const synthesizeTextToSpeech = async ( } // for ssml let audioData: Buffer = Buffer.from([]) - // split ssml into chunks of 200 characters to stream faster - const ssmlChunks = input.text.match(/.{1,200}/g) - // TODO: not split on words and bookmarks + // split ssml into chunks of 2000 characters to stream faster + // both within limit & without breaking on words and bookmarks + const ssmlChunks = input.text.match(/.{1,2000}(?= |$)(?! mark=)/g) if (ssmlChunks) { for (const ssmlChunk of ssmlChunks) { + console.log('ssmlChunk', ssmlChunk) const ssml = `${startSsml(ssmlOptions)}${ssmlChunk}${endSsml()}` const result = await speakSsmlAsyncPromise(ssml) if (result.reason === ResultReason.Canceled) {