Każdy streamer wie, jak ważna jest interakcja z widzami na żywo. Odczytywanie wiadomości z czatu za pomocą syntezatora mowy (Text-to-Speech) to świetny sposób na budowanie zaangażowania, zwłaszcza podczas dynamicznej rozgrywki, gdy nie ma czasu na zerkanie na drugi monitor. Niestety, większość dostępnych rozwiązań opiera się na chmurze, płatnych subskrypcjach API (Google Cloud, Amazon Polly) lub ociężałych aplikacjach webowych.
Dlatego powstał Twitch TTS – w 100% lokalna, szybka i w pełni darmowa aplikacja desktopowa dla systemu Windows, której pierwsze oficjalne wydanie v1.0.2 jest już dostępne na GitHubie.
Twitch TTS to narzędzie dla twórców na platformie Twitch, które w czasie rzeczywistym przekształca wiadomości z czatu oraz nagrody za punkty kanału (Channel Points) na mowę przy użyciu nowoczesnych sieci neuronowych.
Kluczową cechą programu jest całkowita praca w trybie offline (on-device):
Zero opłat i subskrypcji: Brak konieczności płacenia za zewnętrzne usługi syntezy w chmurze.
Prywatność: Żadne dane ani treści wiadomości nie opuszczają Twojego komputera.
Minimalne opóźnienia: Dźwięk generowany jest bezpośrednio w pamięci RAM i natychmiast kierowany na wybraną kartę dźwiękową.
Koniec ze żmudnym kopiowaniem tokenów czy konfiguracją botów. Aplikacja posiada wbudowany, bezpieczny mechanizm autoryzacji – jedno kliknięcie otwiera przeglądarkę, a po zalogowaniu Twitch TTS automatycznie łączy się z czatem przez WebSocket (EventSub). Możesz wybrać, czy program ma czytać wszystkie wiadomości, czy tylko wybrane nagrody za punkty kanału.
Czat na żywo bywa nieprzewidywalny, dlatego program wyposażono w rozbudowany potok czyszczenia tekstu:
Cenzura wulgaryzmów: Automatyczna podmiana niepożądanych słów na kulturalny dźwięk "piiiiip". Lista słów zawarta w pliku profanity_words.txt w katalogu programu.
Aliasy fonetyczne: Możliwość zdefiniowania poprawnej wymowy skomplikowanych nicków widzów lub słów (np. utak3r -> utaker, stream -> strim).
Ochrona antyspamowa: Automatyczne skracanie powtarzających się znaków (np. siemaaaa -> siemaaa) oraz odrzucanie linków URL.
Czarna lista botów: Łatwe ignorowanie popularnych botów (Nightbot, StreamElements itp.).
Podczas nagłego najazdu widzów (raid) lub wzmożonej aktywności na czacie tradycyjne boty TTS potrafią "zapętlić się" na kilkadziesiąt minut. Twitch TTS wykorzystuje bufor z polityką Drop Oldest – jeśli wiadomości napływają szybciej, niż syntezator jest w stanie je odczytać, najstarsze są bezpiecznie pomijane, a stream nie ma opóźnień.
Wbudowana zakładka testowa pozwala na żywo sprawdzić każdy etap przetwarzania tekstu przed uruchomieniem go na streamie: od surowego tekstu, przez aliasy i filtry, aż po finalną postać trafiającą do syntezatora. Umożliwia także regulację tempa mowy oraz eksport wygenerowanego audio do pliku .wav.
Główny pulpit (Live Monitor) wyświetla historię wszystkich przeczytanych wypowiedzi wraz ze statusem, regulacją głośności oraz przyciskami szybkiej reakcji (Mute, Skip, Replay, Add Alias).
Dźwięk może być kierowany bezpośrednio do słuchawek lub na wirtualne kable audio (np. VB-Audio Virtual Cable, Voicemeeter), skąd z łatwością dodasz go jako osobne źródło dźwięku w OBS Studio lub Streamlabs. Specjalny mechanizm Paddingu (bufora ciszy) gwarantuje, że wirtualne karty audio nie utną końcówek wypowiedzi.
Aplikacja powstała z naciskiem na maksymalną wydajność, stabilność i niskie zużycie zasobów:
Rust: Język programowania gwarantujący bezpieczeństwo pamięci, brak narzutu odśmiecacza pamięci (GC) oraz wysoką wydajność. Asynchroniczny backend oparty o runtime Tokio zapewnia bezproblemową obsługę strumieni WebSocket i przetwarzania audio w tle.
Slint: Nowoczesny, deklaratywny framework GUI. Interfejs aplikacji jest lekki, responsywny, renderuje się płynnie i zużywa zaledwie ułamek zasobów procesora i pamięci RAM.
Piper TTS: Szybki, lokalny silnik neuronowej syntezy mowy bazujący na modelach ONNX, oferujący naturalnie brzmiące głosy bez konieczności posiadania dedykowanej karty graficznej.
W repozytorium dostępny jest gotowy instalator .msi dla systemu Windows oraz pełna dokumentacja instalacji i konfiguracji. Zapraszam do testowania, zgłaszania uwag oraz współtworzenia projektu!
Program przeszedł już chrzest bojowy u jednego streamera (dzięki @masi4m_ za testy!) - działał przez kilka godzin bez problemu :)
This application wasn't in my plans... it was born out of my frustration trying to make my gallery displaying in an order I'd like to see it. The issue is the order was to be set visually, by watching the images and dragging them around. And here it is: Media Sorter App.
After opening a target folder, it displays all images and videos in a grid, allowing to drag and drop them around, changing their order. Clicking any thumbnail opens a big view (yes, videos are working, too).
Upon clicking the Apply button (bottom right corner) it does two things:
saves current order into a order.json file in a target folder (opening a folder with this file inside makes the app displaying them in that order)
copies a list of filenames in that order into a system clipboard, allowing it to be pasted somewhere - for example in the code of the gallery script which was the main goal of this application.
It is written in Flutter, however I've been testing it only against Windows. If you want to check the sources and build it for yourself, you can get it from GitHub. Refer to README.md for instructions.
If you want just to grab a ready binary, there's a MSIX package ready to download and install. Version 1.0.1 can be downloaded here.
Recently, my VideoEditor app received some substantial updates, as I've completely reworked its underlying engine.
Currently it no longer uses raw FFmpeg executables but instead relies on a shared FFmpeg libraries, so it's self-contained. Player works very smoothly now and it also plays audio.
VideoEditor 1.0.0.20 to prosty program, będący narzędziem znacznie ułatwiającym pracę ze wspaniałym ffmpeg.
Na ten moment, program umożliwia konwertowanie plików video oraz ich łatwe przycinanie.
Po uruchomieniu programu, należy wejść w ustawienia i zdefiniować ścieżkę do samego ffmpeg.exe. Skąd go wziąć? Można oczywiście go sobie zbudować, ale polecam skorzystać ze strony CODEX FFMPEG, gdzie są dostępne zawsze aktualne binaria.
Następnie polecam przejrzeć zakładkę z presetami kodeków video. Kilka zawarłem jako domyślne. Jeśli umiesz obsługiwać ffmpeg, możesz zdefiniować swoje własne nowe ustawienia.
Po skonfigurowaniu programu, po prostu otwórz plik video, zaznacz punkty przycięcia filmu, jeśli chcesz, wybierz preset konwersji i naciśnij „Convert”. Podajesz nazwę nowego pliku i czekasz na zakończenie konwersji.
Program będę dalej rozwijał i dodawał nowe funkcjonalności. W planach również obsługa różnych języków i instalator.