Lingo Echo – Your Multilingual Twitch Chat Assistant
Lingo Echo is a Twitch bot that automatically translates chat messages into your preferred language.
Looking for streamers interested in testing a translation bot for their Twitch streams. Have you ever had a viewer start
chatting in a language you don’t understand? This bot is designed to solve that problem. It will quietly chill in your
stream until a message needs to be translated.
nothing_is_not_taken — 19/04/2025 22:40
Added an option to ignore (not translate) specific languages to prevent the bot from posting too much. For example,
if you stream in English and German and want to translate all messages that are not in English or German into English,
you can now do it using "Advanced options".
Messages with 3 letters or fewer – translating such short words is often not useful (e.g., afk, brb, etc.)
Emote-only messages
URL link-only messages
Messages starting with "!" or "#" – these are often used for giveaways and could trigger bot spam
Gibberish or meaningless words – previously, the bot would respond that the word doesn't mean anything in any language
Messages that are rude or toxic – this may be reverted or managed differently in future versions to assist
moderating rude or toxic messages in foreign languages mods might not understand
(I am still not sure what I want to do with that.)
nothing_is_not_taken — 20/04/2025 11:47
Added a simulator to the project's web site.
nothing_is_not_taken — 21/04/2025 12:56
Update 21.04:
Fixed a bug where very large messages sometimes failed to translate
Decreased latency by optimizing the code
nothing_is_not_taken — 21/04/2025 14:15
Added a variety of downloadable banners streamers can use on their Twitch page.
nothing_is_not_taken — 21/04/2025 17:22
Implemented handling for an edge case where Lingo_Echo might appear in multiple active streams simultaneously
(e.g., raids, co-streams, guest appearances), preventing duplicate translation messages.
nothing_is_not_taken — 21/04/2025 18:02
Started counting the number of streamers who install the bot, as well as the total number of messages that required translation. Numbers displayed on the web site. Note: Feature removed.
Update 22.04: Fixed a bug that prevented Cyrillic messages from being translated.
nothing_is_not_taken — 22/04/2025 22:33
Update 22.04: Anonymized logging implemented.
Logging is only occasionally used when necessary for troubleshooting. In production usage, messages are stored only until translated.
[2025-04-22T20:27:18.887Z]: "Tünaydın"
Status: Translated
Language Detected: Turkish
Translation: Good afternoon
Sent: true
[2025-04-22T20:27:37.743Z]: "午安"
Status: Translated
Language Detected: Chinese
Translation: Good afternoon
Sent: true
[2025-04-22T20:27:51.150Z]: "शुभ दोपहर"
Status: Translated
Language Detected: Hindi
Translation: Good afternoon
Sent: true
[2025-04-22T20:28:06.949Z]: "Добар дан"
Status: Translated
Language Detected: Serbian
Translation: Good afternoon
Sent: true
nothing_is_not_taken — 28/04/2025 14:16
Update 28.04:
Adjusted the format of translated messages to display a global emote and deliver the translation in [brackets]. This highlights the fact the text originated
from a user and allows translations to be easily recognisable in chat.
Global colour for the bot set to purple.
Website updated to reflect these changes, including the simulator responses.
nothing_is_not_taken — 28/04/2025 21:12
Corrected a bug where messages containing only @username were attempted to be translated. Sometimes this led to unwanted translations.
nothing_is_not_taken — 29/04/2025 09:58
Update 29.04: A 5-second cooldown has been implemented for identical message content. Repeated messages within a short time frame do not
require separate translations. This may be adjusted or removed based on feedback.
Update 30.04: Added an option to shoutout streamers using !LingoSO @user. Initially, shoutouts are in English only.
Future versions will support shoutouts in the selected translation language.
nothing_is_not_taken — 01/05/2025 00:45
Update 01.05: Lingo shoutouts are now delivered in the selected translation language.
nothing_is_not_taken — 04/05/2025 01:04
Started counting the number of shoutouts on the web page when streamers use !lingoso @user. Note: Feature retired.
nothing_is_not_taken — 08/05/2025 00:22
Update 08.05:
Per-streamer processing queues implemented to fix concurrency issues. This avoids lost messages when multiple channels trigger translations or shoutouts at the same time.
English message detection further optimized.
nothing_is_not_taken — 10/05/2025 13:41
Update 10.05: Added per-user translation caching with customizable TTL. This reduces redundant GPT calls for repeated messages.
Cached translations are delivered but not counted in web statistics.
nothing_is_not_taken — 10/05/2025 23:11
Update 11.05:
Fixed a bug that prevented messages detected as English from being translated into other languages.
Fixed an issue where some commercial bot messages were not ignored as intended.
nothing_is_not_taken — 17/05/2025 18:41
Update 17.05: Clarified the description and purpose of advanced configuration options, as users found them unclear.
nothing_is_not_taken — 26/05/2025 14:08
Update 26.05: To prevent failures when joining large numbers of channels, a 10-second delay is now added after every 20 channel joins.
nothing_is_not_taken — 29/05/2025 01:02
Update 29.05: Fixed a bug that allowed double translations in shared chats when both streamers were using Lingo_Echo simultaneously.
Update 08.06: Implemented Franc to detect the language of messages that could not be recognized by the existing preprocessing system.
Updated logging format:
[2025-06-08T21:12:33.590Z] 📝 "ach ne doch nicht"
🔍 Reason: Skipped by Franc detection
🌐 Detected: German
💬 Translation:
📡 Sent: false
🌐 RAW Franc:
🛠️ Franc skip
[2025-06-08T21:12:36.507Z] 📝 "schade"
🔍 Reason: Skipped by Franc detection
🌐 Detected: German
💬 Translation:
📡 Sent: false
🌐 RAW Franc:
🛠️ Franc skip
nothing_is_not_taken — 13/06/2025 23:32
Update 13.06: Now correctly handles messages written with upside-down characters.
Update 18.06: Lingo_Echo is now context-aware when replying to @Lingo_Echo messages.
The bot uses recent Twitch chat activity to provide more accurate answers. This feature is experimental and may be reverted.
nothing_is_not_taken — 19/06/2025 18:46
Update 19.06: Lingo_Echo now recognizes the streamer and the current game being played.
This improves its ability to respond meaningfully when asked questions about the stream or streamer. This implementation is also experimental and may be rolled back.
nothing_is_not_taken — 20/06/2025 13:32
Update 20.06: Updated the Terms of Service and Privacy Policy at the bottom of the page on lingo-echo.eu.
nothing_is_not_taken — 20/06/2025 13:59
Bug fix: Removed a bug which caused repeating-letter messages (e.g., "aaaaaaaa") to be translated unnecessarily.
nothing_is_not_taken — 22/06/2025 00:54
Update 22.06: Lingo_Echo will now ignore messages written in Braille-style Unicode used in ASCII copypasta art.
Update 23.06: Streamers can now tell Lingo_Echo to ignore viewers by username using "Advanced Options". Bug fix: Web site remembers user's preferences and does not revert back to defaults any more.
nothing_is_not_taken — 24/06/2025 02:52
Update 24.06: The bot now joins only channels that are currently "live" and automatically leaves them when the stream ends. A 5-minute grace period is applied to avoid disconnecting due to brief stream interruptions or drops.
Minor web site changes.
nothing_is_not_taken — 26/06/2025 12:08
Update 26.06: Lingo Echo will no longer translate messages with only one character difference.
For example: Hallo → Hello.
Such messages are self-evident, and translating them seems unnecessary.
Added !LingoGA command for giveaways.
Usage:
!LingoGA OPEN — resets and opens a giveaway.
!LingoGA CLOSE — closes the giveaway and draws the winner.
nothing_is_not_taken — 27/06/2025 18:19
Update 27.06: Streamers can now turn the AI conversations with Lingo_Echo on and off.
nothing_is_not_taken — 29/06/2025 00:41
Update 29.06: The bot is now translating "said in" part of the sentence.
So, in German streams it will no longer say "@User123 said in English [Guten Tag]".
Instead it will be "@User123 sagte auf Englisch [Guten Tag]"
Implemented for French, Spanish, German and Italian streams.
nothing_is_not_taken — 06/07/2025 23:52
Update 06.07: Lingo Echo is now more “paranoid” about talking to other AI bots
and will detect and exit such conversations more quickly.
The conversation command @Lingo_Echo now also pulls the streamer's status (partner/affiliate/regular) and the number of viewers in the stream.
This slightly improves the bot’s awareness of the situation in the stream.
Update 13.07: Added support for Lingo_Echo Overlay to be added as a browser source in OBS.
So far I only added two commands to see how it works.
This feature is in early development.
Expect issues.
nothing_is_not_taken — 15/07/2025 15:46
Update 15.07: The Overlay will now react to a larger number of Twitch chat events.
Added an option to test if the overlay is working in the streaming software using the "Test" button. It will display an image and play a sound if properly installed.
Overlay feature is still in early development.
Expect issues.
Added a 1 second cooldown to conversation per user (@Lingo_Echo) to prevent the bot answering questions when shared Twitch chat is enabled.
Minor website improvements.
nothing_is_not_taken — 17/07/2025 15:22
Update 17.07: First overlay minigame added.
Triggered by !dragon.
It will output in chat even if the overlay is not installed.
Expect issues.
Up to five viewers join forces to battle a dragon, with one emerging as the legendary hero.
nothing_is_not_taken — 21/07/2025 01:08
Update 21.07: Several minor updates.
Lingo Echo now announces when it enters the stream. There is a 10h cooldown for this command.
Added new overlay animations and games.
Fixed a bug in Dragon Quest where fast !join commands from multiple users did not register.
Updated Dragon Quest graphics.
Minor overlay animation postitions and size adjustmens.
Minor updates to the web site.
Minor personality adjustments to the bot for @Lingo_Echo command.
Overlays are now out of "beta". Any such references removed.
nothing_is_not_taken — 23/07/2025 23:00
Update 23.07: Miscellaneous.
Tried to better explain overlay installation using OBS as an example. This change is visible once the streamer clicks "Connect with Twitch". I am not sure how happy I am with it. I might change it.
Added new overlay-specific commands.
Slight personality adjustments to the bot.
Optimised code to reduce latency. This was needed to keep up with the increase of concurrent users. It will require further optimisations in the future.
nothing_is_not_taken — 27/07/2025 17:15
Update 27.07: Ogre Defence mini-game.
Ogre Defence mini-game is now playable with installed overlay. Viewers fire arrows to kill an ogre before he reaches the end of the screen.
Planning to expand this game further. I have some more ideas for it.
nothing_is_not_taken — 01/08/2025 23:40
Update 01.08: Hardware upgrade.
Hardware upgrade. Memory and CPU.
nothing_is_not_taken — 05/08/2025 15:38
Update 05.08: Stream vision.
Lingo Echo now supports vision by periodically capturing stream screenshots for all live channels. When someone uses @lingo_echo,
the latest image is "viewed", allowing the bot to respond based on what’s visually happening on stream.
Screenshots are used exclusively for @lingo_echo interactions, and automatically deleted when the stream goes offline.
For transparency, the current screenshot used by the bot may be added to each streamer's preferences page - allowing them to see exactly what Lingo Echo
"sees" when generating a response. I'll think about this one.
Note: the feature does not work for streams where content is intended for certain audiences.
nothing_is_not_taken — 08/08/2025 11:40
Update 08.08: Miscellaneous.
Added the !clipit command:
This command allows moderators and broadcasters to create a 30-second clip instantly.
Note: Streamers will need to reconnect and reauthorize via the Lingo Echo page to grant clip permissions.
Bot "personality" adjustments.
Code optimisations particulary regarding image handling.
Translation trigger adjusted making it a bit more sensitive. This is to avoid known issue when translations sometimes did not trigger when needed.
Switched to a new AI model. Tweeks will be needed, as the logic of the new model is sligtly different.
Hardware upgrade (Internet speed).
Updated ToS and Privacy Policy to reflect changes regarding bot vision.
nothing_is_not_taken — 09/08/2025 19:32
Update 05.08: WebSocket connection bug fixed.
Fixed a bug that sometimes caused overlay commands to fail because the overlay lost its WebSocket connection to the server.