Audio output tts remake #63
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
As promised, I am back with a rewritten version of the text-to-speech extension.
This now runs as a separate module that communicates with the rest of the runtime via
tokio, resolving some inter-thread communication issues I had encountered with the earlier version.This still relies on simple TTS backends such as Speech Dispatcher, favoring simplicity over fancy but heavy neural models. (The modular structure makes it easy for an interested person to use a different Rust library, if so desired. Speech Dispatcher on Linux is also extensible with more advanced voice engines installed on the user's system.)
What has currently been implemented:
Compilation on Linux requires the development headers for Speech Dispatcher (listed on APT as
libspeechd-dev, I assume they'll be on other package managers as well).A compiled Linux build has no extra requirements to run, compared to the "normal" GC.
The
ttscrate description says it is compatible with other text-to-speech backends on other operating systems, so this should work on Windows or Mac with a different setup rather than Speech Dispatcher in theory, but I don't know any specifics as I haven't tested any other OS yet.Also, note that this branch adds the
ttscrate as a dependency, which should be automatically taken care of by cargo when compiling.This pull request and the associated branch on my fork repo count as the code release for the corresponding RoboCup 2025 Open Research Challenge entry.