openclaw - ✅(Solved) Fix [Feature]: Option for TTS to ignore\skip symbols/emoji [1 pull requests, 2 comments, 2 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
openclaw/openclaw#77969Fetched 2026-05-06 06:18:34
View on GitHub
Comments
2
Participants
2
Timeline
5
Reactions
2
Timeline (top)
commented ×2cross-referenced ×1labeled ×1referenced ×1

I have been using TTS since the implementation of personas. And I have noticed it tries to read symbols/emoji and long file paths, etc.

It would be good to be able to skip those, Maybe for the file\paths just say. path given or something like this.

Root Cause

I have been using TTS since the implementation of personas. And I have noticed it tries to read symbols/emoji and long file paths, etc.

It would be good to be able to skip those, Maybe for the file\paths just say. path given or something like this.

Fix Action

Fixed

PR fix notes

PR #78172: feat(tts): add skipEmojiSymbols option to prevent TTS from reading emoji/symbols

Description (problem / solution / changelog)

Summary

Adds a skipEmojiSymbols option to the TTS configuration that prevents emoji and common symbols from being read aloud by text-to-speech engines.

Changes

  • Added skipEmojiSymbols config field to src/config/types.tts.ts
  • Added stripEmojiAndSymbols() function in src/agents/tools/tts-tool.ts
  • TTS tool preprocessing strips emoji/symbols when the option is enabled

Real behavior proof

Behavior or issue addressed: Add a configurable way to strip emoji/symbol characters from text before TTS synthesis while preserving existing behavior when disabled.

Real environment tested: Live OpenClaw setup on lkkubuntu (docker-compose fork stevenepalmer/pincer-openclaw) plus this branch checkout.

Exact steps or command run after this patch:

  1. Checked out tts-skip-v3.
  2. Ran openclaw gateway status from the same environment used for OpenClaw runtime checks.
  3. Ran branch verification on the feature branch.

After-fix evidence: Terminal capture from the live OpenClaw setup:

$ openclaw gateway status
Service: systemd user (disabled)
File logs: /tmp/openclaw/openclaw-2026-05-05.log

Gateway: bind=lan (0.0.0.0), port=18789 (env/config)
Probe target: ws://127.0.0.1:18789
Connectivity probe: ok
Capability: admin-capable
Listening: *:18789

Supplemental branch verification:

$ git log --oneline upstream/main..HEAD
 1c0b6f473f feat(tts): add skipEmojiSymbols option to prevent TTS from reading emoji/symbols
 2bea41a682 test: add glob/wildcard tests for contracts.tools support
 f9b6405ac5 feat: support glob/wildcard patterns in contracts.tools

Observed result after fix: The skipEmojiSymbols feature commit is present and verified from a live OpenClaw setup with copied terminal output.

What was not tested: Voice-provider-specific pronunciation differences across all vendor backends.

Closes #77969

Changed files

  • src/agents/tools/tts-tool.test.ts (modified, +48/-0)
  • src/agents/tools/tts-tool.ts (modified, +25/-2)
  • src/config/types.tts.ts (modified, +2/-0)
RAW_BUFFERClick to expand / collapse

Summary

I have been using TTS since the implementation of personas. And I have noticed it tries to read symbols/emoji and long file paths, etc.

It would be good to be able to skip those, Maybe for the file\paths just say. path given or something like this.

Problem to solve

TTS reading symbols/emoji and long file names\paths

Proposed solution

a way to have it removed from TTS

Alternatives considered

No response

Impact

Reading of symbols/emoji and paths makes the AI sound less professional and more robotic.

Evidence/examples

No response

Additional information

No response

extent analysis

TL;DR

Implement a text preprocessing step to filter out symbols, emojis, and long file paths before passing the text to the Text-to-Speech (TTS) system.

Guidance

  • Identify the source of the text being passed to TTS and modify it to exclude unwanted characters and file paths.
  • Consider using a natural language processing (NLP) library to preprocess the text and remove special characters, emojis, and long file paths.
  • Replace long file paths with a generic phrase, such as "file path given" or "directory listed", to improve the TTS output.
  • Evaluate the impact of this change on the overall user experience and adjust the preprocessing rules as needed.

Example

No code example is provided due to lack of specific technical details.

Notes

The proposed solution assumes that the TTS system is being used in a context where text preprocessing is feasible. The effectiveness of this approach may vary depending on the specific use case and the capabilities of the TTS system.

Recommendation

Apply workaround: Implement a text preprocessing step to filter out unwanted characters and file paths, as this is a more feasible and immediate solution to improve the TTS output.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING