Sida 23 av 98
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Postat: 12 okt 2008, 19:41
av Hans Linde
Lista enl önskemål:
hans@hl:~$ gconftool-2 -a /apps/metacity/global_keybindings
switch_panels_backward = disabled
switch_to_workspace_2 = disabled
switch_to_workspace_3 = disabled
switch_to_workspace_4 = disabled
run_command_10 = disabled
switch_to_workspace_5 = disabled
run_command_11 = disabled
switch_to_workspace_6 = disabled
switch_to_workspace_left = <Control><Alt>Left
run_command_12 = disabled
switch_to_workspace_7 = disabled
switch_to_workspace_8 = disabled
cycle_windows = <Alt>Escape
switch_to_workspace_9 = disabled
switch_to_workspace_right = <Control><Alt>Right
cycle_panels_backward = <Control><Alt>Escape
switch_windows = <Alt>Tab
run_command_window_screenshot = <Alt>Print
cycle_group = disabled
switch_to_workspace_up = <Control><Alt>Up
run_command_screenshot = Print
run_command_1 = disabled
run_command_2 = F12
run_command_3 = disabled
cycle_windows_backward = disabled
switch_to_workspace_down = <Control><Alt>Down
run_command_4 = disabled
run_command_5 = disabled
switch_to_workspace_10 = disabled
run_command_6 = disabled
switch_group = <Alt>F6
cycle_group_backward = disabled
switch_to_workspace_11 = disabled
run_command_7 = disabled
switch_to_workspace_12 = disabled
run_command_8 = disabled
panel_main_menu = <Alt>F1
run_command_9 = disabled
switch_panels = <Control><Alt>Tab
switch_group_backward = disabled
cycle_panels = <Control><Alt>Escape
switch_windows_backward = <Shift><Alt>Tab
show_desktop = <Control><Alt>d
panel_run_dialog = <Alt>F2
run_command_terminal = disabled
switch_to_workspace_1 = disabled
hans@hl:~$ gconftool-2 -a /apps/metacity/keybinding_commands
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Postat: 12 okt 2008, 19:43
av Hans Linde
Aaah det vanliga felet från min sida.
Nu trycker jag "enter" igen, och följande listas:
hans@hl:~$ gconftool-2 -a /apps/metacity/keybinding_commands
command_7 = /home/hans/bin/mbrola_start.sh us3 0.3 0.6
command1 =
command_8 = /home/hans/bin/mbrola_start.sh us3
command_screenshot = gnome-screenshot
command_9 = /home/hans/bin/mbrola_start.sh us3 1.4 1.3
command_10 = /home/hans/bin/mbrola_start.sh us3 0.4 0.7
command_11 = /home/hans/bin/mbrola_start.sh us3 0.6
command_12 = /home/hans/bin/mbrola_start.sh us3 0.4 1.1
command_1 = /home/hans/bin/mbrola_start.sh
command_2 = /home/hans/.talsyntes/talsyntes.sh voice en1
command_3 = /home/hans/bin/mbrola_start.sh sw1 0.5
command_4 = /home/hans/bin/mbrola_start.sh sw2 1.0 1.5
command_5 = /home/hans/bin/mbrola_start.sh en1
command_6 = /home/hans/bin/mbrola_start.sh us1
command_window_screenshot = gnome-screenshot --window
hans@hl:~$
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Postat: 12 okt 2008, 19:54
av Konservburk
Av någon anledning verkar bara bindingen till F12 ha tagit. Här är ett första försök till en buggfix...
Kod: Markera allt
#!/bin/sh
# r2
case "$-" in *i*) return ;; esac
export LC_ALL=C
exec 2>&-
APP="Talsyntes"
DIR=~/".talsyntes"
SCRIPT="$DIR/talsyntes.sh"
mkdir -p "$DIR/data" "$DIR/voices"
test "x$SCRIPT" != "x$0" &&
cp -f "$0" "$SCRIPT" 2>&- &&
exec "$SCRIPT" "$@"
XDIALOG="Xdialog --wmclass '$APP' --cancel-label Avbryt --no-tags --stdout"
find -L "$DIR" -maxdepth 1 -name voice -type l -exec rm {} \;
test -h "$DIR/voice" || test "$1" = install || set voice
ls "$DIR"/voices/[a-z][a-z][1-9]:* >/dev/null 2>&- &&
test -x "$SCRIPT" &&
test -x "$DIR/mbrola" ||
set install
cd "$DIR"
case "$1" in
stop)
pkill -P $(pgrep -d, "${SCRIPT##*/}") mplayer
;;
pause)
find "$DIR" -name mplayer.\*.fifo -type p -exec sh -c 'echo pause >{}' \;
;;
start)
"$SCRIPT" stop
find "$DIR" -name mplayer.\*.fifo -type p -exec rm -f {} \;
FIFO="$DIR/mplayer.$$.fifo"
trap 'rm -f "$FIFO"' EXIT
test -p "$FIFO" || mkfifo "$FIFO"
if voice=$(ls voices/"$2":* 2>&-)
then shift
else voice="$(readlink voice)"
fi
voice="${voice#voices/}"
speed="$2"
freq="$3"
volume="$4"
rate="$5"
test -z "$speed" && test -f speed &&
speed=$(awk '{printf("%f",exp(0.01*log(1/5)*$1))}' <speed)
test -z "$freq" && test -f freq &&
freq=$(awk '{printf("%f",exp(-0.01*log(1/5)*$1))}' <freq)
test -z "$volume" && test -f volume &&
volume=$(awk '{printf("%f",exp(-0.01*log(1/5)*$1))}' <volume)
test -z "$rate" && test -f rate &&
rate=$(awk '{printf("%f",16000*exp(-0.01*log(1/3)*$1))}' <rate)
xclip -o |
espeak -v mb-${voice%:*} |
"$DIR/mbrola" -e \
-t "${speed:-1}" \
-f "${freq:-1}" \
-v "${volume:-1}" \
-l "${rate:-16000}" \
"$DIR/voices/$voice" - -.wav |
mplayer -input file="$FIFO" -really-quiet -demuxer audio -
;;
reset)
case "$2" in
'') rm -f speed freq volume rate ;;
speed|freq|volume|rate) rm -f "$2" ;;
esac
;;
adjust)
case "$2" in
'')
test -f speed && speed=$(cat speed) || speed=0
test -f freq && freq=$(cat freq) || freq=0
test -f rate && rate=$(cat rate) || rate=0
set -- $(
$XDIALOG --title "$APP" --separator " " \
--3rangesbox "Röstparametrar" 22 60 \
"Uppläsningshastighet" -100 100 "$speed" \
"Röstläge" -100 100 "$freq" \
"Rösttäthet" -100 100 "$rate"
)
if test $# -eq 3
then
echo "$1" >speed
echo "$2" >freq
echo "$3" >rate
fi
exit
;;
speed) TITLE="Uppläsningshastighet" ;;
freq) TITLE="Röstläge" ;;
volume) TITLE="Uppläsningsvolym" ;;
rate) TITLE="Rösttäthet" ;;
*) exit ;;
esac
test -f "$2" && value=$(cat "$2") || value=0
case "$3" in
'')
value=$(
$XDIALOG --title "$APP" --rangebox "$TITLE" 10 60 -100 100 "$value"
)
test -n "$value" &&
echo "$value" >"$2"
;;
*)
echo "$3" |
awk -vvalue="$value" '{
if($1) value+=$1
else value=0
if(value>100) value=100
if(value<-100) value=-100
print(value)
}' >"$2"
;;
esac
;;
voice)
case "$2" in
'')
voice=$(
eval $XDIALOG --title "'$APP'" --no-close --no-cancel \
--radiolist "'Välj röst'" 20 60 0 $(
ls voices/[a-z][a-z][1-9]:* 2>&- |
while read voice
do test "x$voice" = "x$(readlink voice)" &&
radiobox=on ||
radiobox=off
printf "%s " "'$voice'" "'${voice#voices/}'" "$radiobox"
done
)
)
;;
*)
voice=$(ls "voices/$2":* 2>&-)
;;
esac
test -n "$voice" &&
ln -sf "$voice" voice
;;
install)
URL="http://tcts.fpms.ac.be/synthesis/mbrola"
TMP=$(mktemp)
trap 'rm -f "$TMP"' EXIT
wget -qO- "$URL"/mbrcopybin.html |
sed -n '
s|.*"\(bin/[^"]*.zip\)"[^>]*>[^<]*LINUX i386.*|\1 (0.3Mb)|p
s|.*"\(dba/[^/]*/[^"]*\)"[^>]*>\([^:]*:\s*[^<]*\).*|\1\t\2|p
' >"$TMP"
cd "$DIR"
voices=$(
cd /usr/share/espeak-data/voices/mb &&
echo mb-[a-z][a-z][1-9] |
sed 's/mb-//g;s/\(.\)\s\(.\)/\1|\2/g'
)
voices=$(
eval $XDIALOG --title "'$APP: Installation'" --separator "'|'" \
--checklist "'Välj språk'" 20 60 0 $(
grep -E "/($voices)/" <"$TMP" |
while read file voice
do case "$voice" in
sw*|us*|en*) checkbox=on ;;
*) checkbox=off ;;
esac
printf "%s " "${voice%:*}" "'$voice'" "$checkbox"
done
)
)
test -z "$voices" && exit
rm -f voices/[a-z][a-z][1-9]:* 2>&-
cd data
grep -E "(^bin|/$voices/)" <"$TMP" |
awk '{
size[NR]=size[NR-1]+substr($NF,2,length($NF)-4)
$NF=""
voice[NR]=$0
} END {
for(i=1; i<=NR; i++) {
print(100*size[i]/size[NR],voice[i])
}
}' |
while read progress file voice
do test -f "${file##*/}" ||
wget -q "$URL/$file" 2>&1
if test -z "$voice"
then
unzip -p "${file##*/}" mbrola-linux-i386 >"$DIR"/mbrola
chmod +x "$DIR"/mbrola
else
unzip -p "${file##*/}" "${voice%%:*}" >"$DIR/voices/$voice" 2>&- ||
unzip -p "${file##*/}" "${voice%%:*}/${voice%%:*}" \
>"$DIR/voices/$voice"
fi
echo $progress
done |
$XDIALOG --title "$APP: Installation" --progress "Hämtar Röster..." 10 60
bind_key() {
case "$1" in
metacity)
KEY="/apps/metacity/global_keybindings"
CMD="/apps/metacity/keybinding_commands"
PREFIX="run_command_"
SUFFIX=""
;;
compiz)
KEY="/apps/compiz/general/allscreens/options"
CMD="/apps/compiz/general/allscreens/options"
PREFIX="run_command"
SUFFIX="_key"
;;
esac
gconftool-2 -a "$KEY" |
awk '$1~/^'"$PREFIX"'[0-9]+'"$SUFFIX"'$/ && $3~/^'"$2"'$/{print($1)}' |
while read binding
do echo gconftool-2 -u "$KEY/$binding"
done
ID=$(
gconftool-2 -a "$KEY" |
sed -n "s/^\s*$PREFIX\([0-9]\+\)$SUFFIX\s*=\s*/\1\t/p" |
sort -n |
awk '{if($1-prev>1)exit;prev=$1}END{print(prev+1)}'
)
gconftool-2 \
-s -t str "$KEY/$PREFIX${ID:-1}$SUFFIX" "$2" \
-s -t str "$CMD/${PREFIX#run_}${ID:-1}" "$3"
}
for wm in metacity compiz
do bind_key "$wm" "F1" "$SCRIPT stop"
bind_key "$wm" "F2" "$SCRIPT pause"
bind_key "$wm" "F3" "$SCRIPT start"
bind_key "$wm" "F4" "$SCRIPT start 0.5"
bind_key "$wm" "F5" "$SCRIPT start sw1 0.5"
bind_key "$wm" "F6" "$SCRIPT speed 0"
bind_key "$wm" "F7" "$SCRIPT speed -10"
bind_key "$wm" "F8" "$SCRIPT speed +10"
bind_key "$wm" "F9" "$SCRIPT adjust"
bind_key "$wm" "F10" "$SCRIPT voice"
bind_key "$wm" "F11" "$SCRIPT voice sw1"
bind_key "$wm" "F12" "$SCRIPT voice en1"
done
$XDIALOG --title "$APP" --msgbox "$APP installerad" 10 60
exec "$SCRIPT" voice
;;
speed|freq|volume|rate) exec "$SCRIPT" adjust "$@" ;;
*) exec "$SCRIPT" start "$@" ;;
esac
Kör
~/bin/talsyntes.sh install från en terminal. Lista därefter tangentbindningarna igen så jag kan se om det blev någon skillnad.
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Postat: 12 okt 2008, 20:04
av Hans Linde
Installation av rösterna funkar utmärkt.
Därefter list enl ök:
hans@hl:~$
hans@hl:~$ ~/bin/talsyntes.sh install
gconftool-2 -u /apps/metacity/global_keybindings/run_command_2
gconftool-2 -u /apps/compiz/general/allscreens/options/run_command1_key
hans@hl:~$
hans@hl:~$ gconftool-2 -a /apps/metacity/global_keybindings
run_command_24 = F12
switch_panels_backward = disabled
switch_to_workspace_2 = disabled
switch_to_workspace_3 = disabled
switch_to_workspace_4 = disabled
run_command_10 = disabled
switch_to_workspace_5 = disabled
run_command_11 = disabled
switch_to_workspace_6 = disabled
switch_to_workspace_left = <Control><Alt>Left
run_command_12 = disabled
run_command_13 = F1
switch_to_workspace_7 = disabled
cycle_windows = <Alt>Escape
run_command_14 = F2
switch_to_workspace_8 = disabled
cycle_panels_backward = <Control><Alt>Escape
run_command_15 = F3
switch_to_workspace_9 = disabled
switch_to_workspace_right = <Control><Alt>Right
switch_windows = <Alt>Tab
run_command_16 = F4
run_command_17 = F5
run_command_18 = F6
run_command_19 = F7
run_command_window_screenshot = <Alt>Print
cycle_group = disabled
switch_to_workspace_up = <Control><Alt>Up
run_command_screenshot = Print
run_command_1 = disabled
run_command_2 = F12
run_command_3 = disabled
cycle_windows_backward = disabled
switch_to_workspace_down = <Control><Alt>Down
run_command_4 = disabled
run_command_5 = disabled
switch_to_workspace_10 = disabled
run_command_6 = disabled
switch_group = <Alt>F6
cycle_group_backward = disabled
switch_to_workspace_11 = disabled
run_command_7 = disabled
switch_to_workspace_12 = disabled
run_command_8 = disabled
panel_main_menu = <Alt>F1
run_command_9 = disabled
switch_panels = <Control><Alt>Tab
switch_group_backward = disabled
cycle_panels = <Control><Alt>Escape
switch_windows_backward = <Shift><Alt>Tab
show_desktop = <Control><Alt>d
run_command_20 = F8
run_command_21 = F9
panel_run_dialog = <Alt>F2
run_command_terminal = disabled
run_command_22 = F10
run_command_23 = F11
switch_to_workspace_1 = disabled
hans@hl:~$ gconftool-2 -a /apps/metacity/keybinding_commands
command_7 = /home/hans/bin/mbrola_start.sh us3 0.3 0.6
command_19 = /home/hans/.talsyntes/talsyntes.sh speed -10
command_20 = /home/hans/.talsyntes/talsyntes.sh speed +10
command1 =
command_8 = /home/hans/bin/mbrola_start.sh us3
command_21 = /home/hans/.talsyntes/talsyntes.sh adjust
command_screenshot = gnome-screenshot
command_9 = /home/hans/bin/mbrola_start.sh us3 1.4 1.3
command_10 = /home/hans/bin/mbrola_start.sh us3 0.4 0.7
command_22 = /home/hans/.talsyntes/talsyntes.sh voice
command_11 = /home/hans/bin/mbrola_start.sh us3 0.6
command_23 = /home/hans/.talsyntes/talsyntes.sh voice sw1
command_12 = /home/hans/bin/mbrola_start.sh us3 0.4 1.1
command_24 = /home/hans/.talsyntes/talsyntes.sh voice en1
command_1 = /home/hans/bin/mbrola_start.sh
command_13 = /home/hans/.talsyntes/talsyntes.sh stop
command_2 = /home/hans/.talsyntes/talsyntes.sh voice en1
command_14 = /home/hans/.talsyntes/talsyntes.sh pause
command_3 = /home/hans/bin/mbrola_start.sh sw1 0.5
command_15 = /home/hans/.talsyntes/talsyntes.sh start
command_4 = /home/hans/bin/mbrola_start.sh sw2 1.0 1.5
command_16 = /home/hans/.talsyntes/talsyntes.sh start 0.5
command_5 = /home/hans/bin/mbrola_start.sh en1
command_17 = /home/hans/.talsyntes/talsyntes.sh start sw1 0.5
command_6 = /home/hans/bin/mbrola_start.sh us1
command_18 = /home/hans/.talsyntes/talsyntes.sh speed 0
command_window_screenshot = gnome-screenshot --window
hans@hl:~$
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Postat: 12 okt 2008, 20:15
av Konservburk
Nu kom det iaf en massa nya bindningar. Lustigt någ så verkar F12-bindningen finnas med två gånger, men det är möjligt att det fungerar ändå. De andra tangenterna borde gå att använda nu. Funkar även 12?
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Postat: 12 okt 2008, 20:20
av Hans Linde
Jag ska prova.
Men jag ska också se hur du tänkt att det ska bete sig.
Återkommer.
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Postat: 12 okt 2008, 20:25
av Konservburk
Hans Linde skrev:Jag ska prova.
Men jag ska också se hur du tänkt att det ska bete sig.
Återkommer.
Minns inte om jag skrev hur jag tänkt. Men enligt din lista så är det kopplat så här:
run_command_13 = F1
run_command_14 = F2
run_command_15 = F3
run_command_16 = F4
run_command_17 = F5
run_command_18 = F6
run_command_19 = F7
run_command_20 = F8
run_command_21 = F9
run_command_22 = F10
run_command_23 = F11
run_command_24 = F12
command_13 = /home/hans/.talsyntes/talsyntes.sh stop
command_14 = /home/hans/.talsyntes/talsyntes.sh pause
command_15 = /home/hans/.talsyntes/talsyntes.sh start
command_16 = /home/hans/.talsyntes/talsyntes.sh start 0.5
command_17 = /home/hans/.talsyntes/talsyntes.sh start sw1 0.5
command_18 = /home/hans/.talsyntes/talsyntes.sh speed 0
command_19 = /home/hans/.talsyntes/talsyntes.sh speed -10
command_20 = /home/hans/.talsyntes/talsyntes.sh speed +10
command_21 = /home/hans/.talsyntes/talsyntes.sh adjust
command_22 = /home/hans/.talsyntes/talsyntes.sh voice
command_23 = /home/hans/.talsyntes/talsyntes.sh voice sw1
command_24 = /home/hans/.talsyntes/talsyntes.sh voice en1
F1 - stop
F2 - pause
F3 - start
F4 - start, snabb fart
F5 - start, rösten lukas, snabb fart
F6 - återställ standardfart
F7 - minska fart
F8 - öka fart
F9 - ställ in mbrola-parametrar
F10 - välj röst
F11 - välj rösten lukas
F12 - välj den brittiska rösten
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Postat: 12 okt 2008, 20:40
av Hans Linde
Jah.men du har ju stavat fel i meny....................
Du är helt otroligt!!
Det här bara för bra!!
Javisst , svar på dina fråga: Ja, F12 funkar.
Har du en hel ingenjörsstab i fickan.
Jag behöver samma mig för att göra en seriös analys om vad eller om det är
något jag vill "peta på". Troligen har du redan lösningen innan jag ställ frågan.
Så vänta inte på mig .
Jag ska "leka" med det här ett tag.
Himla kul.
Minns du "uppfinnar-jokken" som för ca 3-års sedan fick ett pris där
han kombinera en läspenna och OCR och talsynten och hörlur. På det sättet
kund man "läsa" papper i fält. Det fick han ett pris för.
Mja, det kanske det var värt.
Att skapa en talsyntes protable till en Pc med Linux, som troligen skulle kunna
kosta skolor 100usd i volym ( då med överig funktion) det är
"större".
Grattis!!!
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Postat: 12 okt 2008, 20:48
av Hans Linde
Jag gillar verkligen "F9".

Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Postat: 12 okt 2008, 21:01
av Konservburk
Hans Linde skrev:Javisst , svar på dina fråga: Ja, F12 funkar.
Jag hittade just varför det blev en dubbelbindning, så det är nu fixat:
Kod: Markera allt
#!/bin/sh
# r3
case "$-" in *i*) return ;; esac
export LC_ALL=C
exec 2>&-
APP="Talsyntes"
DIR=~/".talsyntes"
SCRIPT="$DIR/talsyntes.sh"
mkdir -p "$DIR/data" "$DIR/voices"
test "x$SCRIPT" != "x$0" &&
cp -f "$0" "$SCRIPT" 2>&- &&
exec "$SCRIPT" "$@"
XDIALOG="Xdialog --wmclass '$APP' --cancel-label Avbryt --no-tags --stdout"
find -L "$DIR" -maxdepth 1 -name voice -type l -exec rm {} \;
test -h "$DIR/voice" || test "$1" = install || set voice
ls "$DIR"/voices/[a-z][a-z][1-9]:* >/dev/null 2>&- &&
test -x "$SCRIPT" &&
test -x "$DIR/mbrola" ||
set install
cd "$DIR"
case "$1" in
stop)
pkill -P $(pgrep -d, "${SCRIPT##*/}") mplayer
;;
pause)
find "$DIR" -name mplayer.\*.fifo -type p -exec sh -c 'echo pause >{}' \;
;;
start)
"$SCRIPT" stop
find "$DIR" -name mplayer.\*.fifo -type p -exec rm -f {} \;
FIFO="$DIR/mplayer.$$.fifo"
trap 'rm -f "$FIFO"' EXIT
test -p "$FIFO" || mkfifo "$FIFO"
if voice=$(ls voices/"$2":* 2>&-)
then shift
else voice="$(readlink voice)"
fi
voice="${voice#voices/}"
speed="$2"
freq="$3"
volume="$4"
rate="$5"
test -z "$speed" && test -f speed &&
speed=$(awk '{printf("%f",exp(0.01*log(1/5)*$1))}' <speed)
test -z "$freq" && test -f freq &&
freq=$(awk '{printf("%f",exp(-0.01*log(1/5)*$1))}' <freq)
test -z "$volume" && test -f volume &&
volume=$(awk '{printf("%f",exp(-0.01*log(1/5)*$1))}' <volume)
test -z "$rate" && test -f rate &&
rate=$(awk '{printf("%f",16000*exp(-0.01*log(1/3)*$1))}' <rate)
xclip -o |
espeak -v mb-${voice%:*} |
"$DIR/mbrola" -e \
-t "${speed:-1}" \
-f "${freq:-1}" \
-v "${volume:-1}" \
-l "${rate:-16000}" \
"$DIR/voices/$voice" - -.wav |
mplayer -input file="$FIFO" -really-quiet -demuxer audio -
;;
reset)
case "$2" in
'') rm -f speed freq volume rate ;;
speed|freq|volume|rate) rm -f "$2" ;;
esac
;;
adjust)
case "$2" in
'')
test -f speed && speed=$(cat speed) || speed=0
test -f freq && freq=$(cat freq) || freq=0
test -f rate && rate=$(cat rate) || rate=0
set -- $(
$XDIALOG --title "$APP" --separator " " \
--3rangesbox "Röstparametrar" 22 60 \
"Uppläsningshastighet" -100 100 "$speed" \
"Röstläge" -100 100 "$freq" \
"Rösttäthet" -100 100 "$rate"
)
if test $# -eq 3
then
echo "$1" >speed
echo "$2" >freq
echo "$3" >rate
fi
exit
;;
speed) TITLE="Uppläsningshastighet" ;;
freq) TITLE="Röstläge" ;;
volume) TITLE="Uppläsningsvolym" ;;
rate) TITLE="Rösttäthet" ;;
*) exit ;;
esac
test -f "$2" && value=$(cat "$2") || value=0
case "$3" in
'')
value=$(
$XDIALOG --title "$APP" --rangebox "$TITLE" 10 60 -100 100 "$value"
)
test -n "$value" &&
echo "$value" >"$2"
;;
*)
echo "$3" |
awk -vvalue="$value" '{
if($1) value+=$1
else value=0
if(value>100) value=100
if(value<-100) value=-100
print(value)
}' >"$2"
;;
esac
;;
voice)
case "$2" in
'')
voice=$(
eval $XDIALOG --title "'$APP'" --no-close --no-cancel \
--radiolist "'Välj röst'" 20 60 0 $(
ls voices/[a-z][a-z][1-9]:* 2>&- |
while read voice
do test "x$voice" = "x$(readlink voice)" &&
radiobox=on ||
radiobox=off
printf "%s " "'$voice'" "'${voice#voices/}'" "$radiobox"
done
)
)
;;
*)
voice=$(ls "voices/$2":* 2>&-)
;;
esac
test -n "$voice" &&
ln -sf "$voice" voice
;;
install)
URL="http://tcts.fpms.ac.be/synthesis/mbrola"
TMP=$(mktemp)
trap 'rm -f "$TMP"' EXIT
wget -qO- "$URL"/mbrcopybin.html |
sed -n '
s|.*"\(bin/[^"]*.zip\)"[^>]*>[^<]*LINUX i386.*|\1 (0.3Mb)|p
s|.*"\(dba/[^/]*/[^"]*\)"[^>]*>\([^:]*:\s*[^<]*\).*|\1\t\2|p
' >"$TMP"
cd "$DIR"
voices=$(
cd /usr/share/espeak-data/voices/mb &&
echo mb-[a-z][a-z][1-9] |
sed 's/mb-//g;s/\(.\)\s\(.\)/\1|\2/g'
)
voices=$(
eval $XDIALOG --title "'$APP: Installation'" --separator "'|'" \
--checklist "'Välj språk'" 20 60 0 $(
grep -E "/($voices)/" <"$TMP" |
while read file voice
do case "$voice" in
sw*|us*|en*) checkbox=on ;;
*) checkbox=off ;;
esac
printf "%s " "${voice%:*}" "'$voice'" "$checkbox"
done
)
)
test -z "$voices" && exit
rm -f voices/[a-z][a-z][1-9]:* 2>&-
cd data
grep -E "(^bin|/$voices/)" <"$TMP" |
awk '{
size[NR]=size[NR-1]+substr($NF,2,length($NF)-4)
$NF=""
voice[NR]=$0
} END {
for(i=1; i<=NR; i++) {
print(100*size[i]/size[NR],voice[i])
}
}' |
while read progress file voice
do test -f "${file##*/}" ||
wget -q "$URL/$file" 2>&1
if test -z "$voice"
then
unzip -p "${file##*/}" mbrola-linux-i386 >"$DIR"/mbrola
chmod +x "$DIR"/mbrola
else
unzip -p "${file##*/}" "${voice%%:*}" >"$DIR/voices/$voice" 2>&- ||
unzip -p "${file##*/}" "${voice%%:*}/${voice%%:*}" \
>"$DIR/voices/$voice"
fi
echo $progress
done |
$XDIALOG --title "$APP: Installation" \
--no-close --gauge "Hämtar Röster..." 10 60
bind_key() {
case "$1" in
metacity)
KEY="/apps/metacity/global_keybindings"
CMD="/apps/metacity/keybinding_commands"
PREFIX="run_command_"
SUFFIX=""
;;
compiz)
KEY="/apps/compiz/general/allscreens/options"
CMD="/apps/compiz/general/allscreens/options"
PREFIX="run_command"
SUFFIX="_key"
;;
esac
gconftool-2 -a "$KEY" |
awk '$1~/^'"$PREFIX"'[0-9]+'"$SUFFIX"'$/ && $3~/^'"$2"'$/{print($1)}' |
while read binding
do gconftool-2 -u "$KEY/$binding"
done
ID=$(
gconftool-2 -a "$KEY" |
sed -n "s/^\s*$PREFIX\([0-9]\+\)$SUFFIX\s*=\s*/\1\t/p" |
sort -n |
awk '{if($1-prev>1)exit;prev=$1}END{print(prev+1)}'
)
gconftool-2 \
-s -t str "$KEY/$PREFIX${ID:-1}$SUFFIX" "$2" \
-s -t str "$CMD/${PREFIX#run_}${ID:-1}" "$3"
}
for wm in metacity compiz
do bind_key "$wm" "F1" "$SCRIPT stop"
bind_key "$wm" "F2" "$SCRIPT pause"
bind_key "$wm" "F3" "$SCRIPT start"
bind_key "$wm" "F4" "$SCRIPT start 0.5"
bind_key "$wm" "F5" "$SCRIPT start sw1 0.5"
bind_key "$wm" "F6" "$SCRIPT speed 0"
bind_key "$wm" "F7" "$SCRIPT speed -10"
bind_key "$wm" "F8" "$SCRIPT speed +10"
bind_key "$wm" "F9" "$SCRIPT adjust"
bind_key "$wm" "F10" "$SCRIPT voice"
bind_key "$wm" "F11" "$SCRIPT voice sw1"
bind_key "$wm" "F12" "$SCRIPT voice en1"
done
$XDIALOG --title "$APP" --msgbox "$APP installerad" 10 60
exec "$SCRIPT" voice
;;
speed|freq|volume|rate) exec "$SCRIPT" adjust "$@" ;;
*) exec "$SCRIPT" start "$@" ;;
esac
Du borde även testa att installera på datorn med compiz. Tanken är att det ska fungera även där, men det kan ju ha smugit sig in något fel där också.
Exakt hur jag placerade bindningarna var ganska slumpmässigt utan någon vidare eftertanke. Jag antar att du har bättre koll på vad som är bra och dåligt när det gäller den biten. Det finns ju dessutom flera kommandon som inte är bundna, men som kanske borde vara det. Och kommandon som inte finns ännu, men som kanske borde finnas.
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Postat: 12 okt 2008, 21:06
av Konservburk
Hans Linde skrev:Jag gillar verkligen "F9".

Jag vet inte riktigt om jag fick till skalorna helt bra. Som det är nu så kan man höja och sänka till nästan helt oanvändbara värden. Hugger man bort lite i kanterna så blir det istället lättare att finjustera i området som faktiskt är vettigt att använda. Frågan är isf hur mycket som är ok att hugga bort.
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Postat: 12 okt 2008, 21:25
av Hans Linde
Det första jag hittar, är av stor betydelse ur användarhänseende.
Kanske det finns annat handhavande sätt, att komma ikring det med,
men just nu ser jag inte det.
Jag markerar en stor text och vill justera något.
Trycker paus och gör justeringen, men den inträffar först om rösten stannas,
och då börjar den från början. Jag vet inte var i texten, jag är.
Om det gick att justera då rösten läste, också eller som alternativ,
vore det "bättre.
Det kanske är en utmaning även för dig?
Dock har vi fortfarande rösterna att fundera på.
De är okay, men "det finns bättre" och även på för dessa "finns det utrymme"
till förbättring. Jag har funderat på om det finns någon anledning till
att vi inte skulle överväga de röster som används av Acapella.
Koden för dessa röster kan ju inte vara platformsberoende,
så det är mera en frågan om de vill vara med "på resan" eller
"stå bredvid" med sin "high performance voice print".
Här finns några röster:
http://www.svensktalteknologi.se/wordreadplusPC.html
http://www.clarosoftware.com/index.php? ... 1f6tc4ddm7
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Postat: 12 okt 2008, 21:38
av Hans Linde
Den ny filen är installerad och testad litegrann.
Jag har inga invändningar. Jag har inte heller upptäckt
det fel du fixat med den här filen.
Jag kan titta nogrannare på röstjusteringen, om du vill
men jag antar att det kan påverkas av det nya synpunkterna kom med.
Vad önskas?
Skönt att jag slipper granska texten läsande (traglandes).

Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Postat: 12 okt 2008, 21:49
av Konservburk
Hans Linde skrev:Jag markerar en stor text och vill justera något.
Trycker paus och gör justeringen, men den inträffar först om rösten stannas,
och då börjar den från början. Jag vet inte var i texten, jag är.
Om det gick att justera då rösten läste, också eller som alternativ,
vore det "bättre.
Det kanske är en utmaning även för dig?
Det är helt klart en utmaning eftersom mbrola-parametrarna skickas med när man startar själva mbrola. Vad förstår det som så finns det inget sätt att justera dessa i efterhand, utan du måste stoppa mbrola och starta den igen med nya parametrar.
Det är möjligt att man på något sätt kan hålla koll på hur långt i texten man har kommit, och starta om programmet från den punkten, men det känns inte som att det är speciellt enkelt att ordna. Det lättaste just nu är nog att försöka med en liknande hugga-upp-variant som vi gjorde med festival. Då startar en ny mbrola-process med möjlighet att skicka med nya parametrar vid varje klipp-punkt. Då skulle man även kunna hålla koll på var i texten man är och kanske till och med ha en tangent som backar en mening eller liknande.
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Postat: 12 okt 2008, 21:55
av Hans Linde
2a önskan:
Jag blir att mera nöjd med det grafiska en jag trott. Dock är det lite svårt med
precisionen, pga att rutans storlek och handens rörelse inte möter mina behov.
Istället för att göra en ruta som skymmer texten. Kan det gå att markera
reglaget med markören, fast justeringen kan också ske med "-"F7 allt "+" F8?
Nu börjar det bli svårt att inte önska, att det också ska vara dynamiskt( eller
är det bättre att säga , justerbart då rösten talar,)
Jag minns att du nämnde något om filstorlek för några dagar sedan.

Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Postat: 12 okt 2008, 22:01
av Hans Linde
Finns det någon anledning att kontakta De som ligger bakom Acapela-rösterna?
Eller ligger det utanför det här "scoopet".
I fall det är intressant, men du inte har en stab mäniskor som kan tala med dem,
utan är förvisad till det som finns på
www..... Hmm..nja, det iaf varit mitt yrke
övertala folk...och nu ser det ut som om jag kommer att få tid (tyvärr.)
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Postat: 12 okt 2008, 22:05
av Konservburk
Hans Linde skrev:Jag blir att mera nöjd med det grafiska en jag trott. Dock är det lite svårt med
precisionen, pga att rutans storlek och handens rörelse inte möter mina behov.
Istället för att göra en ruta som skymmer texten. Kan det gå att markera
reglaget med markören, fast justeringen kan också ske med "-"F7 allt "+" F8?
Går det inte att reglera med piltangenterna? Tab för att byta reglage?
Eller menar du justering utan någon ruta alls? Som F7 och F8, fast för annat än uppläsningsfarten? Det går redan att göra med:
~/bin/talsyntes.sh freq +10
~/bin/talsyntes.sh rate +10
~/bin/talsyntes.sh volume +10
Fast de funktionerna är inte bundna till någon tangent för tillfället.
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Postat: 12 okt 2008, 22:12
av Konservburk
Hans Linde skrev:Finns det någon anledning att kontakta De som ligger bakom Acapela-rösterna?
Eller ligger det utanför det här "scoopet".
Det känns som att det ligger lite bortom vad som är möjligt. En talsyntesröst är inte bara en röst, utan även en massa kod som tolkar text och gör om den till något fonetiskt på ett lämpligt sätt som sedan själva rösten kan arbeta med. Så även om man mot förmodan får tillgång till rösterna så krävs det antagligen en heltidstjänst för att kunna få till någonting som ens är i närheten av orginalprodukten.
Det vi har gjort hittils är inte mer än gränssnitt till redan färdiga lösningar.
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Postat: 12 okt 2008, 22:15
av Hans Linde
Jag som jag antog. Du har redan lösningen. Pilarna o tab är mycket bättre.
Ja så då är det bara det där dynamiska och trimmingen på
reglagens ändlägen.
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Postat: 12 okt 2008, 22:27
av Hans Linde
Ang Compiz och Metacityså har har tänkt flytta över något av detta till min "huvud-PC".
Den är också i386, som testverktyget vi använde först. Jag har dock inte klart för mig än
vilken grafik det är. Sa du att det berode på grafikkortet, dvs ATI eller Nvidia?
Som sedan kväver C alt M?
Nja behövs det, så röjer jag upp i TestPCn , så det kan testas där också.
Säg till när du vill ha det gjort.