From 35f7b0b90b8f304d7ae550ec16bdb063303c7e5b Mon Sep 17 00:00:00 2001 From: Hongbo Wu Date: Mon, 26 Sep 2022 17:47:40 +0800 Subject: [PATCH] Do not breaking on words and bookmarks --- packages/text-to-speech/src/textToSpeech.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) 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) {