DiGrande.it

Non Vedenti, Braille e Tecnologie di Stampa

Questo sito usa Cookie per personalizzare contenuti e annunci, fornire funzionalità per social media e analizzare i collegamenti. Chiudendo questo banner o continuando la navigazione acconsenti al loro uso.
Leggi la Cookie Policy di DiGrande.it

Handimatica 2002: file leggimi del mio pacchetto Mbrolita - Capitolo 25

Aggiornato il 02/07/2024 08:00 
 

Nel corso di Handimatica 2002 l'INPS presenta allo stand delle istituzioni un mio pacchetto per la Conversione in Voce da testo scritto, free ed open source che, malgrado lo stadio prototipale, suscita la curiosità dei pochi visitatori, tra cui il Ministro della Innovazione Stanca.

Questo è il file leggimi del pacchetto Mbrolita da me compilato e reperibile sia sul sito del CNR di Padova, sia sul sito della Fondazione Bordoni, e più precisamente nello spazio di Germano Carella:

http://www.baster.it/Software/TTS/mbrolita/mbrolita.exe

Imminente o prossima una più seria release.

Nota: Nel Paragrafo 5, "conclusione e contatti si dice:

“Come detto sono particolarmente interessato al test del pacchetto su altre piattaforme, segnatamente Linux e Mackintosh, perché questo Lavoro potrebbe Aprire la strada all'uso di questi sistemi da parte dei non vedenti.”

All'epoca il pacchetto, poiché non ho Linux né saprei usarlo, non era stato testato su questa piattaforma e perciò sollecitavo collaborazione.

Salvatore Del Popolo, autore di una tesi di laurea sperimentale su uno screen reader per non vedenti in Ambiente Linux, ha confermato che il pacchetto funziona immodificato su tale sistema.

---

"sarebbe infatti una invenzione importante quella di creare una macchina capace di riprodurre la parola, i suoi suoni e le sue articolazioni. Penso che non sia impossibile!"

LEONARD EULER (1761)

IL PACCHETTO MBROLITA

N.B. Questa distribuzione non contiene il database per la Voce femminile, per ragioni di peso del file da scaricare; Pertanto chi fosse interessato ad essa è pregato di scaricarla dal sito Mbrola.

http://tcts.fpms.ac.be/synthesis/mbrola/dba/it4/it4-010926.Zip

Sommario

1 INTRODUZIONE E NOTE GENERALI

1.1 QUADRO DI RIFERIMENTO

1.2 PERCHÉ QUESTO PACCHETTO

2 LEGALESE

3 GENERALITÀ SUL PACCHETTO MBROLITA

3.1 UNO SGUARDO AI COMPONENTI

3.2 USO DEL PROGRAMMA

3.3 LIMITI DELLA APPLICAZIONE

4 ELENCO E DESCRIZIONE DEI FILES DEL PACCHETTO

5 CONCLUSIONE E Contatti

---

1 INTRODUZIONE E NOTE GENERALI

1.1 QUADRO DI RIFERIMENTO

Il pacchetto Mbrolita vuole essere un primo tassello nel contesto di un programma più generale, le cui linee Guida sono abbozzate in un mio precedente scritto (vedi allegato file Johnathan), DI CUI SI riporta qui lo stralcio introduttivo:

......................................................

il programma JOHNATHAN si propone l'obiettivo strategico di conseguire a medio termine un apprezzabile miglioramento della integrazione Sociale e lavorativa dei disabili, secondo parametri misurabili in termini di:

- Aumento dei soggetti disabili occupati;

- Aumento della professionalità media degli stessi;

- Riduzione o razionalizzazione dei costi sociali connessi alla riduzione dell'Handicap.

Allo stato, per esiguità di forze e strumenti, prende le mosse nel campo dell'Handicap visivo, ma tali specifiche di Progetto possono e forse devono essere allargate all'intero campo delle tecnologie assistive a favore delle altre categorie di disabili e di cittadini svantaggiati.

Lo sviluppo avviene prevalentemente con le modalità di interazione telematica, secondo uno schema che veda il coinvolgimento:

- Delle pubbliche amministrazioni;

- Di università ed enti di Ricerca nazionali e non;

- Di enti pubblici economici e grandi organizzazioni aziendali;

- Di gruppi e/o operatori economici e sociali del settore;

- Di singoli cittadini.

Il programma si sviluppa su tre direttrici convergenti:

- Riduzione dei costi dei componenti Hardware degli ausili informatici;

- Progettazione, sviluppo e distribuzione di componenti Software nel campo delle tecnologie assistive, con le modalità della gratuità e dell'usabilità incrementale (open source), da veicolarsi attraverso i canali telematici pubblici come la rete Informatica unitaria della P.A., (RUPA), a disposizione di tutti;

- Sviluppo di una Cultura e di criteri di progettazione universale, capace di seguire in maniera più flessibile e dinamica l'evoluzione delle telecomunicazioni, nella consapevolezza che la rapida evoluzione tecnologica tende a riprodurre continuamente il "gap" che la Tecnologia assistiva non riesce velocemente a colmare a causa per le rigidità strutturali del settore, condizionato da alta incidenza dei costi fissi, da economie di scala e dalla marginalità della domanda a fronte di una forte concorrenza nell'offerta.

.............................................

1.2 PERCHÉ QUESTO PACCHETTO

come detto sopra il contesto di riferimento è allo stato quello dell'Handicap visivo e degli ausili informatici che permettono ai non vedenti l'utilizzo del Computer e della rete.

Tali ausili sono sostanzialmente basati su display Braille o su sistemi di Sintesi Vocale capaci di tradurre in Voce eventi di Schermo, sempre che le applicazioni siano progettate in modo da permetterne l'accesso.

Vedasi al riguardo la circolare n. 32 del 06/09/2001 dell'Autorità Informatica per la pubblica amministrazione (AIPA) recante: "Criteri e strumenti per migliorare l'accessibilità dei siti Web e delle applicazioni informatiche a persone disabili".

Per costruire applicazioni accessibili ai portatori di Handicap è necessario conoscere come le tecnologie assistive interagiscono con esse.

Sotto questo profilo sorgono una serie di problemi cui si accenna qui brevemente:

A) È impensabile che uno sviluppatore, ancorché armato dalle migliori intenzioni, possa conoscere i dettagli tecnici di questi ausili, date anche le loro specificità, il loro numero, le esigenze cui sottendono, anche perché spesso si tratta di applicazioni sofisticate e complesse, la cui documentazione è spesso disponibile solo previo acquisto delle stesse.

B) Spesso tali ausili sono disponibili solo per alcune piattaforme e ciò preclude di fatto ai disabili un proficuo inserimento in determinati ambienti di Lavoro;

C) La distribuzione di tali ausili avviene quasi sempre in condizione di oligopolio, con la conseguenza che il loro prezzo risulta enormemente superiore, sfuggendo ad ogni corretta logica di mercato e ciò si traduce in esborsi sia da parte di privati (datori di Lavoro) che delle P.A. a cui carico vanno solitamente tali ausili, secondo il cosiddetto "nomenclatore tariffario", con la ulteriore conseguenza di scoraggiare ulteriormente l'inserimento e/o il recupero produttivo dei disabili.

Il presente Lavoro deve considerarsi un "work in progress", il tentativo di favorire un diverso approccio alla problematica, l'indicazione di una possibile strada da percorrere per far fronte ai problemi suesposti. Si ritiene infatti necessario:

- Favorire tra gli sviluppatori di applicazioni, specie se dipendenti delle P.A., una conoscenza più approfondita degli ausili informatici per i disabili che permetta loro di progettare applicazioni realmente accessibili;

- Promuovere e valorizzare studi e ricerche di enti di Ricerca e università (non solo italiane) utili alla costruzione di tale know how;

- Favorire un approccio non vincolato alle specificità delle singole piattaforme e/o architetture;

- Socializzare gratuitamente questo patrimonio di studi e di conoscenze, tuttavia nel rispetto rigoroso della paternità intellettuale degli autori, spezzando una lancia contro la pirateria Informatica che pure prospera in questo settore degli ausili informatici per i disabili.

2 LEGALESE

Sintesi.PL (C) Donato Taddei 2001 - 2003, Napoli.

Questo programma è free Software; ciascuno può usare, copiare, modificare e distribuire liberamente il sorgente, secondo le modalità del Software libero di cui alla GNU GENERAL PUBLIC LICENSE Versione 2, nell'originale inglese, giugno 1991, Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA

L'autore non assume alcuna garanzia di qualsiasi tipo per i danni che da questo Software dovessero derivare.

Si tratta di un text to speech Italiano multipiattaforma basato sull'algoritmo Mbrola (Multi-Band Re-synthesis OverLap-Add), sviluppato al Politecnico di Mons (Belgio) dal prof. Thierry Dutoit e da Vincent Pagel. Si tratta di una Sintesi Software multilingua e multipiattaforma, free per uso non commerciale e non militare (C) Faculté Polytechniquede Mons MULTITEL-TCTS(Circuit Theory and Signal Processing Lab). Parc Initialis B-7000 Mons(Belgium) ph: +32(65) 374774 fax: +32(65) 374729 Associate Professeur: Thierry.Dutoit@fpms.ac.be

La home page di mbrola presso il tcts labs è http://tcts.fpms.ac.be/synthesis/mbrola.html

brevetto Belga BE09600524 americano US Patent Nr. 5,987,413

Attualmente il programma supporta due diversi dizionari fonetici per la lingua italiana: uno per la Voce maschile, l'altro per quella femminile, entrambi prelevabili dal sito Mbrola a questo url:

http://tcts.fpms.ac.be/synthesis/mbrola/mbrcopybin.html quella maschile, url:

http://tcts.fpms.ac.be/synthesis/mbrola/dba/it3/it3-010926.zipquella femminile:

È stata fornita dal dottor Piero Cosi Istituto di Fonetica e Dialettologia Consiglio Nazionale delle Ricerche Via G. Anghinoni, 10 35121 Padova (Italy) Tel: +39 049 8274418 Fax: +39 049 8274416 eMail: cosi@csrf.pd.cnr.it WWW: http://nts.csrf.pd.cnr.it/Ifd

Quella femminile, url: http://tcts.fpms.ac.be/synthesis/mbrola/dba/it4/it4-010926.Zip è stata fornita al Progetto Mbrola dall'Istituto Trentino di Cultura - Centro per la Ricerca scientifica e tecnologica Roberto Gretter (technical issues) e-mail: gretter@itc.it phone: (+39) 0461-314557 fax: (+39) 0461-314591 secretary: (+39) 0461-314592 ITC-irst via Sommarive 18 38050 Povo - Trento (Italy) WWW: http://www.itc.it

Questo script Perl (richiesto Perl 5 o superiore), è stato realizzato utilizzando materiale analogo prelevato dal Progetto Mbrola. In particolare da Alistair Conkie e David HAUBENSACK, rispettivamente per l'inglese e il francese.

La codifica delle regole fonetiche italiane si è avvalsa di materiale gentilmente messo a disposizione dell'autore dal prof. Giannantonio Mian Del Dei, ordinario della facoltà di ingegneria presso l'università di Padova che negli anni 80 e 90 ha coordinato un gran numero di ricerche sul parlato Italiano sfociate nelle tesi di molti studenti tra cui: Ferro, Gretter, Rinaldo, Salmasi, e che ha visto anche la collaborazione attiva dell'ing. Graziano Tisato del Centro di calcolo dell'università di Padova, nonché del già citato dottor Piero Cosi del CNR.

3 GENERALITÀ SUL PACCHETTO MBROLITA

Attualmente il Progetto Mbrola supporta dizionari fonetici per una trentina di lingue tra cui: inglese, inglese americano ed australiano, francese, francese belga, portoghese, portoghese brasiliano, Italiano, tedesco, spagnolo, svedese, ma anche estone, croato, rumeno, turco, arabo, coreano, giapponese.

Tali dizionari sono spesso il risultato di collaborazioni tra varie università ed enti di Ricerca tra cui, oltre al Politecnico di Mons, quelle di Edimburgo e di Stoccarda, il Departement of phonetics and linguistics presso il London College, ecc. È possibile prelevare dal sito Mbrola una Demo per ciascuno di tali dizionari: ve ne sono anche di eccellenti.

La Sintesi Mbrola funziona sui seguenti computers/sistemi operativi: SUN Sparc 5/S5R4 (Solaris2.4); HPUX9.0 and HPUX10.0; VAX/VMS V6.2 (V5.5-2 won't work); DECALPHA(AXP)/VMS 6.2; AlphaStation 200 4/233; AlphaStation 200 4/166; IBM RS6000 Aix 4.12; PC486/DOS6; PC486/Windows 3.1; PC486/Windows 95; PC-Pentium/Windows 98; PC-Pentium/Windows NT; PC/LINUX 1.2.11; PCPentium120/Solaris2.4; OS/2; BeBox; BeOs (PPC,i386); Macintosh.

La versione dos è stata compilata da me, onde la menzione del mio nome nel file README.TXT, e la trovate all'url: http://tcts.fpms.ac.be/synthesis/mbrola/bin/pcdos/mbr301d.Zip

Scompattando questo file la trovate nella directory mbr302a, dal momento che la versione ufficiale corrente è ancora la 3.01.

In effetti l'eseguibile Mbrola è solamente il driver: prende in input un file di testo contenente una sequenza di fonemi e li sintetizza producendo un output di tipo wave, raw o au. Ciascuna riga dell'input contiene:

- Un codice ascii identificativo della lettera, del fonema che si vuole, secondo lo standard Sampa, e la durata in millisecondi dello stesso. Consente altresì di aggiungere al fonema una serie di picchi lineari, di durata e altezza variabili.

Questo script, anche incorporato in un file batch, invece trasforma il testo da sintetizzare in questa sequenza di fonemi, producendo cioè l'input per il driver Mbrola. In altre parole è a questo livello che si decide la durata dei singoli fonemi, l'arricchimento con picchi lineari, l'accentazione delle parole, i silenzi tra di esse, l'intonazione prosodica, le pause ascendenti e discendenti della Punteggiatura, ecc.

Infine va osservato che l'algoritmo Mbrola determina la forma d'onda del singolo fonema sulla base di quello precedente e di quello successivo, secondo un approccio detto concatenativo.

Pertanto lo script cerca di utilizzare lo stesso approccio utilizzando un file in cui sono codificate e facilmente codificabili le regole fonetiche della lingua italiana, le eccezioni ecc.

Questo file, chiamato ITBASE, viene allegato al solo scopo di dare una idea, essendo l'intero Lavoro ancora in una fase rudimentale di prototipo.

3.1 UNO SGUARDO AI COMPONENTI

I componenti essenziali del pacchetto sono:

- Il database fonetico: IT3 per la Voce maschile, IT4 per quella femminile;

- Il file delle regole: ITBASE;

- il driver Mbrola Per architetture diverse da Microsoft Windows deve essere prelevato dal sito Mbrola e nello script bisognerà uncommentare la variabile $mbrolacmd relativa alla piattaforma desiderata; per la piattaforma Win32 viene invece distribuita una versione modificata dello stesso driver Mbrola chiamata smbrola, identica al driver ufficiale, ma che in più include la funzionalità di suonare direttamente il file wave prodotto;

- Lo script: Sintesi.pl.

Anche questo viene fornito in due versioni: il file Sintesi.pl che può essere utilizzato su tutte le piattaforme supportate da Mbrola a condizione di avere Perl installato, di modificare la riga $mbrolacmd di cui sopra e, se necessario, di impostare gli opportuni permessi: (chmod); per la piattaforma Win32 viene anche fornito un file batch che incorpora lo script (file Sintesi.bat).

- Perl. Come si sa il Linguaggio Perl è un Linguaggio interpretato per cui bisogna aver installato Perl, il che avviene pressoché di default nei sistemi di origine unix come FreeBSD o Linux. Come si sa esiste anche una versione Perl per i sistemi della Apple e della Microsoft come Win9x, WinNT e Dos. Tuttavia, per non costringere a Installare Perl chi solo volesse fare un assaggio dello script, viene fornito, per la piattaforma Win32, una versione ridotta di Perl, da me compilata, chiamata Miniperl.exe, utilizzata dal file Sintesi.bat.

Questa versione non supporta alcuna estensione, ma permette l'opzione -d, vale a dire il debugger, Cosicché è possibile seguire il flusso del programma riga per riga, e tutte le altre facilitazioni di tale debugger digitando ad esempio:

Miniperl -d Sintesi.pl [-opzioni] FileDaSintetizzare [AltroFile ... fileennesimo] o miniperl -h per un elenco delle opzioni disponibili o miniperl -v per avere notizie sulla versione e sul Copyright (queste arrivano in Italiano).

3.2 USO DEL PROGRAMMA

Dalla shell, dalla finestra di dos (o cmd.exe), digitare:

o, solo per la piattaforma Win32, Miniperl Sintesi.pl [-opzioni] files da sintetizzare o ancora, sempre per la piattaforma Win32:

Sintesi.bat [-opzioni] files da sintetizzare

Opzioni

-s numero Velocità (default 1.0) nello script impostato a 0.914

-t numero Tonalità (default 1.0) nello script impostato a 0.86 per la Voce maschile, 2.362 per la femminile;

-n senza prosodia (tutti i fonemi hanno uguale lunghezza (a fine di prova)

-vf per impostare la Voce femminile

Vi sono anche altre opzioni che hanno solo esclusivo scopo di Lavoro perl Sintesi.pl -h per averne un elenco.

È altresì possibile impostare queste opzioni utilizzando delle variabili di Ambiente, ad esempio:

mbroladatabase=it3

rulebase=itbase per impostare il file delle regole ma il solo esistente è itbase

FILES DA SINTETIZZARE

sulla riga di comando possono essere passati come parametri i percorsi di quanti si voglia files da sintetizzare. Se non viene passato alcun file viene assunto lo standard input, cosicché è possibile digitare direttamente frasi dalla Tastiera: la Sintesi finisce inserendo una riga vuota, ovvero premendo due volte il tasto invio.

Infine viene fornito anche un file batch (avviambr.bat) che permette di caricare il programma in maniera stabile per tutta la sessione. Questo batch consente di impostare un file predefinito per la Sintesi cosicché dalle altre applicazioni basterà semplicemente copiare in esso il testo da sintetizzare, ad esempio:

set Mbrolafile=pippo qualsiasi cosa una applicazione mandi al file pippo (con una volgare copy o cp) sarà sintetizzato e il file svuotato, pronto a nuovi input.

Infatti lo scopo finale di questo Lavoro è quello di fornire uno strumento utilizzabile da applicazioni di Tecnologia assistiva come screen reader e simili.

3.3 LIMITI DELLA APPLICAZIONE

Come si è detto in precedenza questo Lavoro è un "work in progress", un "cantiere", quindi ingombro di semilavorati, di cose anche inutili, di cose da finire, rifinire, migliorare.

Sarebbe dunque difficile fare un elenco completo dei limiti attuali. Qui ci si limita a elencarne alcuni:

- I numeri non sono ancora convertiti nel loro equivalente verbale;

- L'accentazione tonica è approssimativa;

- La durata e quindi la chiarezza di alcuni fonemi va corretta;

- L'algoritmo prosodico è rudimentale;

- Le modulazioni connesse alla Punteggiatura vanno riviste;

- I caratteri non alfabetici devono poter essere trasformati nel loro equivalente verbale.

Il pacchetto viene rilasciato nonostante questi limiti proprio per poter essere aperto alla collaborazione di chi voglia. Specie per quanto riguarda il suo test, in particolare per quanto riguarda architetture diverse da dos e Win32, segnatamente Linux e mackintosh.

4 ELENCO E DESCRIZIONE DEI FILES DEL PACCHETTO

AVVIAMBR.BAT - Permette alle altre applicazioni di mandare testi alla Sintesi semplicemente copiandoli in un file predefinito Config.pm

EXPORTER.PM EXPORTER\HEAVY.PM TERM\READLINE.PM - Moduli utilizzati da miniperl.exe

COPYING - Testo originale della GPL (GNU General public licence versione 2 (C) Free Software Foundation

DICI.PL - Analogo a Sintesi.pl: pronuncia la frase passatagli come parametro. Di diverso c'è solo l'algoritmo di calcolo delle durate base dei fonemi.

DUTOIT - Versione testuale della relativa Pagina sul sito Mbrola contenente un estratto del Libro "an introduction to text-to-speech synthesis" di Thierry Dutoit, l'autore di Mbrola

IT3 - Database fonetico per la Voce maschile

IT3.TXT - Descrizione del database come acclusa al pacchetto e prelevabile da Mbrola

IT4 - Database fonetico per la Voce femminile (non incluso in questa distribuzione)

IT4.TXT - Descrizione dello stesso come prelevabile dal sito Mbrola

ITBASE - File delle regole utilizzato dalla Sintesi

JOHNATHAN - Bozza di discussione del programma Johnathan

LEGGIMI - Questo file

LICENSE.IT3 - Licenza d'uso del database it3 (acclusa alla distribuzione dal sito Mbrola)

LICENSE.IT4 - Licenza d'uso del database it4 (acclusa alla distribuzione dal sito Mbrola)

MINIPERL.EXE - La versione ridotta dell'interprete perl

PERL5DB.PL - Il debugger per l'interprete miniperl

README.TXT - Il readme che accompagna tutte le versioni del driver Mbrola. Contiene informazioni sulla licenza d'uso e sul funzionamento del programma

Sintesi.PL - Lo script Perl che produce la Sintesi italiana

Sintesi.BAT - Lancia l'interprete e contiene anche lo script

SMBROLA.EXE - Versione modificata del driver Mbrola per Win32. Suona anche il file wave prodotto dalla Sintesi

5 CONCLUSIONE EContatti

Per ulteriori informazioni sul pacchetto si prega gli interessati di voler dare una occhiata agli scarsi commenti contenuti nel codice.

Come detto sono particolarmente interessato al test del pacchetto su altre piattaforme, segnatamente Linux e mackintosh, perché questo Lavoro potrebbe Aprire la strada all'uso di questi sistemi da parte dei non vedenti.

Del resto questo è ciò che mi ha spinto a intraprendere questo Lavoro, ancora lungo, specie se fatto da solo.

Per quanto riguarda Mackintosh sembra che allo stato sia di fatto LORO precluso non esistendo tecnologie assistive specifiche per questa piattaforma.

Quanto a Linux il problema riguarda in particolare i non vedenti italiani. Siamo al paradosso che per poter utilizzare un sistema operativo gratuito e open source come appunto linux, i non vedenti italiani possono farlo solo a condizione di avere un display Braille da 5000 euro, poiché gli screen reader non sono interfacciati con una Sintesi Vocale italiana.

Per quanto riguarda la piattaforma Win32 penso di passare presto a una integrazione di questo Lavoro con programmi che intercettino eventi di Schermo e di Tastiera.

Sarebbe auspicabile avere applicazioni di Tecnologia assistiva gratuita e Open Source, dunque a costo zero, capaci di concorrere anche qualitativamente con gli analoghi ausili Software commerciali.

Sempre per quanto riguarda i non vedenti c'è altresì una altra lacuna nelle tecnologie assistive che andrebbe colmata: avere interfacce vocali con display e Tastiera di telefonini e palmtop.

Al riguardo ho una altra velleità: Perl gira anche con sistemi operativi Epoc; Mbrola no, per ora. Tuttavia il Symbian OS, per la serie 60, sponsorizzato da Ericsson, Nokia, Matsushita (Panasonic), Motorola, Psion, Siemens e Sony Ericsson, AppForge, Sansung, Orange, Vodafone, è "open" (vedi http://www.symbian.com/ ) e supporta un C++ Software developpment kit (SDK) compatibile sia con Microsoft Visual C++, sia col GNU gcc, ed è compatibile anche con lo standard Posix: dunque da un lato non ci dovrebbero essere grossi problemi a compilare l'eseguibile Mbrola, dall'altro dovrebbe permettere di integrare applicazioni su esso basate con l'Ambiente grafico di questo sistema operativo. Rientrano in questa categoria le serie: Nokia 3650, 7650, Siemens P800 e soprattutto Nokia 9210 communicator e macchine del tipo ER5, come Psion 5mx, 5mx Pro, Psion Revo ed Ericson M128.

Se la qualità attuale della Sintesi avesse fatto storcere il naso a qualcuno torno a ribadire che questo è un "Lavoro in corso". Pertanto chiunque, a qualsiasi titolo, fosse interessato allo sviluppo, al test, alla integrazione di questo programma con altre applicazioni, si ritenga ringraziato in anticipo ed è pregato di volermi contattare.