ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
1

Why sound play doesn't use festival's default voice ?

asked 2011-06-10 00:58:42 -0600

Guido gravatar image

updated 2011-06-10 00:58:57 -0600

Hi all,

I'm trying to make our pr2 speak. However the (sound_play node + say.py script) gives a deep and slow voice hardly understandable. I changed voices in festival, but sound_play doesn't take it into account. How to make sound_play use the voice set as default in festival ?

Guido

edit retag flag offensive close merge delete

5 Answers

Sort by ยป oldest newest most voted
1

answered 2011-06-10 13:58:25 -0600

Pi Robot gravatar image

updated 2011-06-10 14:00:55 -0600

Hi Guido,

I submitted a ticket for the "deep slow voice" issue about 6 weeks ago. In the meantime, the only way I figured out how to change the voice is as follows. (This applies to Ubuntu 10.04 with Diamondback debian packages and Festival debian packages.)

$ cd /usr/share/festival
$ sudo pico voices.scm

(Or use whatever editor you like instead of pico.)

Once in the editor, search for "kal_diphone" (without the quotes). Change this to "don_diphone" (again without the quotes).

Save changes and exit the editor.

You should now hear a better voice when using sound_play node + say.py.

--patrick

edit flag offensive delete link more

Comments

i'll fix that soon!
mmwise gravatar image mmwise  ( 2011-06-14 19:46:01 -0600 )edit
Thanks for the answer. Sadly, it doesn't changed the voice. I changed "kal_diphone" to "voice_cmu_us_bdl_arctic_clunits" but it didn't worked. I tryed with don_diphone without success. I still get a ugly voice.
Guido gravatar image Guido  ( 2011-06-21 03:08:12 -0600 )edit
Hi Guido, when you solve this can you please post the solution? Thanks
Dimitar Simeonov gravatar image Dimitar Simeonov  ( 2011-07-22 08:34:42 -0600 )edit
0

answered 2015-02-19 22:17:31 -0600

Use rosrun sound_play say.py "Text to say" voice_you_want

In C++

sound_play::SoundClient sc; sc.say("Phrase to say.","voice_you_want");

If you write "" in voice_you_want, you play the festival default voice

edit flag offensive delete link more
0

answered 2011-07-22 07:02:43 -0600

David Lu gravatar image

Changing the frequency used by text2wav helps, but your best bet is to check out joq's answer to another question.

edit flag offensive delete link more
0

answered 2013-01-02 10:19:04 -0600

dogida gravatar image

updated 2013-01-02 10:23:21 -0600

I took the example from isura:

roscd sound_play
sudo pico scripts/say.py

sound_play use the voice set as default in festival when you leave voice blank:

voice = ''

it works for me with a german Mbrola voice with the special ims-festival (german language) from the university of stuttgart

edit flag offensive delete link more
0

answered 2012-12-15 16:14:35 -0600

isura gravatar image

updated 2013-01-13 14:40:36 -0600

I solved this by editing /opt/ros/fuerte/stacks/audio_common/sound_play/scripts/say.py

Do the following:

roscd sound_play
sudo pico scripts/say.py

In this file you need to change the following line:

voice = 'voice_kal_diphone'

I changed it to (assuming you have other voices installed in festival):

voice = 'voice_nitech_us_rms_arctic_hts'
edit flag offensive delete link more

Question Tools

2 followers

Stats

Asked: 2011-06-10 00:58:42 -0600

Seen: 1,822 times

Last updated: Jan 13 '13