Commit Graph

42 Commits

Author SHA1 Message Date
Nolan Darilek cc8fd91c86 Set event callbacks on pre-clone value to ensure that they remain alive. 2022-03-10 11:44:59 -06:00
Nolan Darilek 888e6a3dfa Correctly clean up callback references based on whether `Arc` remains cloned on drop. 2022-03-10 11:12:46 -06:00
Nolan Darilek 1f466275cf Bump ndk-glue version once more. 2022-01-10 10:52:44 -06:00
Malloc Voidstar 5e9c98b063
Also bump gradle.plugin.com.github.willir.rust:plugin
0.3.3 doesn't work with cargo-ndk 2+
2021-12-10 09:31:21 -08:00
Malloc Voidstar ee8ec97ab4
Bump ndk-glue version in Android example 2021-12-10 09:10:39 -08:00
Nolan Darilek 4088eb12a1 Add ability to detect screen readers. Windows-only for now, and requires the `tolk` feature. 2021-05-11 19:37:56 -05:00
Nolan Darilek a879b3dca3 Get web example compiling. 2021-04-03 11:58:23 -05:00
Nolan Darilek d9639c049b S/TTS/Tts/ here as well. 2021-03-31 11:03:14 -05:00
Nolan Darilek 57f91105ec s/TTS/Tts/ as per Clippy's acronym warnings. 2021-03-31 10:40:42 -05:00
Nolan Darilek 153075ebab Add web example
Closes #1
2021-03-16 17:33:01 -05:00
Nolan Darilek 914a7a1972 Make script executable. 2020-12-30 12:51:55 -06:00
Nolan Darilek cee5777556 README/packaging tweaks for Android. 2020-12-30 12:41:28 -06:00
Nolan Darilek a01fd93502 Build Android example as part of CI. 2020-12-30 12:28:07 -06:00
Nolan Darilek 8d6f40b1a5 Finish callback implementation. 2020-12-30 12:19:44 -06:00
Nolan Darilek 0ea46b29b2 Partially implement callbacks. Unfinished due to lazy_static inconsistencies. 2020-12-30 11:37:46 -06:00
Nolan Darilek 5634fdb393 Block initialization until TTS finishes initializing from Android. 2020-12-30 09:24:13 -06:00
Nolan Darilek 1ac0b91981 Add ugly hack to prove that speech works. 2020-12-29 19:25:56 -06:00
Nolan Darilek 965bea0adf TTS seems to initialize now. 2020-12-29 14:10:39 -06:00
Nolan Darilek fc20431916 Refactor Android example to full, self-contained app. 2020-12-29 11:15:24 -06:00
Nolan Darilek 187cd71eeb Add Android example. 2020-12-27 10:42:41 -06:00
Nolan Darilek d8f2b3fb00 I'll do my own queuing, MediaPlaybackList is either the wrong tool for the job or way too buggy. 2020-12-07 21:35:07 -06:00
Nolan Darilek 728c409e25 Add example for unscientifically measuring latency of TTS. 2020-11-25 09:54:46 -06:00
Nolan Darilek f37133841a Fix warnings. 2020-11-17 16:00:02 -06:00
Nolan Darilek 6a706f36ab Fix double-speaking bug for good, hopefully. 2020-11-11 10:27:03 -06:00
Nolan Darilek 204cd50935 Change example to expose more WinRT breakage. 2020-11-03 11:51:40 -06:00
Nolan Darilek d3e05b5a7a Revert "Pass TTS instance as first argument to utterance callbacks."
This appears to break callbacks, and is of limited utility.

This reverts commit 29c0a8463e.
2020-11-03 11:03:55 -06:00
Nolan Darilek 5a9c96508f Remove unused variable. 2020-11-03 11:00:20 -06:00
Nolan Darilek 2343523bb6 Add example that exposes WinRT issue where speech doubles in some circumstances. 2020-11-03 10:05:17 -06:00
Nolan Darilek 29c0a8463e Pass TTS instance as first argument to utterance callbacks. 2020-11-02 22:40:30 -06:00
Nolan Darilek 565aa6d654 Fix issue where is_speaking always returns true under WinRT, and bump version. 2020-11-02 13:30:39 -06:00
Nolan Darilek ba90cd66ba Add unused example of setting on_utterance_stop. 2020-10-08 09:06:48 -05:00
Nolan Darilek 1f22843086 Refactor Linux, Windows, and Wasm platforms to use FnMut for callbacks, and bump version. 2020-09-25 11:08:19 -05:00
Nolan Darilek c5524113ff Document the fact that we only need an NSRunLoop in the example because there isn't one already. 2020-09-23 10:33:30 -05:00
Nolan Darilek 61522610cd Implement utterance begin/end callback framework, and set up for Speech-Dispatcher. 2020-09-23 10:12:51 -05:00
Nolan Darilek 47bfe768e6 Get delegates working so speech interruption/queuing should now be possible.
* Fix broken delegate method signature.
* Add `NSRunLoop` into `hello_world` example so delegates are called. Presumably, MacOS apps already run one of these, but the example didn't.
2020-08-12 09:49:51 -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 3198a537f0 Initial WinRT backend.
* Add WinRT backend
 * Refactor to use thiserror and unify error-handling
 * If a screen reader is detected. use Tolk. Otherwise, use the WinRT backend.
2020-05-18 15:14:09 -05:00
Nolan Darilek 1c1f38b55d Use new Tolk library and update backend. 2019-09-10 10:41:28 -05:00
Nolan Darilek e388934e5e Support dynamic feature selection/use in example. 2019-03-25 16:34:30 +00:00
Nolan Darilek 4fadad9d36 Add Web backend and refactor API. 2018-12-30 17:13:48 +00:00
Nolan Darilek e24ed9a3a3 Add support for volume and pitch. 2018-12-15 15:56:13 +00:00
Nolan Darilek bac4b7555f Initial commit. 2018-12-14 19:35:49 +00:00