Talsyntes:____"För Folk I Tiden"
Kategoriregler
Varning! Det som diskuteras här är inte alltid enkelt och det kan hända att vissa installationer/modifieringar kan göra ditt system oanvändbart. Inget för nybörjare. Gör alltid backup av känslig data innan du experimenterar.
Varning! Det som diskuteras här är inte alltid enkelt och det kan hända att vissa installationer/modifieringar kan göra ditt system oanvändbart. Inget för nybörjare. Gör alltid backup av känslig data innan du experimenterar.
-
- Inlägg: 3375
- Blev medlem: 06 sep 2008, 07:46
- OS: Crunchbang
- Utgåva: Vet inte/ingen utgåva passar
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
okay det behövs filnamn och revisionsnummer på filerna från dig.
Nu har jag snart tre st PC och vi hoppar mellan dessa,
och gör uppdateringar vid olika tillfällen.
Det är uppenbar risk att det blir fel.
Har du ett bättre förslag?
Nu har jag snart tre st PC och vi hoppar mellan dessa,
och gör uppdateringar vid olika tillfällen.
Det är uppenbar risk att det blir fel.
Har du ett bättre förslag?
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Revisionsnumret står på andra raden i filen. I den senaste står det:Hans Linde skrev:okay det behövs filnamn och revisionsnummer på filerna från dig.
Nu har jag snart tre st PC och vi hoppar mellan dessa,
och gör uppdateringar vid olika tillfällen.
Det är uppenbar risk att det blir fel.
Har du ett bättre förslag?
Kod: Markera allt
#/bin/sh
# r3
-
- Inlägg: 3375
- Blev medlem: 06 sep 2008, 07:46
- OS: Crunchbang
- Utgåva: Vet inte/ingen utgåva passar
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Tillslut fick jag till det.
Jag behåller filnamnet.
r3 i är förhoppningsvis tillräckligt.
Jag behåller filnamnet.
r3 i är förhoppningsvis tillräckligt.
-
- Inlägg: 3375
- Blev medlem: 06 sep 2008, 07:46
- OS: Crunchbang
- Utgåva: Vet inte/ingen utgåva passar
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Nu trorjag att i386/M och AMD64 är lika.
Kan vi titta på kontras/färg valet,
innan vi över går till i386/Compiz
(den är i stort klar, men jag har inte börjat med
finliret ang talsyntesen.)
Kan vi titta på kontras/färg valet,
innan vi över går till i386/Compiz
(den är i stort klar, men jag har inte börjat med
finliret ang talsyntesen.)
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Det är som sagt gtk-temat som avgör. Du kan kanske hitta något gtk-tema du gillar här:Hans Linde skrev:Kan vi titta på kontras/färg valet,
http://www.gnome-look.org/index.php?xso ... ntmode=100
Det går antagligen att modiferera standardtemat också. Jag vet iofs inte hur man gör sånt, men det går säker att ta reda på mha google.
-
- Inlägg: 3375
- Blev medlem: 06 sep 2008, 07:46
- OS: Crunchbang
- Utgåva: Vet inte/ingen utgåva passar
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Jag har varit "inne" och justerat på det som finns i Ubuntu.
Men det påverkar inte talsyntes-rutan.
Anledning till att jag tar upp det är att för en tydlig lösning
om möjligt för något slutgiltigt.
Vi behöver inte "slita-hund" endast för mitt behov,
för i så fall tycker jag det duger.
Men igenligen är det en sak att trimma rösten och
något annat, om det här är ett fönster valt av den
som gjort programmodulen. ( "Vem vet han/hon
kanske inser begränsning."
)
Rösttrimning känns mera angeläget, eller?
Men det påverkar inte talsyntes-rutan.
Anledning till att jag tar upp det är att för en tydlig lösning
om möjligt för något slutgiltigt.
Vi behöver inte "slita-hund" endast för mitt behov,
för i så fall tycker jag det duger.
Men igenligen är det en sak att trimma rösten och
något annat, om det här är ett fönster valt av den
som gjort programmodulen. ( "Vem vet han/hon
kanske inser begränsning."

Rösttrimning känns mera angeläget, eller?
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Du kan ju testa om zenity ger vackrare dialogrutor...
Kod: Markera allt
zenity --info
Kod: Markera allt
zenity --scale
-
- Inlägg: 3375
- Blev medlem: 06 sep 2008, 07:46
- OS: Crunchbang
- Utgåva: Vet inte/ingen utgåva passar
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Den är mycket lik.
Men markeringen är något tydligare.
Så om det inte tillför andra begränsningar så är det bättre.
(det är betydligtbättre, eftersom den andra nät syntes.)
Men markeringen är något tydligare.
Så om det inte tillför andra begränsningar så är det bättre.
(det är betydligtbättre, eftersom den andra nät syntes.)
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Frågan är då hur zenity hanterar utf-8... gör gärna ett test:Hans Linde skrev:Den är mycket lik.
Men markeringen är något tydligare.
Så om det inte tillför andra begränsningar så är det bättre.
(det är betydligtbättre, eftersom den andra nät syntes.)
Kod: Markera allt
zenity --scale --text $(echo ÅÄÖåäö)
Kod: Markera allt
zenity --scale --text $(echo ÅÄÖåäö | iconv -f utf-8 -t iso8859-1)
Kod: Markera allt
zenity --scale --text $(echo ÅÄÖåäö | iconv -f iso8859-1 -t utf-8)
-
- Inlägg: 3375
- Blev medlem: 06 sep 2008, 07:46
- OS: Crunchbang
- Utgåva: Vet inte/ingen utgåva passar
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Åter från hälsopasset.
Det här ska bli intressant.
Å så var det katten igen......flytta på dig.....det är inte kunstigt om det blir bokstäver liiiiiiiiiiiite öve allt.
Nu'...jag startar på i386/M.
hans@hans-ubuntu:~$ zenity --scale --text $(echo ÅÄÖåäö | iconv -f utf-8 -t iso8859-1)
This option is not available. Please see --help for all possible usages.
hans@hans-ubuntu:~$ zenity -help
This option is not available. Please see --help for all possible usages.
hans@hans-ubuntu:~$
hans@hans-ubuntu:~$ zenity --scale --text $(echo ÅÄÖåäö | iconv -f iso8859-1 -t utf-8)
hans@hans-ubuntu:~$
Det kommer inte åt problemet jag tog upp.
översta bilden är av 1a raden
undre av 3e kommandot
2a kommandot är först av terminalutskriften.
Den här fonten är också bättre.
Men det jag tänkte på var om det vi nu gör kommer att kunna användas
som program-modul till Ubuntu. Ja då kommer en sådan gör "synbarhet-pryl"
göra att den blir lättare att använd för de som har begränsad syn, även om det inte
har en fullständig skada.
Det här ska bli intressant.
Å så var det katten igen......flytta på dig.....det är inte kunstigt om det blir bokstäver liiiiiiiiiiiite öve allt.
Nu'...jag startar på i386/M.
hans@hans-ubuntu:~$ zenity --scale --text $(echo ÅÄÖåäö | iconv -f utf-8 -t iso8859-1)
This option is not available. Please see --help for all possible usages.
hans@hans-ubuntu:~$ zenity -help
This option is not available. Please see --help for all possible usages.
hans@hans-ubuntu:~$
hans@hans-ubuntu:~$ zenity --scale --text $(echo ÅÄÖåäö | iconv -f iso8859-1 -t utf-8)
hans@hans-ubuntu:~$
Det kommer inte åt problemet jag tog upp.
översta bilden är av 1a raden
undre av 3e kommandot
2a kommandot är först av terminalutskriften.
Den här fonten är också bättre.
Men det jag tänkte på var om det vi nu gör kommer att kunna användas
som program-modul till Ubuntu. Ja då kommer en sådan gör "synbarhet-pryl"
göra att den blir lättare att använd för de som har begränsad syn, även om det inte
har en fullständig skada.
-
- Inlägg: 3375
- Blev medlem: 06 sep 2008, 07:46
- OS: Crunchbang
- Utgåva: Vet inte/ingen utgåva passar
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Hur många reglage går det att få med Zenity?
-
- Inlägg: 3375
- Blev medlem: 06 sep 2008, 07:46
- OS: Crunchbang
- Utgåva: Vet inte/ingen utgåva passar
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Då är i386/C installerad, med allt som jag tror kan behövas.
Men tyvärr kan jag inte komma till någon anna slutsatt än att talsyntes.sh (r3) uppskattar inte
Compiz. Rösterna lägger sig inte där det förväntas. Inga tangentbindningar görs.
Jag är berädd för felsökning.
Men tyvärr kan jag inte komma till någon anna slutsatt än att talsyntes.sh (r3) uppskattar inte
Compiz. Rösterna lägger sig inte där det förväntas. Inga tangentbindningar görs.
Jag är berädd för felsökning.
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Då börjar vi som förra gången... med att lista alla tangentbindningar:Hans Linde skrev:Då är i386/C installerad, med allt som jag tror kan behövas.
Men tyvärr kan jag inte komma till någon anna slutsatt än att talsyntes.sh (r3) uppskattar inte
Compiz. Rösterna lägger sig inte där det förväntas. Inga tangentbindningar görs.
Jag är berädd för felsökning.
Kod: Markera allt
gconftool-2 -a /apps/compiz/general/allscreens/options
-
- Inlägg: 3375
- Blev medlem: 06 sep 2008, 07:46
- OS: Crunchbang
- Utgåva: Vet inte/ingen utgåva passar
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Ursäkta , jag smet från min "post".
Lista:
i386c@i386c-ubuntu:~$ gconftool-2 -a /apps/compiz/general/allscreens/options
command5 =
show_desktop_key = <Control><Alt>d
command10 =
command6 =
ignore_hints_when_maximized = true
command11 =
command7 =
toggle_window_maximized_horizontally_key = Disabled
command8 =
run_command_window_screenshot_key = <Alt>Print
toggle_window_maximized_key = Disabled
command9 =
texture_filter = 1
opacity_increase_button = <Alt>Button4
show_desktop_edge =
click_to_focus = true
run_command10_key = Disabled
ping_delay = 5000
close_window_button = Disabled
run_command11_key = Disabled
unmaximize_window_key = <Alt>F5
edge_delay = 0
cursor_size = 18
command_screenshot = gnome-screenshot
run_command_terminal_key = Disabled
raise_on_click = true
run_command_screenshot_key = Print
window_menu_button = <Alt>Button3
active_plugins = [core,dbus,place,move,resize,decoration,png,svg,imgjpeg,text,neg,video,wall,snap,animation,scale,expo,switcher,regex,resizeinfo,workarounds,ezoom,vpswitch,extrawm,fade,scaleaddon,scalefilter,session,shift,wobbly]
lower_window_button = <Alt>Button6
run_command0_key = Disabled
minimize_window_button = Disabled
close_window_key = <Alt>F4
cursor_theme = default
run_command1_key = Disabled
toggle_window_maximized_button = Disabled
run_command2_key = Disabled
opacity_decrease_button = <Alt>Button5
run_command3_key = Disabled
lower_window_key = Disabled
hide_skip_taskbar_windows = true
run_command4_key = Disabled
run_command5_key = Disabled
raise_window_button = <Control>Button6
run_command6_key = Disabled
raise_window_key = Disabled
run_command7_key = Disabled
run_command8_key = Disabled
slow_animations_key = Disabled
run_command9_key = Disabled
maximize_window_horizontally_key = Disabled
command_terminal = gnome-terminal
run_key = <Alt>F2
main_menu_key = <Alt>F1
minimize_window_key = <Alt>F9
audible_bell = true
toggle_window_maximized_vertically_key = Disabled
autoraise_delay = 1000
maximize_window_vertically_key = Disabled
command0 =
maximize_window_key = <Alt>F10
toggle_window_shaded_key = <Control><Alt>s
command1 =
autoraise = true
command2 =
window_menu_key = <Alt>space
command3 =
command4 =
command_window_screenshot = gnome-screenshot --window
i386c@i386c-ubuntu:~$
Lista:
i386c@i386c-ubuntu:~$ gconftool-2 -a /apps/compiz/general/allscreens/options
command5 =
show_desktop_key = <Control><Alt>d
command10 =
command6 =
ignore_hints_when_maximized = true
command11 =
command7 =
toggle_window_maximized_horizontally_key = Disabled
command8 =
run_command_window_screenshot_key = <Alt>Print
toggle_window_maximized_key = Disabled
command9 =
texture_filter = 1
opacity_increase_button = <Alt>Button4
show_desktop_edge =
click_to_focus = true
run_command10_key = Disabled
ping_delay = 5000
close_window_button = Disabled
run_command11_key = Disabled
unmaximize_window_key = <Alt>F5
edge_delay = 0
cursor_size = 18
command_screenshot = gnome-screenshot
run_command_terminal_key = Disabled
raise_on_click = true
run_command_screenshot_key = Print
window_menu_button = <Alt>Button3
active_plugins = [core,dbus,place,move,resize,decoration,png,svg,imgjpeg,text,neg,video,wall,snap,animation,scale,expo,switcher,regex,resizeinfo,workarounds,ezoom,vpswitch,extrawm,fade,scaleaddon,scalefilter,session,shift,wobbly]
lower_window_button = <Alt>Button6
run_command0_key = Disabled
minimize_window_button = Disabled
close_window_key = <Alt>F4
cursor_theme = default
run_command1_key = Disabled
toggle_window_maximized_button = Disabled
run_command2_key = Disabled
opacity_decrease_button = <Alt>Button5
run_command3_key = Disabled
lower_window_key = Disabled
hide_skip_taskbar_windows = true
run_command4_key = Disabled
run_command5_key = Disabled
raise_window_button = <Control>Button6
run_command6_key = Disabled
raise_window_key = Disabled
run_command7_key = Disabled
run_command8_key = Disabled
slow_animations_key = Disabled
run_command9_key = Disabled
maximize_window_horizontally_key = Disabled
command_terminal = gnome-terminal
run_key = <Alt>F2
main_menu_key = <Alt>F1
minimize_window_key = <Alt>F9
audible_bell = true
toggle_window_maximized_vertically_key = Disabled
autoraise_delay = 1000
maximize_window_vertically_key = Disabled
command0 =
maximize_window_key = <Alt>F10
toggle_window_shaded_key = <Control><Alt>s
command1 =
autoraise = true
command2 =
window_menu_key = <Alt>space
command3 =
command4 =
command_window_screenshot = gnome-screenshot --window
i386c@i386c-ubuntu:~$
-
- Inlägg: 3375
- Blev medlem: 06 sep 2008, 07:46
- OS: Crunchbang
- Utgåva: Vet inte/ingen utgåva passar
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Kan inte var mycket där.
Jag tittade i "konfigurationredigeraren" och fann inga kopplingar.
dvs "alt F2" o "gconf-editor".
Jag tittade i "konfigurationredigeraren" och fann inga kopplingar.
dvs "alt F2" o "gconf-editor".
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Kör ~/bin/talsyntes.sh install en gång och lista sedan bindningarna igen... jag vill se om någonting ändras.
-
- Inlägg: 3375
- Blev medlem: 06 sep 2008, 07:46
- OS: Crunchbang
- Utgåva: Vet inte/ingen utgåva passar
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Kanske det är värt att kolla om jag har de filer som behövs.
Eller är det sov jag ror att jag läste att "talsentes.sh" ska slanga ner, installera och koppla, "alla i ett".
Isf är jag imponerad, även om jag tror att jag kan ha upptäck en brist.
Nu spekulerar jag och kanske är helt fel ute, men eftersom ingen avbryter mig
, så tar
jag tillfället. Jag kör nämligen "~/bin/talsyntes.sh" 2ggr i terminal. Jag miss inte hur mycket av det som
jag nu har "lagt till rätta" fanns vid de olika tillfällen. Men poängen är att
det kom vid båda tillfällen svar om att "katalog inte fanns". Jag har ju tidigare haft
problem med behörigheten i den mappar som filerna varit.
Äventuellt finns det något i det att beakta.
Vad säger du?
Eller är det sov jag ror att jag läste att "talsentes.sh" ska slanga ner, installera och koppla, "alla i ett".
Isf är jag imponerad, även om jag tror att jag kan ha upptäck en brist.
Nu spekulerar jag och kanske är helt fel ute, men eftersom ingen avbryter mig



jag tillfället. Jag kör nämligen "~/bin/talsyntes.sh" 2ggr i terminal. Jag miss inte hur mycket av det som
jag nu har "lagt till rätta" fanns vid de olika tillfällen. Men poängen är att
det kom vid båda tillfällen svar om att "katalog inte fanns". Jag har ju tidigare haft
problem med behörigheten i den mappar som filerna varit.
Äventuellt finns det något i det att beakta.
Vad säger du?
-
- Inlägg: 3375
- Blev medlem: 06 sep 2008, 07:46
- OS: Crunchbang
- Utgåva: Vet inte/ingen utgåva passar
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Det är inga bindningar under Compiz på "ja vad den nu heter"
det ligger inga röster i ~/.talsyntes/voices/
i386c@i386c-ubuntu:~$
i386c@i386c-ubuntu:~$ ~/bin/talsyntes.sh install
i386c@i386c-ubuntu:~$
det ligger inga röster i ~/.talsyntes/voices/
i386c@i386c-ubuntu:~$
i386c@i386c-ubuntu:~$ ~/bin/talsyntes.sh install
i386c@i386c-ubuntu:~$
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Det låter ju inte bra. Finns det någonting alls i ~/.talsyntes ?Hans Linde skrev:Det är inga bindningar under Compiz på "ja vad den nu heter"
det ligger inga röster i ~/.talsyntes/voices/
i386c@i386c-ubuntu:~$
i386c@i386c-ubuntu:~$ ~/bin/talsyntes.sh install
i386c@i386c-ubuntu:~$
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Här har du "r4" med scaletempo-stöd:
Kod: Markera allt
#!/bin/sh
# r4
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/}"
scale_mapping() {
awk -vmin="$1" -vdef="$2" -vmax="$3" -vbend="${4:-1}" '
function f(x)
{
factor = (a != b) ? 2*a*b*log(a/b)/(a-b) : (a+b)
return factor * log(x) * x / (x^2-1) - ((a < b) ? a : b) / bend
}
BEGIN {
a = (max - def)
b = (def - min)
if (max < min) { a = -a; b = -b; }
x0=2; x1=3; y0=f(x0); y1=f(x1); lim=1e-4
while( x1>1 && ( (x1-x0)>lim || (x0-x1)>lim) ) {
y1 = f(x1); x2 = x1 - (x1 - x0) * y1 / (y1 - y0)
x0 = x1; x1 = x2; y0 = y1;
}
incl = (x1>1) ? x1 : 1
}
{
expo = $1 / 100
if (incl != 1) expo = (incl^expo - 1/incl^expo) / (incl - 1/incl)
expo = (expo + 1) / 2
if (a != b) expo = ((a / b)^(2 * expo) - 1) / ((a / b)^2 - 1)
printf("%f\n", min + (max - min) * expo)
}'
}
speed="$2"
test -z "$speed" && test -f speed &&
speed=$(scale_mapping 5 1 0.2 <speed)
freq="$3"
test -z "$freq" && test -f freq &&
freq=$(scale_mapping 0.2 1 5 <freq)
volume="$4"
test -z "$volume" && test -f volume &&
volume=$(scale_mapping 0.2 1 5 <volume)
rate="$5"
test -z "$rate" && test -f rate &&
rate=$(scale_mapping 1000 16000 48000 <rate)
scale=$(scale_mapping 0.2 1 5 <scale)
stride=$(scale_mapping 1 60 400 <stride)
overlap=$(scale_mapping 0 0.2 1 <overlap)
search=$(scale_mapping 0 14 200 <search)
method=$(cat <method)
accel=$(scale_mapping 0.2 1 5 <accel)
scaletempo="$scaletempo${scaletempo+:}scale=${scale:-1}"
scaletempo="$scaletempo${scaletempo+:}stride=${stride:-60}"
scaletempo="$scaletempo${scaletempo+:}overlap=${overlap:-0.20}"
scaletempo="$scaletempo${scaletempo+:}search=${search:-14}"
scaletempo="$scaletempo${scaletempo+:}speed=${method:-tempo}"
scaletempo="-af scaletempo=$scaletempo -speed ${accel:-1}"
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 -really-quiet -input file="$FIFO" $scaletempo -demuxer audio -
;;
reset)
case "$2" in
'')
rm -f speed freq volume rate scale stride overlap search method accel
;;
speed|freq|volume|rate|scale|stride|overlap|search|method|accel)
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" ;;
scale|stride|overlap|search|accel) TITLE="scaletempo: $2" ;;
method)
test -f "$2" && value=$(cat "$2") || value=tempo
value=$(
eval $XDIALOG --title "'$APP'" --no-close --no-cancel \
--radiolist "'scaletempo: method'" 20 60 0 $(
for method in tempo pitch both none
do test "x$method" = "x$value" &&
radiobox=on ||
radiobox=off
printf "%s " "$method" "$method" "$radiobox"
done
)
)
test -n "$value" &&
echo "$value" >"$2"
exit
;;
*) 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 adjust"
bind_key "$wm" "F5" "$SCRIPT volume"
bind_key "$wm" "F6" "$SCRIPT rate"
bind_key "$wm" "F7" "$SCRIPT scale"
bind_key "$wm" "F8" "$SCRIPT stride"
bind_key "$wm" "F9" "$SCRIPT overlap"
bind_key "$wm" "F10" "$SCRIPT search"
bind_key "$wm" "F11" "$SCRIPT method"
bind_key "$wm" "F12" "$SCRIPT accel"
done
$XDIALOG --title "$APP" --msgbox "$APP installerad" 10 60
exec "$SCRIPT" voice
;;
speed|freq|volume|rate|scale|stride|overlap|search|method|accel)
exec "$SCRIPT" adjust "$@"
;;
*) exec "$SCRIPT" start "$@" ;;
esac