This topic describes how to filter certain content from being vocalized in agent responses. This ensures natural and human-like conversations.
Feature introduction
Agent responses may contain auxiliary text that you prefer the agent not to vocalize. This includes action instructions ("Straighten the tie"), status markers ("Thinking..."), and session termination markers ("End of the answer").
To meet this need, the text-to-speech (TTS) node supports filtering content enclosed within the following symbols:
Full-width parentheses()
Half-width parentheses ()
Full-width square brackets【】
Half-width square brackets []
Curly braces {}
As the responses may contain one or more of these symbols, you can add multiple filters in the TTS node. Note the following:
When there are nested parentheses or brackets, the TTS node filters the entire text within the outermost pair.
When the specified parentheses or brackets are asymmetrical or used incorrectly in a response, the TTS node does not apply the filtering.
Configure filters in the console
Go to the Real-time Workflow Template page in the console and select the workflow you want to manage.
On the workflow details page, click Modify in the upper-right corner.
Select the Text-to-speech node. Configure the Filter parameter to choose the symbols you want to filter.

Click Save.
Example of filtering effect
Assume the specified filters are half-width square brackets [] and curly braces {}:
- User: The weather is nice today.
- Displayed text: {{emotion=neutral}} Yes, it's sunny.
- Vocalized content: Yes, it's sunny.
- User: How's the weather today?
- Displayed text: [smiling] The weather is good today (waving hand).
- Vocalized content: The weather is good today (waving hand).Only content enclosed within the specified symbols is filtered out. Other symbols, such as "(waving hand)" in this example, remain part of the voice output.