After using spd-say (with pico TTS) with the root account, spd-say stops working for users
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
speech-dispatcher (Ubuntu) |
New
|
Undecided
|
Unassigned |
Bug Description
The command definition (GenericExecute
GenericExecuteSynth \
"pico2wave -w $TMPDIR/pico.wav -l $VOICE \'$DATA\' && $PLAY_COMMAND $TMPDIR/pico.wav
If you use spd-say or a speech dispatcher enabled application with root, it will create the pico.wav file owned by root with restricted permissions.
If you try to use spd-say with a different user, it will then fail, failing to access the /tmp/pico.wav file.
A solution would be to create a temporary file per user ID:
GenericExecuteSynth \
"USERID=`id -u` && umask 077 && pico2wave -w $TMPDIR/
Have you tested this fix? I only ask because I am not sure shell constructs like environment variable declaration work in that context.