joelpurra / talkie

Text-to-speech browser extension button. Select text on any web page, and have the computer read it out loud for you by simply clicking the Talkie button.
https://joelpurra.com/projects/talkie/
GNU General Public License v3.0
70 stars 17 forks source link

Suggestion: Easier Speed Adjustment #22

Open PastTenseOfDraw opened 2 years ago

PastTenseOfDraw commented 2 years ago

It would be great if adjusting the speed was easier.

Ideally being able to adjust the speed (up and down) through hotkeys as well as some buttons.

Sometimes you are reading things that are more complicated so you need to slow down whereas other times it's much easier so you can just speed through it. There also be presets but that would be more complicated.

joelpurra commented 2 years ago

@PastTenseOfDraw: sure, adjusting the speed using up/down buttons and/or hotkeys could be useful. Note that a good and useful implementation probably isn't as straightforward as it would seem at a glance.

I am considering creating a speech status tab in Talkie's options. It could have the same type of progress bar shown in the popup now, but also plenty of room for text/language/voice details, pause/up/down buttons, etcetera. I see this as a stepping-stone, and if it works out well it could also be implemented in the popup. Can, as usual, not give a timeline though. How does that sound?

PastTenseOfDraw commented 2 years ago

Text speed can only be set when starting to speak text, so adjusting speed would have to stop/restart speaking the text.

This or some sort of pause is fine. Being able to adjust it as mid-dictation would be nice but could be a future goal. It's more important that you don't have to dig into the settings to make adjustments and distribute any flow or focus you have.

It might be nice to show the current speed in the popup, next to the up/down buttons.

This would be helpful. It would mean you could quickly return to different speeds that you found helpful.

When adjusting the speed, is the new speed temporary or should it be permanently saved to the current voice settings? The easiest is to store the new speed permanently, since "temporary" is an arbitrary amount of time.

I think storing as a new permanent would also be the most intuitive.

Shortcut keys would need to know which voice to adjust speed for, in particular if using the shortcuts when no speech is playing. The obvious choice is the most recently used voice. Hopefully most users do not switch languages/voices so often that it becomes confusing which voice the speed would be adjusted for. The same is true for other up/down buttons, but they are usually placed within a stateful context/user interface already.

The most recently used voice makes sense. I think most people would switch around voices until they find the one they like best and then stick with it. We could do a survey with these types of questions.

How much should a click of an up/down button adjust the speed? From a quick survey of three apps on my phone Pocket, Google Podcasts, and Libby.

Pocket Min Speed: 0.50x Max Speed: 4.00x Presets: none Fine-tune +/- 0.1

Google Podcasts Min Speed: 0.50x Max Speed: 3.00x Presets: 0.8, 1.0, 1.2, 1.5, 2.0 Fine-tune +/- 0.1

Libby Min Speed: 0.60x Max Speed: 3.00x Presets: 1.00, 1.25, 1.50, 1.75, 2.00 Fine-tune +/- 0.05

The speech rate range seems to only be defined in relative terms, and as far as I know there's no general well-defined maximum/minimum.

Min /Min Speed of 0.50x of 4.00x seems reasonable. I know many blind users can listen to text faster than 4.00x but how many people can listen at a higher modifier than 4.00x and aren't using a screen reader.

Some voices stop working then the rate is set too high/low, others revert to rate 1. A fixed increment of, say, 0.1 "speed units" would be the easiest.

This seems to be a good increment.

Presets are indeed more complicated, and perhaps a bit too rigid and/or configuration heavy.

They are nice to have but not a high priority.

I am considering creating a speech status tab in Talkie's options. It could have the same type of progress bar shown in the popup now, but also plenty of room for text/language/voice details, pause/up/down buttons, etcetera. I see this as a stepping-stone, and if it works out well it could also be implemented in the popup. Can, as usual, not give a timeline though. How does that sound?

This sounds good.