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:

Kod: Markera allt

#/bin/sh
# r3
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...

Kod: Markera allt

zenity --info

Kod: Markera allt

zenity --scale

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 ÅÄÖåäö)

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 ;D ;D ;D , 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