sd_piper: add module for piper speech synthesis#998
sd_piper: add module for piper speech synthesis#998samoverton wants to merge 2 commits intobrailcom:masterfrom
Conversation
|
I just came across #996 and I see that it takes a different approach, but I will leave this work here in case it is useful to anyone, or in the event that bringing piper code into the speech-dispatcher codebase turns out not to be viable. |
|
@samoverton Great work 👍 works great and solves #999 |
You can set the default voice for the module in the Or you can set the default language and voice-type in You're right that there is some weird behavior here that's worth looking at though. Did you have any of these defaults set in |
|
@samoverton Thank you, I missed |
|
Very happy to collaborate with you on piper work. Your work got me started so big Thank You!! Off the top of my head it would be great to unify the .conf as much as we can. Samuel T mentions sttreaming/pipelining in his review of cxxpiper and I was also thinking of caching and how it might be nice to have a What are your thoughts on how to work together on stuff? Thanks! |
I have been working on a dedicated piper module (for #866). I just pulled from master and noticed that the latest commit (bec5519) alludes to work in progress on a cxxpiper module, so I wanted to share my work asap to ensure that I wasn't stepping on any toes and see if you would like to collaborate.
The module makes use of the user's installation of the piper binary instead of linking in the piper codebase directly. This means that each speak request forks a child process with the appropriate arguments. Communication with the child is done over pipes. Server audio is used so speechd handles output to the configured audio device.
The module supports usual speechd configuration and runtime parameters:
AddVoicedirectives for configuring the voice models to userate- setting of voice speed (between 0.5x and 2x)As well as some piper specific configuration:
sentence_silence- seconds of silence after each sentencenoise_scale- generator noisenoise_w- phoneme width noiseThis changeset is based on master, but I originally did this work on the 0.11 branch, so it can be easily backported if required.