Fa un temps explicava com instal·lar les veus catalanes de Festival (2). Avui veurem com fer que llegeixi les hores, segons el costum català:
Per llegir l'hora en veu alta al terminal hi ha prou amb escriure la següent línia (Atenció: les 'cometes' abans i després de date... són accents, no cometes!!!):
echo "Són les `date +%k` hores, `date +%-M` minuts amb `date +%-S` segons." |padsp festival --tts --language catalan
Si volem, per exemple que ens digui l'hora en veu alta a les hores en punt hem de preparar un arxiu de text amb dues línies:
#!/bin/bash
echo "Són les `date +%k` hores, `date +%-M` minuts amb `date +%-S` segons." |padsp festival --tts --language catalan
Al desar l'arxiu anterior, és molt important triar la codificació ISO-8859-1 o ISO-8859-15, ja que si triem UTF-8, que és l'opció per omissió, el Festival no podrà llegir-ho, i donará l'error 'LTS_Ruleset catala_downcase: no rule matches:'.
posem que l'anomenem digueshora.sh
De nou al terminal fem:
crontab -e
i afegim a l'arxiu de programacions la línia:
0 * * * * bash [ruta]/digueshora.sh
on hem de substituir [ruta] per la ruta absoluta on hem desat l'arxiu digueshora.sh.
No oblidem desar fent Crl+O, abans de sortir amb Ctrl+X
Una altra opció sense els minuts és:
echo "Són les `date +%k` hores, i `date +%-M` minuts." |padsp festival --tts --language catalan
Per que digui les hores amb quarts, podríem fer alguna cosa així (us animem a millorar-ho):
Possibles millores:
hora=`date +%-I`
hora_seg=$(echo "scale=0; $hora+1" | bc)
if [ "$hora_seg" -eq "13" ]; then hora_seg="una"; fi
minuts=`date +%-M`
case $hora in
0 ) xe_hora="Són les dotze" ;;
1 ) xe_hora="És la una" ;;
2 ) xe_hora="Són les dues" ;;
* ) xe_hora ="Són les $hora";;
esac
case $minuts in
0 ) xe_minuts="" ;;
* ) xe_minuts=", i $minuts minuts.";;
esac
case $minuts in
15 ) xerra="És un quart de $hora_seg." ;;
30 ) xerra="Són dos quarts de $hora_seg." ;;
45 ) xerra="Són tres quarts de $hora_seg." ;;
* ) xerra="$xe_hora$xe_minuts" ;;
esac
echo $xerra |padsp festival --tts --language catalan
- Que digui "d'una', en lloc de "de una", o "Són dos quarts i cinc", "Són dos quarts i 3 minuts",...
el "són" em dona un error:
ResponElimina$ echo "són les 3" |padsp festival --tts --language catalan
LTS_Ruleset catala_downcase: no rule matches:
LTS_Ruleset: # s *here* � � n #
si trec l'accent es reprodueix corretament.
estic amb una karmic i la localització està en català: LANG=ca_ES.UTF-8
en aquest exemple tampoc afecta gaire, però a un document on hi hagi accents no funcionarà.
pot ser que sigui un error del paquet català del festival?
potser obriré un bug.
muzzol: >Al desar l'arxiu anterior, és molt important triar la codificació ISO-8859-1 o ISO-8859-15, ja que si triem UTF-8, que és l'opció per omissió, festival no podrà llegir-lo, i donará l'error 'LTS_Ruleset catala_downcase: no rule matches:'.
ResponEliminaÉs una limitació coneguda del Festival, funciona amb Latin-1