blob: 52b2f05c7489517644b3035af5eef14147f100e8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
|
#!/bin/bash
TRANSLATE='
s|*| gwiazdka |g
s|/| slesz |g
s|\\| bekslesz |g
s|-| minus |g
s|+| plus |g
s|(|w nawiasie: |g
s|)| koniec nawiasu|g
s|\[|w nawiasie kawu: |g
s|\]| koniec nawiasu|g
s|{|w klamrze: |g
s|}| koniec klamry|g
s|ó|u|g
s|Ó|U|g
s|ą|o~|g
s|Ą|O~|g
s|ć|c~|g
s|Ć|C~|g
s|ę|e~|g
s|Ę|E~|g
s|ł|l/|g
s|Ł|L/|g
s|ń|n~|g
s|Ń|N~|g
s|ś|s~|g
s|Ś|S~|g
s|ź|z~|g
s|Ż|Z~|g
s|ż|z*|g
s|Ź|Z*|g
'
test -f "$HOME/.festival-pl.rc" && . "$HOME/.festival-pl.rc"
VERSION="0.2"
YEARS="2009, 2012"
usage() {
cat <<EOF
festival-pl (konwerter) - wersja $VERSION (c) 3ED $YEARS GPL3
Użycie:
festival-pl [-h|--help|--help-festival|--help-translate]
festival-pl [--translate] "Łąka zimną porą"
echo "Łąka zimną porą" | festival-pl [--translate]
Opcje:
--translate poprawiony tekst zostanie wypisany na
stdout i nie zostanie poddany syntezie
--help-festival pomoc na temat konfiguracji festival
--help-translate pomoc na temat modyfikacji bazy translate
--help, -h ten ekran pomocy
Licancja:
Moduł głosu wydany jest jako darmowy dla niekomercyjnych zastosowań.
Ten skrypt (\`festival-pl') jest objęty zasadami licencji GPL3.
Więcej na temat cstr_pl_em_diphone (głosu) znajdziesz tutaj:
/usr/share/festival/voices/polish/cstr_pl_em_diphone/README
/usr/share/festival/voices/polish/cstr_pl_em_diphone/przeczytajto.txt
EOF
exit
}
usage_translate() {
cat >&2 <<EOF
--------------------------------------------------------------------
Baza \`translate' to zmienna w formacie wyrażeń regularnych programu
sed (powinna być w apostrofach), który podmienia znaki na takie,
które \`festival' potrafi rozpoznać. Możesz utworzyć bliźniaczą
bazę w swoim katalogu domowym wykonująć polecenie:
festival-pl --help-translate > ~/.festival-pl.rc
--------------------------------------------------------------------
EOF
cat <<EOF
#
# To jest obecnie używana baza \`TRANSLATE' dla \`festival-pl'
#
TRANSLATE='$TRANSLATE'
EOF
exit
}
usage_festival() {
cat <<EOF
Aby ustawić polski głos jako domyślny:
a) edytuj plik: /usr/share/festival/voices.scm
b) wyszukaj linijkę: defvar default-voice-priority-list
c) do listy dopisz: cstr_pl_em_diphone
Przykład:
...
(defvar default-voice-priority-list
- '(kal_diphone
+ '(cstr_pl_em_diphone
+ kal_diphone
cmu_us_bdl_arctic_hts
...
EOF
exit
}
error() {
test -n "$1" && printf "\e[31;1mBŁĄÐ:\e[0m %s\n" "$1"
exit 1
}
translate() {
echo "$SAYTEXT" | sed "$TRANSLATE"
test "$?" -gt "0" && error "Baza translate nie jest poprawna.."
}
saytext() {
cat | festival --tts
test "$?" -gt "0" && error "Program festival zakończył błędem.."
}
ONLY_TRANSLATE="0"
SAYTEXT=""
until [ "$#" -le "0" ]; do
case "$1" in
-h|--help) usage;;
--help-festival) usage_festival;;
--help-translate) usage_translate;;
--translate) ONLY_TRANSLATE="1";;
*) SAYTEXT+="$1 ";;
esac
shift
done
#if [ "`uname -s`" = "Linux" ]; then
test -e "/dev/dsp" || error "Brak pliku: \`/dev/dsp', załaduj moduł: \`snd_pcm_oss'"
#fi
test -n "$SAYTEXT" || SAYTEXT="`cat`"
if [ "$ONLY_TRANSLATE" = "1" ]; then
translate
else
translate | saytext
fi
|