dijous, de desembre 31, 2009

Veu a Python amb Festival

Fes parlar el teu Python
Fa poc vaig explicar com fer servir les veus catalanes a Ubuntu. En aquest temps FestCAT ha fet forces progressos: ja hi ha diverses veus de molta qualitat (clunits) i un repositori per a Ubuntu, que facilita la instal·lació.

Avui explicaré com fer servir les veus amb Python, per fer els nostres programes més humans. Com que només fa uns mesos que faig servir Python, segur que trobareu millors formes de fer-ho, així que us animo a deixar els vostres comentaris. En tot cas funciona, Forma part de l'aplicació que estic desenvolupant per a la Gestió de Classes i Tutoria.

Aquest és el mòdul que s'encarrega de que Festival tingui la codificació que necessita, i només cal importar-lo així:

from xerra import diguesCadena


i cridar-lo així:

diguesCadena(cadena)


Baixar el codi.

Codi del mòdul:

#!/usr/bin/python
#-*- coding: UTF-8 -*-
__doc__="""Funcions de veu amb Festival

"""
__author__ = "Paco Rivière (http://pacoriviere.cat)"
__version__ = "0.1"
__date__ = "21 desembre 2009"
__copyright__ = "Copyright (c) 2009 Paco Rivière"
__license__ = "Python"
########################################
# xerra.py #
########################################

import os, sys

#Si echo és cert l'ordre es copia a pantalla:
echo=False
Debug=False

#llengua
llengua='catalan'
# cadena del tub de veu:
motor='|festival --tts --language '+llengua

def diguesCadena(cadena=u'Això és una prova'):
"""Llegeix una cadena en veu alta
cadena: string

Torna: int (0-éxit 1-fracàs)
"""
if cadena=='': cadena=u'No hi ha res a llegir'
try:
ordre=u'echo \'%s\' %s' % (cadena, motor)
ordre=ordre.encode('latin-1')
if echo:print ordre.decode('latin-1')
err=os.system(ordre)
return err
except:
if Debug:
print "Hi ha hagut un error:", sys.exc_info()[0]
print " La ordre utilitzada ha estat:"
print ordre.decode('latin-1')
raise
print " Hi hagut un problema en llegir la cadena:", cadena.decode('latin-1')
raw_input(" Premeu Intro per continuar.")
return 1

if __name__ == '__main__':
print __doc__
err=diguesCadena()
print 'Retorn:', err

dilluns, de desembre 21, 2009

Llegir l'hora en veu alta


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):


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
Possibles millores:
  • Que digui "d'una', en lloc de "de una", o "Són dos quarts i cinc", "Són dos quarts i 3 minuts",...

dijous, de desembre 03, 2009

Manifest “En defensa dels drets fonamentals a internet"

Davant de la inclusió en l’Avantprojecte de Llei d’Economia sostenible de modificacions legislatives que afecten al lliure exercici de les llibertats d’expressió, informació i el dret d’accés a la cultura a través d’Internet, els periodistes, bloggers, usuaris, professionals i creadors d’internet manifestem la nostra ferma oposició al projecte, i declarem que…

1. – Els drets d’autor no poden situar-se per sobre dels drets fonamentals dels ciutadans, com el dret a la privacitat, a la seguretat, a la presumpció d’innocència, a la tutela judicial efectiva i a la llibertat d’expressió.

2. – La suspensió de drets fonamentals és i ha de continuar sent competència exclusiva del poder judicial. Ni un tancament sense sentència. Aquest avantprojecte, en contra de l’establertes a l’article 20.5 de la Constitució, posa a les mans d’un òrgan no judicial -un organisme dependent del ministeri de Cultura-, la potestat d’impedir als ciutadans espanyols l’accés a qualsevol pàgina web.

3. – La nova legislació crearà inseguretat jurídica a tot el sector tecnològic espanyol, perjudicant un dels pocs camps de desenvolupament i de futur de la nostra economia, entorpint la creació d’empreses, introduint barreres a la lliure competència i ralentitzant la seva projecció internacional.

4. – La nova legislació proposada amenaça els nous creadors i entorpeix la creació cultural. Amb Internet i els successius avenços tecnològics s’ha democratitzat extraordinàriament la creació i emissió de continguts de tot tipus, que ja no provenen prevalentment de les indústries culturals tradicionals, sinó de multitud de fonts diferents.

5. – Els autors, com tots els treballadors, tenen dret a viure de la seva feina amb noves idees creatives, models de negoci i activitats associades a les seues creacions. Intentar sostenir amb canvis legislatius a una indústria obsoleta que no sap adaptar-se a aquest nou entorn no és ni just ni realista. Si el seu model de negoci es basava en el control de les còpies de les obres i en Internet això no és possible sense vulnerar drets fonamentals, haurien de buscar un altre model.

6. – Considerem que les indústries culturals necessiten per sobreviure alternatives modernes, eficaces, creïbles i assequibles i que s’adeqüen als nous usos socials, en lloc de limitacions tan desproporcionades com ineficaces per a la finalitat que diuen perseguir.

7. – Internet ha de funcionar de forma lliure i sense interferències polítiques afavorides per sectors que pretenen perpetuar obsolets models de negoci i impossibilitar que el saber humà continue sent lliure.

8. – Exigim que el Govern garanteix per llei la neutralitat de la Xarxa a Espanya, davant de qualsevol pressió que pugua produir-se, com a marc per al desenvolupament d’una economia sostenible i realista de cara al futur.

9. – Proposem una verdadera reforma del dret de propietat intel·lectual orientada a la seva finalitat: tornar a la societat el coneixement, promoure el domini públic i limitar els abusos de les entitats gestores.

10. – En democràcia les lleis i les seves modificacions s’han d’aprovar després de l’oportú debat públic i havent consultat prèviament totes les parts implicades. No és acceptable que es facen canvis legislatius que afecten drets fonamentals en una llei no orgànica i que versa sobre una altra matèria.