On Ubuntu 18.04 I had in my ~/.festivalrc

(voice.select 'en1_embrola) 

which works as expected.

However after upgrading to 20.04 my default voice is kal_diphone

On festival's interactive shell (voice.select 'en1_embrola) does the correct thing so I know that the embrola voice is properly installed.

I can also (!set variable-name 'to-value) in my ~/.festivalrc and see that value in a fresh interactive shell, so I know my configuration file is evaluated.

However current-voice in a fresh interactive shell is always kal_diphone.

As a side note, I noticed that there is a difference between the values of voice-locations between my Ubuntu 18.04 and 20.04 installs:

On 18.04 it is:

((kal_diphone . "/usr/share/festival/voices/english/kal_diphone/") (en1_mbrola . "/usr/share/festival/voices/english/en1_mbrola/")) 

while on 20.04 it has the reverse order:

((en1_mbrola . "/usr/share/festival/voices/english/en1_mbrola/") (kal_diphone . "/usr/share/festival/voices/english/kal_diphone/")) 

Any ideas?

2 Answers

This is very much a hack, and while it solves my immediate problem, I don't consider it a solution.

It is possible to override the call to set_voice_default, by (sudo) editing the /usr/share/festival/voices.scm file and adding the (set! voice_default 'voice_en1_embrola) near the bottom of that file like so:

--- a/usr/share/festival/voices.scm +++ b/usr/share/festival/voices.scm @@ -437,4 +437,5 @@ (set_voice_default default-voice-priority-list) +(set! voice_default 'voice_en1_embrola) (provide 'voices) 

Based on my hack the proper solution is trivial:

The ~/.festivalrc should be:

(set! voice_default 'voice_en1_embrola) 

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy