diff --git a/packages/text-to-speech/src/htmlToSsml.ts b/packages/text-to-speech/src/htmlToSsml.ts
index 0f771303b..60f68737c 100644
--- a/packages/text-to-speech/src/htmlToSsml.ts
+++ b/packages/text-to-speech/src/htmlToSsml.ts
@@ -252,6 +252,11 @@ export const htmlToSsmlItems = (
return items
}
+const stripEmojis = (text: string): string => {
+ const emojiRegex = /[\u{1F600}-\u{1F64F}]/gu
+ return text.replace(emojiRegex, '').replace(/\s+/g, ' ').trim()
+}
+
const textToUtterance = ({
tokenizer,
idx,
@@ -267,7 +272,7 @@ const textToUtterance = ({
voice?: string
isHtml?: boolean
}): Utterance => {
- const text = textItems.join('')
+ const text = stripEmojis(textItems.join(''))
const plainText = isHtml ? htmlToText(text, { wordwrap: false }) : text
const wordCount = tokenizer.tokenize(plainText).length
return {