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:____"För Folk I Tiden"____[HÖGTRYCKSTRÅD]
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:~$
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:~$
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: Talsyntes:____"För Folk I Tiden"____[HÖGTRYCKSTRÅD]
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 -
-
- 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]
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:~$
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:~$
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
-
- 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]
hans@hans-ubuntu:~$ xclip -o
xclip -ohans@hans-ubuntu:~$
hans@hans-ubuntu:~$
xclip -ohans@hans-ubuntu:~$
hans@hans-ubuntu:~$
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: Talsyntes:____"För Folk I Tiden"____[HÖGTRYCKSTRÅD]
Vad finns det för filer i katalogen ~/.talsyntes ?
-
- Inlägg: 3375
- Blev medlem: 06 sep 2008, 07:46
- OS: Crunchbang
- Utgåva: Vet inte/ingen utgåva passar
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: Talsyntes:____"För Folk I Tiden"____[HÖGTRYCKSTRÅD]
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
-
- 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]
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.
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.
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: Talsyntes:____"För Folk I Tiden"____[HÖGTRYCKSTRÅD]
Du skulle inte avinstallerat den gamla. Till och med installationsdelen är bortklippt från testversionen.
-
- 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]
Okay, jag intallerar r15 igen och den "klippta versionen".
-
- 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]
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
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

- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: Talsyntes:____"För Folk I Tiden"____[HÖGTRYCKSTRÅD]
Med r15? Eller bara med den klippta versionen?Hans Linde skrev:Rösten hörs
-
- 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]
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?
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?
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: Talsyntes:____"För Folk I Tiden"____[HÖGTRYCKSTRÅD]
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.
Det kanske är det du har gjort? r15 fungerar inte? men den klippta fungerar?
Kod: Markera allt
~/bin/talsyntes-r15.sh install
Kod: Markera allt
~/bin/talsyntes-r15.sh start
Kod: Markera allt
~/bin/talsyntes-klippt.sh
-
- 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]
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.
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.
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: Talsyntes:____"För Folk I Tiden"____[HÖGTRYCKSTRÅD]
Så jag har med andra ord lyckats klippa bort det som strular.
Var har r15 fungerat? Bara på amd64?
Var har r15 fungerat? Bara på amd64?
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: Talsyntes:____"För Folk I Tiden"____[HÖGTRYCKSTRÅD]
Här är en inte lika hårt klippt version:
Den bygger fortfarande på att du ska ha r15 installerad.
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
-
- 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]
Riktigt.Var har r15 fungerat? Bara på amd64?
-
- 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]
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
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
