Nolan Darilek
51837a51bf
Document feature.
2020-10-08 19:08:18 -05:00
Nolan Darilek
fa216a534e
Gate Tolk behind use_tolk feature to support compilation on UWP.
2020-10-08 19:07:07 -05:00
Nolan Darilek
88ec7db075
Eliminate accidental deadlock.
2020-10-08 09:44:46 -05:00
Nolan Darilek
0c13c43a77
Fix incorrect error code name.
2020-10-08 08:16:01 -05:00
Nolan Darilek
6f12974ce4
Implement stop callback on MacOS.
2020-10-08 08:07:33 -05:00
Nolan Darilek
8c783205c3
Implement utterance_stop callback on most platforms.
2020-10-08 07:56:45 -05:00
Nolan Darilek
174011bbb4
Make `UtteranceId` use `u64` on most platforms, and add additional derives.
2020-10-08 07:16:10 -05:00
Nolan Darilek
c2bbc5ac04
Eliminate more Clippy warnings.
2020-09-26 12:47:18 -05:00
Nolan Darilek
dbac8a3fe0
Eliminate some Clippy warnings.
2020-09-26 12:43:16 -05:00
Nolan Darilek
ace5d2fd1f
Make compatible with newly-released speech-dispatcher-rs.
2020-09-25 11:33:49 -05:00
Nolan Darilek
589c613bbe
Implement FnMut callbacks on AV Foundation, and fix warnings.
2020-09-25 11:14:26 -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
96e5d21e24
Implement callbacks for WinRT.
2020-09-24 17:56:46 -05:00
Nolan Darilek
a22242af50
Implement callbacks for web backend.
2020-09-24 14:26:30 -05:00
Nolan Darilek
532d5d9b58
Tighten up access.
2020-09-23 12:23:46 -05:00
Nolan Darilek
251fb8d8c1
Implement callbacks on AVFoundation.
2020-09-23 12:21:05 -05:00
Nolan Darilek
bd57075d53
Implement unused framework for AVFoundation callbacks.
2020-09-23 11:28:56 -05:00
Nolan Darilek
36a12597de
Merge branch 'v0.7' of https://github.com/ndarilek/tts-rs into v0.7
2020-09-23 11:00:41 -05:00
Nolan Darilek
6788277a4d
Implement framework for utterance callbacks in Windows backends, though they aren't currently called.
2020-09-23 10:31:21 -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
f5f11b7cdf
Switch to using MediaPlaybackItem as WinRT utterance ID.
2020-09-22 14:51:59 -05:00
Nolan Darilek
017aa8863b
Remove unused import and fix i~~OS builds.
2020-09-22 14:30:17 -05:00
Nolan Darilek
6b023c3071
Add AV Foundation support for returning utterance IDs.
2020-09-22 14:08:19 -05:00
Nolan Darilek
4816ec575c
Make speak calls return an utterance ID, where possible.
2020-09-22 12:40:03 -05:00
Nolan Darilek
d6508edd12
Remove workaround for incorrect Tolk string handling, pin minimum working version, and bump version.
2020-09-21 15:13:22 -05:00
Nolan Darilek
665013fdff
Split text sent to Tolk backend to account for some sort of length limit.
...
Tolk seems to fail on strings larger than 325 characters in length. Here we:
* Send any strings with 300 or fewer characters through directly.
* For larger strings, split on whitespace boundaries, then create and send buffers of 300 or fewer characters.
This may not handle internationalized text, and may not handle someone bombarding TTS with a giant word. PRs for either welcome.
2020-09-02 11:40:08 -05:00
Nolan Darilek
6c091f3284
Switch Speech-dispatcher initialization to threaded mode so callbacks work and `is_speaking` is correct.
2020-08-25 11:50:25 -05:00
Nolan Darilek
d3ffd5078f
cargo fmt
2020-08-24 16:46:57 -05:00
Nolan Darilek
1507527175
Add `Default` implementation for `Features` so backends need only specify features they actually support.
2020-08-24 16:44:00 -05:00
Nolan Darilek
951e31b284
Implement `is_speaking` For Speech-dispatcher.
2020-08-19 21:28:30 -05:00
Nolan Darilek
7bcbda15b3
Update supported platforms.
2020-08-18 15:22:12 -05:00
Nolan Darilek
a1e4215ea7
Normal volume of speech-dispatcher is 100, not 0.
2020-08-18 15:19:34 -05:00
Nolan Darilek
2f85c3b2bf
Add iOS build.
2020-08-18 15:16:30 -05:00
Nolan Darilek
cce1569c72
Sync supported synths in README and lib.rs.
2020-08-13 11:15:23 -05:00
Nolan Darilek
ff877acd87
Eliminate warning in non-MacOS builds.
2020-08-13 11:11:38 -05:00
Nolan Darilek
c5b1ff1944
Add AVFoundation backend, used automatically on MacOS 10.14 and above.
2020-08-13 11:08:00 -05:00
Nolan Darilek
2d0ab8889a
Eliminate a warning.
2020-08-13 06:58:16 -05:00
Nolan Darilek
cc2a4c12f7
Rename ns_speech_synthesizer backend to appkit.
2020-08-13 06:46:16 -05:00
Nolan Darilek
af678d76d1
Update documentation with supported backends.
2020-08-12 15:45:16 -05:00
Nolan Darilek
75fd320d3f
Implement rate/volume-setting for `NSSpeechSynthesizer`, along with other tweaks.
...
Unfortunately, there seems to be a difference in how the `hello_world` example processes rate and volume changes. I'm not sure if it doesn't adjust rate for samples while speaking. In any case, arguably there are just going to be differences in platforms that I can't account for, so this may just have to be. Hopefully it doesn't interfere with actual usage.
2020-08-12 15:41:57 -05:00
Nolan Darilek
dc1c00f446
Good news: `NSSpeechSynthesizer` speech now queues. Bad news: my brain bleeds.
2020-08-12 15:14:17 -05:00
Nolan Darilek
7eccb9f573
Clean up `println!` and comparison calls.
2020-08-12 09:54:25 -05:00
Nolan Darilek
427ca027be
Add `Drop` implementation.
2020-08-12 09:52:16 -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
faadc0e3b7
Still doesn't work, but at least it doesn't segfault now.
2020-08-11 14:44:52 -05:00
Nolan Darilek
753f6c5ecd
WIP: Initial support for MacOS/`NSSpeechSynthesizer`.
...
* Add necessary dependencies, build script, and `NSSpeechSynthesizer` backend.
* Get very basic speech working.
Needs a delegate to handle queued speech, and currently segfaults if one is set.
2020-08-11 12:11:19 -05:00
Nolan Darilek
e1bb6741a9
Correctly indicate that WinRT supports detection of speaking.
2020-07-07 09:08:44 -05:00
Nolan Darilek
16a6f6378a
Under WinRT, recreate player completely when interruption is requested.
2020-07-06 12:52:18 -05:00
Nolan Darilek
1d7c668a4a
Sanity-check value to prevent overflow.
2020-07-06 12:14:50 -05:00
Nolan Darilek
d830f44c55
Handle corner case where WinRT speech that doesn't interrupt, and is played after a delay, causes recently-spoken utterances to replay.
...
`MediaPlayer` only seems to have states for playing and paused, but not stopped. Further, playing when the queue is finished seems to restart playback from the beginning.
Here we clear the list of items to play if the player is paused and we're on the last item. We assume we're done with all items to speak, and clear the list before appending a new item and beginning playback again.
The correct solution is probably to investigate how events work in winrt-rs, but callbacks and Rust have always been a disaster when I've tried them, so I'm hesitant. This does seem to handle the basic scenarios I've thrown at it.
2020-06-17 18:54:34 -05:00