Sida 28 av 98
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Postat: 13 okt 2008, 16:17
av Hans Linde
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?
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Postat: 13 okt 2008, 16:28
av Konservburk
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?
Revisionsnumret står på andra raden i filen. I den senaste står det:
Filnamnet väljer du själv. Så du kan ju kalla den
~/bin/talsyntes-r3.sh om du tycker det blir lättare.
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Postat: 13 okt 2008, 16:41
av Hans Linde
Tillslut fick jag till det.
Jag behåller filnamnet.
r3 i är förhoppningsvis tillräckligt.
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Postat: 13 okt 2008, 16:48
av Hans Linde
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.)
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Postat: 13 okt 2008, 17:05
av Konservburk
Hans Linde skrev:Kan vi titta på kontras/färg valet,
Det är som sagt gtk-temat som avgör. Du kan kanske hitta något gtk-tema du gillar här:
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.
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Postat: 13 okt 2008, 17:15
av Hans Linde
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?
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Postat: 13 okt 2008, 17:30
av Konservburk
Du kan ju testa om zenity ger vackrare dialogrutor...
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Postat: 13 okt 2008, 18:13
av Hans Linde
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.)
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Postat: 13 okt 2008, 18:42
av Konservburk
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.)
Frågan är då hur zenity hanterar utf-8... gör gärna ett test:
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)
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Postat: 13 okt 2008, 19:43
av Hans Linde
Å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.
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Postat: 13 okt 2008, 19:44
av Hans Linde
Hur många reglage går det att få med Zenity?
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Postat: 13 okt 2008, 20:50
av Hans Linde
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.
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Postat: 13 okt 2008, 21:05
av Konservburk
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.
Då börjar vi som förra gången... med att lista alla tangentbindningar:
Kod: Markera allt
gconftool-2 -a /apps/compiz/general/allscreens/options
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Postat: 13 okt 2008, 21:30
av Hans Linde
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:~$
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Postat: 13 okt 2008, 21:33
av Hans Linde
Kan inte var mycket där.
Jag tittade i "konfigurationredigeraren" och fann inga kopplingar.
dvs "alt F2" o "gconf-editor".
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Postat: 13 okt 2008, 21:49
av Konservburk
Kör ~/bin/talsyntes.sh install en gång och lista sedan bindningarna igen... jag vill se om någonting ändras.
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Postat: 13 okt 2008, 21:52
av Hans Linde
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?
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Postat: 13 okt 2008, 21:56
av Hans Linde
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:~$
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Postat: 14 okt 2008, 10:02
av Konservburk
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:~$
Det låter ju inte bra. Finns det någonting alls i ~/.talsyntes ?
Re: Talsyntes/Festival/Scaletempo/Ubuntu-AMD64
Postat: 14 okt 2008, 10:05
av Konservburk
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