Talsyntes:____"För Folk I Tiden"

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.
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.
Hans Linde
Inlägg: 3375
Blev medlem: 06 sep 2008, 07:46
OS: Crunchbang
Utgåva: Vet inte/ingen utgåva passar

Re: Talsyntes:____"För Folk I Tiden"____[HÖGTRYCKSTRÅD]

Inlägg av Hans Linde »

hans@hans-ubuntu:~$ ~/bin/talsyntes.sh
1) Om n�got felar s� borde den klaga p� det ifall du f�rs�ker starta fr�n en terminal.
mplayer: could not connect to socket
mplayer: No such file or directory
hans@hans-ubuntu:~$
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: Talsyntes:____"För Folk I Tiden"____[HÖGTRYCKSTRÅD]

Inlägg av Konservburk »

Kod: Markera allt

echo hejsan | espeak -v mb-sw1

Kod: Markera allt

echo hejsan | espeak -v mb-sw1 | ~/.talsyntes/mbrola -e ~/.talsyntes/voices/sw1\:\ Swedish\ Male - test.wav
aplay test.wav

Kod: Markera allt

echo hejsan | espeak -v mb-sw1 | ~/.talsyntes/mbrola -e ~/.talsyntes/voices/sw1\:\ Swedish\ Male - -.wav | mplayer -demuxer audio -
Hans Linde
Inlägg: 3375
Blev medlem: 06 sep 2008, 07:46
OS: Crunchbang
Utgåva: Vet inte/ingen utgåva passar

Re: Talsyntes:____"För Folk I Tiden"____[HÖGTRYCKSTRÅD]

Inlägg av Hans Linde »

Ja visst det där funkar.
Precis som vid förra testen.

hans@hans-ubuntu:~$
hans@hans-ubuntu:~$ echo hejsan | espeak -v mb-sw1
h 86
e 97 0 106 80 82 100 82
j 65
s 100
a 67 0 84 80 80 100 80
n 116 100 73

_ 263
_ 1
hans@hans-ubuntu:~$ echo hejsan | espeak -v mb-sw1 | ~/.talsyntes/mbrola -e ~/.talsyntes/voices/sw1\:\ Swedish\ Male - test.wav
hans@hans-ubuntu:~$ aplay test.wav
Playing WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 16000 Hz, Mono
hans@hans-ubuntu:~$ echo hejsan | espeak -v mb-sw1 | ~/.talsyntes/mbrola -e ~/.talsyntes/voices/sw1\:\ Swedish\ Male - -.wav | mplayer -demuxer audio -
MPlayer 1.0rc2-4.2.3 (C) 2000-2007 MPlayer Team
CPU: Intel(R) Pentium(R) 4 CPU 3.00GHz (Family: 15, Model: 4, Stepping: 3)
CPUflags: MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Compiled with runtime CPU detection.
mplayer: could not connect to socket
mplayer: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.

Playing -.
Reading from stdin...
Audio file file format detected.
==========================================================================
Forced audio codec: mad
Opening audio decoder: [pcm] Uncompressed PCM audio decoder
AUDIO: 16000 Hz, 1 ch, s16le, 256.0 kbit/100.00% (ratio: 32000->32000)
Selected audio codec: [pcm] afm: pcm (Uncompressed PCM)
==========================================================================
AO: [pulse] 16000Hz 1ch s16le (2 bytes per sample)
Video: no video
Starting playback...
A: 0.1 (00.0) of -0.0 (unknown) 0.0%

Exiting... (End of file)
hans@hans-ubuntu:~$
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: Talsyntes:____"För Folk I Tiden"____[HÖGTRYCKSTRÅD]

Inlägg av Konservburk »

Kod: Markera allt

xclip -o
Hans Linde
Inlägg: 3375
Blev medlem: 06 sep 2008, 07:46
OS: Crunchbang
Utgåva: Vet inte/ingen utgåva passar

Re: Talsyntes:____"För Folk I Tiden"____[HÖGTRYCKSTRÅD]

Inlägg av Hans Linde »

hans@hans-ubuntu:~$ xclip -o
xclip -ohans@hans-ubuntu:~$
hans@hans-ubuntu:~$
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: Talsyntes:____"För Folk I Tiden"____[HÖGTRYCKSTRÅD]

Inlägg av Konservburk »

Vad finns det för filer i katalogen ~/.talsyntes ?
Hans Linde
Inlägg: 3375
Blev medlem: 06 sep 2008, 07:46
OS: Crunchbang
Utgåva: Vet inte/ingen utgåva passar

Re: Talsyntes:____"För Folk I Tiden"____[HÖGTRYCKSTRÅD]

Inlägg av Hans Linde »

bild
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: Talsyntes:____"För Folk I Tiden"____[HÖGTRYCKSTRÅD]

Inlägg av Konservburk »

Här är en version med det mesta bortklippt. Bara själva uppläsningen är kvar. Fungerar den? Eller fungerar den inte?

Kod: Markera allt

#!/bin/sh
export LC_ALL=C
DIR=~/".talsyntes"
VOICES_DIR="$DIR/voices"

   FIFO="$DIR/mplayer.$$.fifo"
   TMP="$(mktemp)"
   trap 'rm -f "$FIFO" "$TMP"' EXIT
   voice=$(ls "$VOICES_DIR/sw1":* 2>&-)
   voice="${voice##*/}"

   xclip -o |
   awk -F'[ \t\n]*[?.,!][ \t\n]' '{
      gsub("\\u[0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f]","")
      gsub("[ \t](and|or)[ \t\n]","\n&")
      for(i=1;i<=NF;i++) {
         printf(" %s ", $i)
         if(i==NF || match($(i+1),"[ \t]")) {
            printf("\n")
         }
      }
   }' >"$TMP"
   line=$(cat "$DIR"/line 2>&-)
   test -s "$TMP" &&
   if cmp -s "$TMP" "$DIR"/text
   then :
   else mv "$TMP" "$DIR"/text && line=1
   fi
   test "${line:-1}" -gt $(wc -l <"$DIR"/text) ||
   test "${line:-1}" -lt 1 && line=1
   sed -n "${line:-1},\$p" "$DIR"/text |
   while read sentence
   do echo "${line:-1}) $sentence"
      echo "$sentence" |
      espeak \
         -a "${amplit:-100}" \
         -g "${wordgap:-0}" \
         -p "${pitch:-50}" \
         -s "${espeed:-170}" \
         -v mb-"${voice%:*}" |
      "$DIR/mbrola" -e \
         -t "${speed:-1}" \
         -f "${freq:-1}" \
         -v "${volume:-1}" \
         -l "${rate:-16000}" \
         "$VOICES_DIR/$voice" - -.wav |
      mplayer -really-quiet -input file="$FIFO" $scaletempo -demuxer audio -
      line=$(expr "${line:-1}" + 1)
      echo "$line" >"$DIR"/line
   done
Hans Linde
Inlägg: 3375
Blev medlem: 06 sep 2008, 07:46
OS: Crunchbang
Utgåva: Vet inte/ingen utgåva passar

Re: Talsyntes:____"För Folk I Tiden"____[HÖGTRYCKSTRÅD]

Inlägg av Hans Linde »

hans@hans-ubuntu:~$ ~/bin/talsyntes.sh uninstall
1) ~/bin/talsyntes.sh
mplayer: could not connect to socket
mplayer: No such file or directory
hans@hans-ubuntu:~$
hans@hans-ubuntu:~$ ~/bin/talsyntes.sh install
1) ~/bin/talsyntes.sh
mplayer: could not connect to socket
mplayer: No such file or directory
hans@hans-ubuntu:~$
hans@hans-ubuntu:~$


Inget ljud.
Endel fönster öppnas.
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: Talsyntes:____"För Folk I Tiden"____[HÖGTRYCKSTRÅD]

Inlägg av Konservburk »

Du skulle inte avinstallerat den gamla. Till och med installationsdelen är bortklippt från testversionen.
Hans Linde
Inlägg: 3375
Blev medlem: 06 sep 2008, 07:46
OS: Crunchbang
Utgåva: Vet inte/ingen utgåva passar

Re: Talsyntes:____"För Folk I Tiden"____[HÖGTRYCKSTRÅD]

Inlägg av Hans Linde »

Okay, jag intallerar r15 igen och den "klippta versionen".
Hans Linde
Inlägg: 3375
Blev medlem: 06 sep 2008, 07:46
OS: Crunchbang
Utgåva: Vet inte/ingen utgåva passar

Re: Talsyntes:____"För Folk I Tiden"____[HÖGTRYCKSTRÅD]

Inlägg av Hans Linde »

hans@hans-ubuntu:~$ ~/bin/talsyntes.sh install
1) No such file
mplayer: could not connect to socket
mplayer: No such file or directory
2) or directory
mplayer: could not connect to socket
mplayer: No such file or directory
hans@hans-ubuntu:~$

Rösten hörs :D
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: Talsyntes:____"För Folk I Tiden"____[HÖGTRYCKSTRÅD]

Inlägg av Konservburk »

Hans Linde skrev:Rösten hörs :D
Med r15? Eller bara med den klippta versionen?
Hans Linde
Inlägg: 3375
Blev medlem: 06 sep 2008, 07:46
OS: Crunchbang
Utgåva: Vet inte/ingen utgåva passar

Re: Talsyntes:____"För Folk I Tiden"____[HÖGTRYCKSTRÅD]

Inlägg av Hans Linde »

jag tror att jag gjort vad som behöv för att
1a installera r15 (utan att av installer den reducerade)
2 installera den reducerade.
3 kör den samma i terminal, mao upprepning av installation.

Ska jag göra om det och göra allt terminal?
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: Talsyntes:____"För Folk I Tiden"____[HÖGTRYCKSTRÅD]

Inlägg av Konservburk »

Tanken var att när r15 är installerad så ska du köra den klippta versionen från en terminal och se om den fungerar.

Kod: Markera allt

~/bin/talsyntes-r15.sh install

Kod: Markera allt

~/bin/talsyntes-r15.sh start

Kod: Markera allt

~/bin/talsyntes-klippt.sh
Det kanske är det du har gjort? r15 fungerar inte? men den klippta fungerar?
Hans Linde
Inlägg: 3375
Blev medlem: 06 sep 2008, 07:46
OS: Crunchbang
Utgåva: Vet inte/ingen utgåva passar

Re: Talsyntes:____"För Folk I Tiden"____[HÖGTRYCKSTRÅD]

Inlägg av Hans Linde »

hans@hans-ubuntu:~$ ~/bin/talsyntes-r15.sh install
hans@hans-ubuntu:~$ ~/bin/talsyntes-r15.sh start
1) ~/bin/talsyntes-r15.sh start
mplayer: could not connect to socket
mplayer: No such file or directory
hans@hans-ubuntu:~$ ~/bin/talsyntes-klippt.sh
1) ~/bin/talsyntes-klippt.sh
mplayer: could not connect to socket
mplayer: No such file or directory
hans@hans-ubuntu:~$


Rösten hörs endast på slutet.
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: Talsyntes:____"För Folk I Tiden"____[HÖGTRYCKSTRÅD]

Inlägg av Konservburk »

Så jag har med andra ord lyckats klippa bort det som strular.

Var har r15 fungerat? Bara på amd64?
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: Talsyntes:____"För Folk I Tiden"____[HÖGTRYCKSTRÅD]

Inlägg av Konservburk »

Här är en inte lika hårt klippt version:

Kod: Markera allt

#!/bin/sh
# r15-klipp2
case "$-" in *i*) return ;; esac
export LC_ALL=C
#exec 2>&-
APP="Talsyntes"
DIR=~/".talsyntes"
SCRIPT="$DIR/talsyntes.sh"
DATA_DIR="$DIR/data"
VOICES_DIR="$DIR/voices"
SETTINGS_DIR="$DIR/settings"

mkdir -p "$DATA_DIR" "$VOICES_DIR" "$SETTINGS_DIR"

if test "x$SCRIPT" != "x$0" && cp -f "$0" "$SCRIPT" 2>&-
then
   iconv -f utf-8 -t iso8859-1 "$0" >/dev/null 2>&- ||
   iconv -f iso8859-1 -t utf-8 "$0" >"$SCRIPT"
   chmod +x "$SCRIPT" && exec "$SCRIPT" "$@"
fi

case "$1" in
start)
   pgrep -P $(pgrep -u"$(id -u)" -d, "${SCRIPT##*/}") mplayer |
   while read pid
   do kill $(ps -oppid= "$pid") "$pid"
   done
;;
*)
   ps -opid=,ppid=,args= $(pgrep -u"$(id -u)" "${SCRIPT##*/}") |
   grep -vE "(^|[[:blank:]]+)$$([[:blank:]]+|$)" |
   grep -q "$*$" && exit
;;
esac

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)
      }
   '
   return 0
}

get_amplit() {
   2>&- scale_mapping 0 100 200 <"$SETTINGS_DIR"/amplit || echo 100
}
get_wordgap() {
   2>&- scale_mapping -50 0 50 <"$SETTINGS_DIR"/wordgap || echo 0
}
get_pitch() {
   2>&- scale_mapping 0 50 99 <"$SETTINGS_DIR"/pitch || echo 50
}
get_espeed() {
   2>&- scale_mapping 80 170 370 <"$SETTINGS_DIR"/espeed || echo 170
}
get_speed() {
   2>&- scale_mapping 5 1 0.2 <"$SETTINGS_DIR"/speed || echo 1.0
}
get_freq() {
   2>&- scale_mapping 0.2 1 5 <"$SETTINGS_DIR"/freq || echo 1.0
}
get_volume() {
   2>&- scale_mapping 0.2 1 5 <"$SETTINGS_DIR"/volume || echo 1.0
}
get_rate() {
   2>&- scale_mapping 1000 16000 48000 <"$SETTINGS_DIR"/rate || echo 16000
}
get_scale() {
   2>&- scale_mapping 0.2 1 5 <"$SETTINGS_DIR"/scale || echo 1.0
}
get_stride() {
   2>&- scale_mapping 1 60 400 <"$SETTINGS_DIR"/stride || echo 60
}
get_overlap() {
   2>&- scale_mapping 0 0.2 1 <"$SETTINGS_DIR"/overlap || echo 0.2
}
get_search() {
   2>&- scale_mapping 0 14 200 <"$SETTINGS_DIR"/search || echo 14
}
get_method() {
   2>&- cat "$SETTINGS_DIR"/method || echo tempo
}
get_accel() {
   2>&- scale_mapping 0.2 1 5 <"$SETTINGS_DIR"/accel || echo 1.0
}
get_voice() {
   2>&- readlink "$SETTINGS_DIR"/voice
}

cd "$DIR"
case "$1" in
start)
   find "$DIR" -name mplayer.\*.fifo -type p -exec rm -f {} \;
   FIFO="$DIR/mplayer.$$.fifo"
   TMP="$(mktemp)"
   trap 'rm -f "$FIFO" "$TMP"' EXIT
   test -p "$FIFO" || mkfifo "$FIFO"
   if voice=$(ls "$VOICES_DIR/$2":* 2>&-)
   then shift
   else voice="$(get_voice)"
   fi
   voice="${voice##*/}"
   amplit="$(get_amplit)"
   wordgap="$(get_wordgap)"
   pitch="$(get_pitch)"
   espeed="$(get_espeed)"
   speed="$(get_speed)"
   freq="$(get_freq)"
   volume="$(get_volume)"
   rate="$(get_rate)"
   scale="$(get_scale)"
   stride="$(get_stride)"
   overlap="$(get_overlap)"
   search="$(get_search)"
   method="$(get_method)"
   accel="$(get_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 |
   awk -F'[ \t\n]*[?.,!][ \t\n]' '{
      gsub("\\u[0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f]","")
      gsub("[ \t](and|or)[ \t\n]","\n&")
      for(i=1;i<=NF;i++) {
         printf(" %s ", $i)
         if(i==NF || match($(i+1),"[ \t]")) {
            printf("\n")
         }
      }
   }' >"$TMP"
   line=$(cat "$DIR"/line 2>&-)
   test -s "$TMP" &&
   if cmp -s "$TMP" "$DIR"/text
   then :
   else mv "$TMP" "$DIR"/text && line=1
   fi
   test "${line:-1}" -gt $(wc -l <"$DIR"/text) ||
   test "${line:-1}" -lt 1 && line=1
   sed -n "${line:-1},\$p" "$DIR"/text |
   while read sentence
   do echo "${line:-1}) $sentence"
      echo "$sentence" |
      espeak \
         -a "${amplit:-100}" \
         -g "${wordgap:-0}" \
         -p "${pitch:-50}" \
         -s "${espeed:-170}" \
         -v mb-"${voice%:*}" |
      "$DIR/mbrola" -e \
         -t "${speed:-1}" \
         -f "${freq:-1}" \
         -v "${volume:-1}" \
         -l "${rate:-16000}" \
         "$VOICES_DIR/$voice" - -.wav |
      mplayer -really-quiet -input file="$FIFO" $scaletempo -demuxer audio -
      line=$(expr "${line:-1}" + 1)
      echo "$line" >"$DIR"/line
   done
;;
*)
   exec "$SCRIPT" start "$@"
;;
esac
Den bygger fortfarande på att du ska ha r15 installerad.
Hans Linde
Inlägg: 3375
Blev medlem: 06 sep 2008, 07:46
OS: Crunchbang
Utgåva: Vet inte/ingen utgåva passar

Re: Talsyntes:____"För Folk I Tiden"____[HÖGTRYCKSTRÅD]

Inlägg av Hans Linde »

Var har r15 fungerat? Bara på amd64?
Riktigt.
Hans Linde
Inlägg: 3375
Blev medlem: 06 sep 2008, 07:46
OS: Crunchbang
Utgåva: Vet inte/ingen utgåva passar

Re: Talsyntes:____"För Folk I Tiden"____[HÖGTRYCKSTRÅD]

Inlägg av Hans Linde »

hans@hans-ubuntu:~$ ~/bin/talsyntes.sh install
1) ~/bin/talsyntes-klippt.sh
mplayer: could not connect to socket
mplayer: No such file or directory
hans@hans-ubuntu:~$ ~/bin/talsyntes.sh
1) ~/bin/talsyntes.sh
mplayer: could not connect to socket
mplayer: No such file or directory
hans@hans-ubuntu:~$

Det är tyst ???
Skriv svar

Återgå till "Experimentverkstad"