SIM is a small program that enables any text to be spoken using any TTS in the OS and output to any audio device.
SIM aims to replace large programs such as Balabolka when you want to speak in TeamTalk or Discord with a SAPI voice, for example, due to microphone issues.
Features are marked with checkboxes to indicate if a feature is already implemented or not.
Note that for now the feature list is a bit more kind of todo list for developers.
- Select any SAPI voice from the list;
- Select any audio device to output speech to it;
- Tune TTS rate and volume (volume is controlled by audio system, not the SAPI engine);
- Exclude voices which are known to not work with the program (for example Hungarian Profivox or some older SAPI synthesizers);
- Add UI labels;
- Keep history of spoken phrases;
- Clear input text field on enter press and successful speech;
- Accept command line arguments (to create a personalized shortcut with predefined settings);
- Display more friendly and understandable SAPI voice names (currently will not be implemented due to SRAL and BlastSpeak implementation details);
- Modify audio system logic to avoid resampling artifacts;
- Implement some localization system;
- Offer some user-friendly translation workflow;
- CMake 3.25 or newer (I build with CMake 4, but GitHub builds work with CMake 3.30 or so);
- A working C/C++ compiler (for now tested only with msvc and clang);
- Miniaudio for audio output (fetched by CMake automatically);
- SRAL for TTS (fetched by CMake automatically);
- SPDLog for logging (fetched by CMake automatically);
- WXWidgets for user interface (fetched by CMake automatically);
- CLI11 for command line arguments processing (fetched by CMake automatically);
The program aims to be always only one executable file with no extra DLLs. When contributing, please keep that in mind and do not use libraries, which have to be linked dynamically.