Version 2.2.3.0 (In Development)
Program Update
- Updated from .Net 6 to .Net 10
Version 2.2.2.9
Program Update
- xAIDirect was not getting language translated as intended. It will now translate to other languages if desired
- The Clear Message button will now work as a message interruption button as well. If something got mistranslated, you can press the Clear Message button to interrupt the message and clear it out
- Failed recording attempts, and attempts that timeout are now given unique sounds so that we know recording failed
- Fixed a problem where the silence timeout wasn’t triggering due to the audio buffer never filling during empty audio. I also increased the timeout to just under 5 seconds
Version 2.2.2.8
Program Update
- Quick fix for unicode characters in a path that was being resolved through legacy ANSI calls
Version 2.2.2.7
Program Update
- Added an online service “Health Status” for users so they can see if the services are online, delayed, or temporarily down
Version 2.2.2.6
Program Update
- Extended UwU speak to have 3 new options, Nya, Nyaa, and Nyaa~!
Version 2.2.2.5
Program Update
- Added ElevenLabs v4 and v4 Turbo options
Version 2.2.2.4
Program Update
- Removed the “Reset Voice.ai Tutorial” button in Settings since it’s not useful
- Fixed an issue with the profanity filter not working as intended
- Added profanity filtering to text translated to another language
Version 2.2.2.3
Program Update
- AzureNew is now the new default STT option for users. It’s been proven to be very stable and consistent, whereas Azure Old is no longer as consistent as the other services are
- Added a Modules tab to disable modules that you don’t want to see. Just a way to declutter your sidebar
- The cursor will now change to a hand when something is clickable so it’s more clear what is clickable and what isn’t
- The audio handler will now continue with messages even if the first message has not completed yet, which makes it function a lot more like how it used to. Speech To Speech works differently and still holds on audio until the entire message is translated
- The audio handler will no longer lock out for 30 seconds when a failure or timeout happens. It’s possible for the audio handler to freeze for up to 15 seconds, but that is under a rare situation where audio has been received, but the download stream is interrupted before completion
- Added Voice.ai as a TTS service
Version 2.2.2.2
Program Update
- Authentication errors will now be more specific with what happened. It will now explain if Patreon is failing to log them in correctly, or their sub ran out, or their payment has been paused
- VRCSTT authentication was on a really long refresh cooldown, causing the API to fail authentication for new account keys. The cooldown has been massively shortened, allowing for users to rapidly add and use a key without needing to wait a long period of time
- Audio Performance Logging will give more information about connection issues and timeouts to be able to further determine causes of slowdowns
- The audio system will now more aggressively skip timed out messages
Version 2.2.2.0 + 2.2.2.1
Program Update
- Controller inputs were mistakenly disabled for 2.2.1.9. Whoops
Version 2.2.1.9
Program Update
- SAPI wasn’t handling apostrophes like it should be. It should work as intended now
- Azure was not completing messages as intended, causing a situation where a translated message was also freezing up audio output. Fixing Azure should resolve the random audio timeout issue as well
- The overlay wasn’t performing like intended, it was on a 25ms interval that felt laggier than it should have. It now synchronizes with the framerate like SteamVR expects
- The overlay was also consuming more resources than necessary to calculate where the mouse was located on the overlay. It now uses much less CPU to accomplish this task
- The overlay was consuming more RAM than necessary to function. It should now stay steady somewhere between 60-90MB instead of spiking up to 150MB
- And finally, the overlay will now monitor a user’s input at the headset’s framerate like SteamVR expects, which should feel much more responsive without consuming more resources than it should
Version 2.2.1.8
Program Update
- Fixed a problem where the chatbox ding was sending on status updates
- Added an Audio Performance logger option so we can dig down into what’s going on with reduced audio performance from streamed audio
Version 2.2.1.7
Program Update
- Actually fixed the “You do not have permission to use translation” when outputting something other than English in the voices when using the free version
Version 2.2.1.6
Program Update
- Fixed a bug causing the audio stall monitor to fail to catch a stall when the audio was infinitely buffering off an unfinished audio stream
- Fixed an issue with the audio monitor terminating an audio message too aggressively with speech to speech
- The audio stall monitor was waiting for way too long after a buffer drained to determine there’s an issue with playback. It will now terminate within 5 seconds of detecting a problem
- AI output was not able to speak using some voices, including OpenAI and xAI. Added AI output support for those services
- Fixed a problem with AI output failing to output an audio translation
- AI output was not always speaking the full message as intended. It will now correctly speak the entire result, including multiple sentences
Version 2.2.1.5
Program Update
- Added a “Streaming Enabled” checkbox to Settings, that when disabled, with Legacy Audio enabled, functions exactly like the old system did, because it is the old system without a single line of code different from what it used to be. I mostly did this to test it out myself to find any slowdowns on the services, but now you can experience it yourself to see how it feels between the two systems
Version 2.2.1.4
Program Update
- Added a settings backup system to mitigate corrupt saves from causing some people problems. I’m not sure how the saves are corrupting since it’s never happened to French or I, so this is the next best solution
- Fixed an issue where the program would crash if a save file was somehow corrupted. It will now clear out the corrupted file and attempt to pull from the backup. If that fails then sorry, you’re out of luck and it’s going to create a fresh save file
Version 2.2.1.3
Program Update
- Added an option to disable audio streaming in Settings
- Fixed a problem where the program closing or crashing unexpectedly was causing the overlay to open multiple times
- Overlay buttons will now respond nearly instantly instead of a half second delay like before
- Overlay will no longer disappear out of nowhere and not return until application restart
Version 2.2.1.2
Program Update
- Fixed a problem where Push To Toggle was failing to properly detect voices when started, causing the auto system to stall for 15-30 seconds
- Fixed an issue where some services were stuttering due to the buffer size being too small
- Re-added the legacy audio handler so users can compare the difference and choose the one they want to use
Version 2.2.1.1
Program Update
- Audio system has been updated so that Text To Speech and Speech To Speech can work as intended, as well as allow for pause/resume/replay
Version 2.2.1.0
Program Update
- xAIDirect and xAI were modifying the “final” translation at the end of translation, causing the text to speech processor to speak a message multiple times. Now it should only speak a message once, hopefully
- Text To Speech was sometimes freezing up and causing the program to fail to process audio from then on. It should now recover if it encounters any kind of issue
- When attempting to reconnect to the server the client wasn’t properly recycling the old websocket, causing subsequent reconnects to consistently fail even if they should have succeeded. The program will now correctly retry a message over the span of 25 seconds, retrying a total of 3 times before giving up on a message
Version 2.2.0.8/2.2.0.9
Program Update
- xAIDirect and xAI were closing out the connection incorrectly, causing unwanted behavior
- xAI was using Deepgram as a fallback, which was causing audio to sometimes playback twice
- xAIDirect would not work for several minutes while it had to initialize. It now starts immediately
Version 2.2.0.7
OBS Editor Update
General / Text / Background/Images Tab
- Added clickable Preset ID for users wanting to skip “Active” preset verification and have more than one preset live
- Update to Font Color Gradient and how it interacted with Text Animation
- New field “Box Max Height (px)”. If a height is set, overflowing text will animate on the Y axis as more text is inserted.
- Small fix to Editor Preview button when “Partial Message” is enabled (for both Single & Chat mode).
Program Update
- xAIDirect is now working. NOTE: When you first use xAIDirect it needs to do some background processing. Usually it takes 15 seconds, but sometimes it can take up to 5 minutes. This will only happen once and it will never need to be done again
- TTS was sometimes speaking twice due to a race condition. It will now only speak a message once like intended
- Whisper is now live and working as intended
- The connection monitor was not aggressive enough in rooting out dead connections. It will now more aggressively find and terminate dead websockets. This should make translation more consistent on unstable connections
Version 2.2.0.6
Program Update
- Added all new TikTok voices
- Added Fansly support
- Added a toggle to disable the chatbox notification sound
- Modified xAIDirect to give more detailed errors so we can figure out where they’re coming from
- Added a text input popup when pressing a shortcut (Default Ctrl+F) to quick type a message
Bug Fixes
- Fixed heart emoji
- Fixed an issue where xAIDirect was failing to refresh when authentication changed, causing it to stop working until restart
- Deepgram would sometimes hang for long periods of time, causing the program to hang for 20 seconds or more. It will now hang for a max of 5 seconds and retry immediately after
- Deepgram would sometimes cut translation off before the message was fully translated, causing the last word(s) to sometimes not show up. Deepgram will now wait up to 5 seconds for a close-out message, which significantly lowers the incidence of partially translated results
- Fixed an issue where Google was correctly translating the message, but at the last moment decides to show the previous message instead of the latest one. It will now correctly show the latest message every time instead of sometimes falling back to an older message. This was a rare and tricky issue to nail down
- Fixed a rare situation where xAI was not getting full audio data and returning incomplete results as a consequence
- Fixed a case where rapidly speaking to xAI caused it to terminate the message too quickly and not fully translate
- Keybindings were not properly handling modifiers (Shift, Ctrl, Alt) and triggering at the wrong times. Modifiers should work as intended now
- xAIDirect will now work as intended
Version 2.2.0.5
OBS Editor Update
- Special Effects Tab (Unlocked)
Added 8 different animations for “Start Box Animation”
Added 7 different animations for “End Box Animation”
Added 8 different animations for “On Text Update Chatbox Animation”
Added 7 different animations for “Text Animation (Per Words)”
Version 2.2.0.4
Bug Fixes
- xAIDirect is now much more stable and consistent. It still has the language issue, but the translation results no longer duplicate or miss sentences
- xAI no longer duplicates or misses sentences, except in a specific case
Version 2.2.0.3
Program Update
- Theme Tab
Added a Simple Background option that will change the background to a solid color for those who dislike the image backgrounds
- Settings Tab
Added a checkbox to skip non-mandatory updates
- xAI
Added Deepgram as a fallback when the language translation fails. This has not been extensively tested, so I expect there to be bugs, but hopefully not too many
Version 2.2.0.1 + 2.2.0.2
OBS Editor Update
- App Settings tab (*New. Used for global settings)
Users can now edit the following global values: “Hide Delay (ms)” & “Large Message Extra Delay (ms)”
Extra Fonts can now be import via a stylesheet url such as fonts.googleapis. Example: “https://fonts.googleapis.com/css2?family=Archivo+Black&display=swap”
- Preset tab
Categories can now collapse/uncollapse
- General tab
New “Align Item” column
- Text tab
More Options checkbox added for the following elements:
Text-Transform
Text-Shadow
Font Color Gradient (includes direction, color, opacity and fill percentage)
Font Outline Smoothness
- Sound tab
Basic & Advanced Sound sub-tabs
Ability for sound on new messages
Ability for sound on each letter (more choices will appear in later versions)
Program Update
- VR Overlay
Added a VR Overlay (left hand default) + Overlay Settings. Settings can be changed in VR
- Added a VR Overlay tab in the program showing you how to access SteamVR’s settings. It will be functional later
- General
Added a Replay button to the Dashboard’s history
Bug Fixes
- Due to xAI randomly choosing the wrong language, especially for non-English, I added Deepgram as the fallback option when xAI fails to function as intended. Users do not need to do anything to activate this fix
- Some Service + Voice combos were causing the Text To Speech Profiles in the Dashboard to align weird. I cut a character out of the total allows characters to resolve the issue
- Fixed the Message History tab in the Dashboard expanding in an unexpected way
- Fixed TikTok not handling certain characters as intended, making translation sound weird
- Exiting SteamVR no longer causes the program to shutdown. This was a much more difficult problem than you thought it was
Version 2.2.0.0
- Added xAI Direct, which is an experimental connection method that should be very fast, and hopefully quite consistent
- Added a new OBS system, made by FrenchCommander! Go check it out in the OBS tab, it’s pretty cool!
- Added a $3 STT and $7 STTS Patreon tier that’s for xAI STT only. It’s so cheap I can slice the price to a 1/3 of what it was, which is pretty cool
- The $8 and $15 options remain because Azure, Google, and Deepgram STT isn’t as cheap as xAI, and Azure is still the king of multilingual accuracy
- xAI and the other services would error out and not attempt to re-connect. The services will now correctly attempt to reconnect on a connection that silently (or loudly) failed
- Changed the “Recording…” color in the title to black when light mode is enabled so you can actually read it
- Google STT was timing out instead of closing out audio streams, making the service very slow. It should now work as fast as the other services
- Fixed an issue with Deepgram STT failing to accurately determine when processing completed
Version 2.1.9.9
- Fixed a crash caused by a bad binding to the microphone
- Popup errors no longer cause the program to crash
Version 2.1.9.8
- Added a limit of 400 entries to the dictionary
- Fixed an issue with the Chatbox auto-hide not working as intended with the latest OSC update. Now the chatbox will now display for whatever time is set. 30 seconds is default
- Fixed the display not working for the noise gate in the Microphone + STT tab
- Added xAI STT and TTS
Version 2.1.9.7
- Added word dictionaries to the speech-to-text services
Version 2.1.9.5
- Redesigned the Dashboard to have useful tabs
Version 2.1.9.3
- VR controller bindings should now work on startup as intended
- Redesigned the UI again, I didn’t like the first iteration as much as I hoped
- Moved things around to cut down on the tab clutter. Things you don’t need to access often are no longer on the main tab
Version 2.1.9.2
- Fixed the coloring issue on program startup
Version 2.1.9.1
Version 2.1.9.0
- Program sets the theme to dark mode and hides the button since it’s the only option now and light mode makes everything unreadable. Whoops
Version 2.1.8.9
- Updated the UI so I can start pushing out new tutorial videos. This will be the new design for quite a while, so I hope you guys like it
- Added a message history to the quick menu
- Added general STT settings to the quick menu
- Modified the profiles tab to only display profiles that have been clicked before. Right click to remove them if you don’t want them there
- Redesigned the Speech tab to be easier to use
- Added voice test buttons for all services
- Added small tutorial on how to setup your ElevenLabs key
- Added a small tutorial on how to setup VoiceVOX
- Added a system that detects if you have .net 6 x86 installed, and if you don’t it will disable SharpTalk (AEIOU), and SAM
- Added SAPI TTS service
- Fixed a problem where some TTS services were not correctly populating their dropdown boxes, making it possible to get an empty object error
- Redesigned the VRChat -> Emotes tab, even though it’s not used often, there is a plan to reintroduce the speech bubble in the future
- Added helper text to the quick menu to explain you can click the mic and speaker buttons for functionality
- Added a “Paid Only” overlay to premium services, such as STT and several of the TTS services
- Redesigned the Authentication system to give me the flexibility I need to individually toggle specific features on/off
- The Free version can now use TTS services that do not cost money to operate. VoiceVOX, SAM, AEIOU, SAPI, and TikTok can be used with the free version
- STT still requires a subscription since there is no local hosting of STT services, for now
- Fixed an issue where most of the authentication errors were getting absorbed by other errors, or stacking up several of the same errors at the same time
- Fixed a problem where Patreon authentication when first run would potentially permanently freeze up until the program was restarted
- VRCSTT authentication was triggering the moment it was selecting and creating popups claiming there’s an authentication error when there wasn’t one
- VRCSTT authentication was also improperly checking the keycode, and if the keycode was wrong it wouldn’t provide a helpful hint that the keycode is incomplete
- Free authentication will no longer spam the user with “authentication failed” errors if they try to use a feature that is disabled for them
- Free users, when attempting to translate to a different language, will properly get a single error instead of getting spammed with 3
- Added remaining TikTok voices
- Added the appropriate logos to each of the TTS services, which was a lot harder than I would have thought. 80’s and 90’s logos are hard to resize and crop
- Added a warning to TikTok so people know their conversations are not private since it goes through their API
Version 2.1.8.8
- OSC will now correctly send custom messagebox data
Version 2.1.8.7
- Added an OSC host and router so a secondary program isn’t needed for VRCSTT to run alongside other programs. You can find it in VRChat -> OSC Router
Version 2.1.8.6
- Fixed an issue with the Soundboard losing newly added Soundboard items
- Added support for voice commands to play/stop soundboard sounds
Version 2.1.8.5
- Updated Soundboard UI to be more user friendly
- Forgot to hide a couple of beta features before updating. Re-hid them until they’re ready for release. Whoops
Version 2.1.8.4
- Added Europe server
- Added Soundboard
- Minor fixes to handling connection loss
Version 2.1.8.1
- TTS now has multiple attempts before it fails, reducing how often you should get a failed translation error
- TTS will now give a more detailed error (for me to debug) if it happens to fail after multiple attempts
- STT translation will re-connect to the service if it fails after 3 attempts. Previously a total failure would cause the program to fail to translate even after a successful reconnect
- Made STT more resilient to a few connection issues related to timeouts
Upcoming Changes
- Fix Whisper so it works as intended
- Fix an issue where Google will fully translate a message before all of the audio has been uploaded, sometimes causing it to miss the last word, or in some cases an entire sentence
- Fix an issue where Deepgram will randomly decide to disconnect the websocket and cause huge delays with translation due to the service needing to reconnect and resend the audio all over again
- I’m debating on adding a Europe server. If you want this, say something in Discord
Version 2.1.8.0
- Google STT is now back to a stable state
Upcoming Changes
- Fix Whisper so it works as intended, and after that I’ll be finished with the STT rework. All that work to get the stupid disappearing message bug wiped out for good
Version 2.1.7.9
- Fixed an issue with the speech bubble not clearing out when the keybinding is pressed
Version 2.1.7.8
- AzureNew and Deepgram are now usable for testing for stability. Unlike old Azure, it should not miss messages, or fail to translate messages unless the message in question is empty
- The system that separates messages out for processing will be less prone to try and translate background noise
- That system will also be less prone to trying to translate silent audio
- I also added an “Enable Beta” button in Mic -> Denoiser that will enable VAD Beta, which I believe resolves a missing message bug. It’s stable, but I want to test it more before making it default
Version 2.1.7.7
- Modified how VAD handles end of message timeouts. It will be a bit more unstable for the old Azure system, but will function well in AzureNew when it’s ready to go back into stable status
Version 2.1.7.6
- The program will now pass forward all other non-Chatbox OSC messages, allowing other programs to send any data through the host VRCSTT program
- Chatbox will react more quickly if there isn’t a constant refreshing status update. If Scrolling Text or certain features of Magic Chatbox is enabled, it’s constantly updating and won’t react as quickly to clear and update requests
- The Chatbox will display updated STT translations with less delay if there isn’t a constant refreshing status update
- Fixed a bug where displaying a status stalls the clear button for STT messages
- That should be it with the Chatbox improvements for a while. It has all of the features implemented and operates as quickly as possible
Version 2.1.7.5
- Added Magic Chatbox (As well as just about any other OSC system) support
Version 2.1.7.4
- Chatbox status and STT messages will now display faster
- Chatbox Spotify status has been fixed and will correctly display song progress
- “Only Show Once On Spotify Update” will do what it says now
- Scrolling Center Text will correctly scroll at a reasonable speed
Version 2.1.7.2
- Patreon went down for a second time in a month. Added a fallback system to authenticate if Patreon is unresponsive
Version 2.1.7.1
- When clearing the chatbox mid-message it will correctly interrupt and clear the message shortly after pressing instead of continuing to update until the message is complete
Version 2.1.7.0
- Fixed a crash where some users would experience a crash during load if the dll’s were not copied over to the temp folder in time
- Removed reliance on optional dlls to load for the program to work
Upcoming Changes
- Fix issue with AzureNew, Google, and Deepgram throwing an error during normal use
Version 2.1.6.9
- Added the ability for free users to change their typing language
- Removed the error that will pop up for free users if they have the wrong options toggled on somehow
Upcoming Changes
- Fix issue with AzureNew, Google, and Deepgram throwing an error during normal use
Version 2.1.6.8
- Fixed an issue where integrated APIs, such as Twitch, Kick, and OBS, were using the incorrect language settings and causing a crash in certain setups
- Fixed an issue where voice profiles would bug out and clear themselves when swapping between windows
Upcoming Changes
- Fix issue with AzureNew, Google, and Deepgram cutting sentences short after a short pause in speaking
Version 2.1.6.7
- STT settings should save as intended
- Fixed a problem with voices not saving when changed but the window is still active at program close
Upcoming Changes
- Fix issue with AzureNew, Google, and Deepgram cutting sentences short after a short pause in speaking
Version 2.1.6.6
- Fixed the voice selectors for ChatGPT to always be populated with something
- Fixed voice selectors for text to speech to always be populated with something
Upcoming Changes
- Fix issue with STT language not saving like it should
- Fix issue with AzureNew, Google, and Deepgram cutting sentences short after a short pause in speaking
Version 2.1.6.4
- Fixed a crash caused by the absence of a user save folder
- Fixed an issue with voices not loading correctly with an existing older save
Upcoming Changes
- Rebuild voices saving and loading to streamline adding new text to speech systems
Version 2.1.6.2
- Fixed Whisper inconsistently handling messages. Long messages should no longer timeout, and short messages should always translate
Upcoming Changes
- Fix issue with Chinese STT/TTS not working as intended
Version 2.1.6.1
- Fixed Deepgram hanging for long periods waiting for a final translation update
- New translation system is much more forgiving with slow or spotty connections and will not spam the user with connection failed errors
Upcoming Changes
- Fix Whisper not consistently handling messages
Version 2.1.6.0
- Added Whisper
- New translation system will no longer lock out the messaging system on a timeout waiting for a completion message
Upcoming Changes
- Fix new translation system to better handle notifying users of disconnects and reconnects
- Make the retry system more robust when there is an internet connection but there’s high packet loss causing large delays
Version 2.1.5.9
- Added “Dragon” Azure voices
- Added ability to choose between old and new translation systems
Upcoming Changes
- Fix new translation system to better handle notifying users of disconnects and reconnects
- Add Whisper
Version 2.1.5.8
Upcoming Changes
- Add “Dragon” Azure voices
- Add ability to choose between old and new translation systems
- Fix new translation system to better handle notifying users of disconnects and reconnects