Commit Graph

7 Commits

Author SHA1 Message Date
Nolan Darilek 16a6f6378a Under WinRT, recreate player completely when interruption is requested. 2020-07-06 12:52:18 -05:00
Nolan Darilek 4f011e6895 Get Tolk working again.
Two Tolk instances were being created. One checked for the presence of a screen reader. The other actually performed the speech, and was returned as part of the `TTS` instance.

Unfortunately, Tolk doesn't seem to appreciate being called twice. So here we check if a screen reader is detected and, if one is, return the instance that did the detection. Otherwise, error out and return the WinRT backend.
2020-06-11 13:00:24 -05:00
Nolan Darilek c24c1d3230 Implement support for detecting when TTS is speaking. 2020-06-02 14:53:14 -05:00
Nolan Darilek 7b4fb8dae4 Clean up speech synthesis properties, and implement everything for WinRT.
I'd previously attempted to normalize everything to `u8`, but this had some drawbacks:

 * It failed to account for some synthesis drivers defining normal as mid-range, while most define it very low.
 * It didn't track the normal value for a given synthesizer.
 * There was no clean way to map a curve between the minimum, normal, and maximum rates.

Here we track the minimum, normal, and maximum values of rate, pitch, and volume. Sanity checks are done on set.

Also, as a further proof-of-concept, all properties are now implemented for the WinRT driver.
2020-05-18 18:12:59 -05:00
Nolan Darilek f4b4ba5184 Clippy and fmt. 2019-12-23 07:37:48 -06:00
Nolan Darilek 1c1f38b55d Use new Tolk library and update backend. 2019-09-10 10:41:28 -05:00
Nolan Darilek 3bda7bcff4 Add Tolk backend. 2019-03-25 19:15:08 +00:00