Marak / say.js

TTS (text to speech) for node.js. send text from node.js to your speakers.
MIT License
1.49k stars 214 forks source link

slow speed not working properly on all voices on Mac #81

Open psenough opened 5 years ago

psenough commented 5 years ago

On Mac OSX, all voices seem to handle speed up but only Alex seems able to do slow down. Example with output experienced: say.speak('Hello!','Alex','0.5'); //speaks slow say.speak('Hello!','Alex','1.0'); //speaks normal say.speak('Hello!','Alex','2.0'); //speaks fast

say.speak('Hello!','Samantha','0.5'); //speaks normal say.speak('Hello!','Samantha','1.0'); //speaks normal say.speak('Hello!','Samantha','2.0'); //speaks fast

command line seems to work fine, both of the following examples speak slow: say -v Alex "hello" -r100 say -v Samantha "hello" -r100

psenough commented 5 years ago

seems to be convertSpeed that's screwing up, if i bypass line 24 of darwin.js with args.push('-r', speed) and use say.speak('Hello!','Samantha','100'); she speaks slow

psenough commented 5 years ago

console.log(convertSpeed(0.5)); console.log(convertSpeed('0.5')); console.log(convertSpeed(0.25)); console.log(convertSpeed('0.25')); console.log(convertSpeed(1.0)); console.log(convertSpeed('1.0')); all give proper results though, so not the function itself, weird stuff

psenough commented 5 years ago

say.speak('Hello!','Samantha','80'); she speaks normal speed again. i'm guessing there is a minimum rate threshold, and that anything below that snaps back to normal speed default instead of lowest possible. haven't found any documentation online on the max and min rate for the voices. there are some information that they differ between voices. might be worth investigating further to cap these limits somehow, or just have them documented for the user to know how low can they go. :)