Debian-Accessibility — Software

Sintesi vocale e relative API

EFlite

Server vocale per Emacspeak e yasr (o per altri lettori dello schermo) che permette a questi programmi di interfacciarsi con Festival Lite, un motore da testo a parlato libero sviluppato allo CMU Speech Center come una costola di Festival.

A causa delle limitazioni ereditate dal suo backend attualmente EFLite fornisce il supporto per la sola lingua inglese.

eSpeak

eSpeak è un programma per la sintesi vocale in lingua inglese e in qualche altra lingua.

L'output prodotto da eSpeak è di buona qualità. Utilizza un metodo di sintesi diverso dagli altri programmi motori TTS (Text To Speach) open source, non usa una sintesi vocale concatenativa e quindi richiede molto spazio in meno, e il suono è un po' diverso. Forse non è naturale né liscio ma le articolazioni sono più chiare e più semplici da ascoltare per lunghi periodi.

Può essere eseguito dalla riga di comando per riprodurre un un file di testo o lo stdin. Inoltre funziona anche come Talker per il sistema TTS di KDE, per esempio come alternativa a Festival. Come conseguenza può riprodurre il testo selezionato negli appunti, nel browser Konqueror o nell'editor Kate.

eSpeak può essere usato con GNOME-speech e Speech Dispatcher.

Festival Lite

Un piccolo e veloce motore per la sintesi vocale. È l'ultima aggiunta alla raccolta di strumenti software liberi di sintesi che comprende il Festival Speech Synthesis System dell'università di Edimburgo, il progetto FestVox dell'università Carnegie Mellon, gli strumenti, gli script e la documentazione per creare voci sintetiche. Comunque di per sé flite non richiede nessuno di questi sistemi per funzionare.

Attualmente supporta solo la lingua inglese.

Festival

Un sistema universale di sintesi vocale multi-lingua sviluppato al CSTR (Centro per la Ricerca sulla Tecnologia della Voce) dell'Università di Edinburgo.

Festival offre un sistema da testo a voce completo con molte API ma anche un ambiente per lo sviluppo e la ricerca di tecniche di sintesi vocale. È scritto in C++ con un interprete di comandi basato su Scheme per il controllo generico.

Oltre alla ricerca sulla sintesi vocale festival è utile come programma di sintesi vocale a sé stante, è in grado di riprodurre da un testo un parlato chiaramente comprensibile.

recite

Recite è un programma per la sintesi vocale. La qualità del suono prodotto non è eccezionale ma dovrebbe essere adeguata per riportare verbalmente dei messaggi di errore occasionali.

Dato del testo in inglese recite lo converte in una serie di fonemi, poi converte i fonemi in una sequenza di parametri dell'apparato vocale e infine sintetizza il suono come se fosse l'apparato vocale a pronunciare la frase. Recite può effettuare una anche solo parte di queste operazioni quindi può essere usato per convertire testo in fonemi o per produrre una voce in base ai parametri dell'apparato vocale calcolati da un altro programma.

Speech Dispatcher

Fornisce un livello indipendente dal dispositivo per la sintesi vocale. Supporta come backend vari sintetizzatori sia software che hardware e fornisce un livello generale per la sintesi vocale e per la riproduzione di dati PCM tramite i vari backend alle applicazioni.

Diversi concetti evoluti, come la messa in coda in opposizione all'interrupt per l'output della voce e la configurazione delle applicazioni specifica per l'utente, sono implementate in modo da essere indipendenti dal dispositivo e quindi tolgono al programmatore della applicazione il compito di dover nuovamente reinventare la ruota.

Sintesi vocale internazionalizzata

Tutte le attuali soluzioni libere disponibili per la sintesi vocale software sembrano condividere una stessa manchevolezza: sono principalmente limitate all'inglese e forniscono solo un supporto molto marginale alle altre lingue o, nella maggioranza dei casi, addirittura nessuno. Fra tutti i programmi liberi di sintesi vocale per Linux solo CMU Festival supporta in modo nativo più di una lingua, CMU Festival può sintetizzare l'inglese, lo spagnolo e il gallese ma il tedesco non è supportato, il francese non è supportato, il russo non è supportato. In un periodo in cui internazionalizzazione e localizzazione sono di moda nel software e nei servizi web è ragionevole obbligare le persone ciece interessate a Linux a imparare l'inglese solo per comprendere l'output dei loro computer e a gestire tutte le loro comunicazioni in una lingua straniera?

Sfortunatamente la sintesi vocale non è esattamente il progetto favorito di Jane Hacker. La creazione di un sintetizzatore vocale software intelleggibile comporta dei compiti che richiedono molto tempo. La sintesi vocale concatenativa richiede l'attenta creazione di un database di fonemi che contenga tutte le possibili combinazioni di suoni della lingua da riprodurre. Le regole che determinano la trasformazione della rappresentazione testuale in singoli fonemi necessitano di essere sviluppate e di essere messe a punto, solitamente è necessario dividere il flusso di caratteri in gruppi logici come periodi, frasi e parole e una simile analisi lessicale richiede un dizionario specifico della lingua che raramente è rilasciato con una licenza libera.

Uno dei più promettenti sistemi di sintesi vocale è Mbrola che dispone di database di fonemi per più di dieci lingue diverse ma, sfortunatamente, la licenza scelta dal progetto è molto restrittiva: Mbrola può essere distribuito solo come binario pre-compilato e inoltre è consentito solo l'uso non-militare e non-commerciale dei database di fonemi. Sono stati contattati gli sviluppatori del progetto ma loro non sono in grado di modificare la licenza del loro lavoro a causa delle limitazioni imposte da vari collaboratori. Purtroppo dato il tipo restrittivo di licenza Mbrola non può essere usato come base per il lovoro in questa direzione, almeno non nel contesto del Sistema Operativo Debian.

Senza un software di sintesi vocale ampiamente multi-lingua Linux non può essre accettato dai produttori di tecnologia assistiva e dalle persone con disabilità visiva. Come si può risolvere?

Fondamentalmente ci sono due possibili approcci:

  1. Organizzare un gruppo di persone che hanno la volontà di impegnarsi su questo tema e provare a migliorare la situazione. Questo potrebbe essere un po' complicato dato che sono necessarie molte conoscenze specifiche sulla sintesi vocale che non è semplice acquisire con un approccio da autodidatta, in ogni caso non ci si deve scoraggiare. Se si pensa di poter motivare un gruppo di persone sufficientemente ampio in grado di ottene dei risultati positivi è preferibile almeno provare a farlo.
  2. Ottenere finanziamenti e pagare degli istituti che già hanno le conoscenze per creare i necessari database di fonemi e regole lessicali e di trasformazione. Questo approccio ha il vantaggio che ha una probabilità più alta di produrre dei risultati di qualità e li dovrebbe anche ottenere molto prima rispetto al precedente approccio. Ovviamente la licenza sotto cui dovrà essere rilasciato il materiale risultante dovrebbe essere concordata in anticipo e dovrebbe rispettare i requisiti delle DFSG. La soluzione ideale sarebbe senza dubbio convincere alcune università ad affrontare un tale progetto usando fondi propri e a fornire i risultati come contributo alla comunità del Software Libero.

Infine, ma non per questo meno importante, sembra che la maggior parte dei prodotti di sintesi vocale commerciali di maggior successo non utilizzi la sintesi vocale concatenativa perché il database dei suoni occupa molto spazio su disco. Questo è un dettaglio molto importante sui piccoli prodotti embedded come i telefoni cellulari. Recentemente è stato rilasciato il software libero eSpeak che utilizza questo approccio. Può essere interessante dargli un'occhiata.

Estensioni di revisione dello schermo per Emacs

Emacspeak

Sistema per output sonoro che permette a chiunque non possa vedere di lavorare direttamente su un sistema UNIX. Una volta avviato Emacs con Emacspeak caricato si ottiene la ripetizione sonora di tutte le operazioni che si compiono. Il miglioramento delle prestazioni varierà a seconda dell'abilità con cui si può usare Emacs, non c'è nulla che non si può fare all'interno di Emacs :-). Questo pacchetto contiene dei server vocali scritti in tcl per supportare i sintetizzatori vocali DECtalk Express e DECtalk MultiVoice, per altri sintetizzatori cercare dei pacchetti separati con server vocali come Emacspeak-ss o eflite.

speechd-el

Client per l'uso di sintetizzatori vocali, display Braille e altre interfacce di output alternative con Emacs. Fornisce un'interfaccia completa per l'output vocale e Braille a Emacs; è particolarmente adatto agli utenti con problemi visivi che hanno bisogno di una comunicazione non-visuale con Emacs ma può essere utilizzato da chiunque abbia la necessità di un output vocale o di qualsiasi altro tipo da Emacs.

Lettori dello schermo per console (modalità testo)

BRLTTY

Un demone che fornisce l'accesso alla console Linux a una persone cieca tramite un display braille; pilota il terminale braille e permette la completa revisione dello schermo.

I seguenti modelli di display sono al momento (dalla versione 3.4.1-2) supportati:

BRLTTY fornisce anche una infrastruttura client/server per le applicazioni che vogliono utilizzare un display braille. Il processo demone ascolta le connessioni TCP/IP su una determinata porta. Una libreria condivisa per i client è fornita nel pacchetto libbrlapi, una libreria statica, i file header e la documentazione sono forniti nel pacchetto libbrlapi-dev. Queste funzioni sono usate, per esempio, da Gnopernicus per fornire il supporto per i tipi di display che non sono ancora supportati direttamente da Gnopernicus.

Screader

Il programma di sfondo screader legge lo schermo e invia le informazioni a un programma da-testo-a-parlato (tipo "festival") o a un sintetizzatore hardware.

Yasr

Lettore universale dello schermo della console per GNU/Linux e altri sistemi operativi UNIX-like. Il nome yasr è un acronimo che sta per Yet Another Screen Reader (Ancora un Altro Lettore dello Schermo) che per Your All-purpose Screen Reader (il Vostro Lettore dello Schermo Universale).

Attualmente yasr tenta di supportare i sintetizzatori hardware Speak-out, DEC-talk, BNS, Apollo e DoubleTalk. Inoltre è capace di comunicare con i server Emacspeak speech e quindi può essere usato con i sintetizzatori non supportati direttamente come Festival Lite (via eflite) o FreeTTS.

Yasr funziona aprendo uno pseudo-terminale ed eseguendo una shell che intercetta tutto l'input e l'output. Egrave; come se delle sequenze di escape fossero inviate a una finestra virtuale contenente quello che crede essere presente sullo schermo, quindi non usa nessuna delle funzioni specifiche di Linux e può essere portato su altri sistemi operativi UNIX-like senza troppi problemi.

Interfacce utente grafiche

L'accessibilità delle interfacce utente grafiche sulle piattaforme UNIX ha avuto una significativa crescita solo recentemente con lo sviluppo di diversi tentativi intorno al Desktop GNOME, in particolare il GNOME Accessibility Project.

Software per l'accessibilità di GNOME

Assistive Technology Service Provider Interface

Questo pacchetto contiene i componenti di base di GNOME Accessibility, questi permettono ai fornitori di tecnologie assistive come i lettori dello schermo di interrogare tutte le applicazioni in esecuzione sul desktop per avere informazioni sull'accessibilità ma fornisce anche dei meccanismi di collegamento per supportare altri toolkit oltre a GTK.

I collegamenti per il linguaggio Python sono forniti nel pacchetto python-at-spi.

The ATK accessibility toolkit

ATK è un toolkit che fornisce accessibilità alle interfacce delle applicazioni o ad altri toolkit. Con l'implementazione di queste interfacce, di questi altri toolkit o le applicazioni possono essere usate con strumenti come lettori dello schermo, ingranditori e altri dispositivi di input alternativi.

La parte eseguibile di ATK, necessaria per eseguire le applicazioni compilate con questo toolkit, è disponibile nel pacchetto libatk1.0-0. I file di sviluppo di ATK, necessari per compilare i programmi o i toolkit che usano ATK, sono forniti dal pacchetto libatk1.0-dev. I collegamenti per il linguaggio Ruby sono forniti nel pacchetto libatk1-ruby.

gnome-accessibility-themes

Il pacchetto gnome-accessibility-themes contiene dei temi ad alta accessibilità per l'ambiente desktop GNOME particolaramente adatti per chi ha problemi visivi.

Sono forniti 7 temi, con combinazioni a contrasto alto, basso e inverso, e con testi e icone ingrandite.

gnome-speech

La libreria GNOME Speech fornisce una API semplice e abbastanza generale per permettere ai programmi di convertire del testo in voce e per input vocale.

Sono supportati molti backend ma al momento in questo pacchetto è abilitato solo il backend per Festival; gli altri backend richiedono Java o del software proprietario.

Gnopernicus

Gnopernicus è progettato per permettere agli utenti con visione limitata o assente di accedere alle applicazioni GNOME. Fornisce funzionalità di ingrandimento, di tracciamento del focus, output braille e altro.

gnome-orca

Orca è un lettore dello schermo flessibile ed estendibile che permette di accedere al desktop grafico tramite delle combinazioni personalizzabili dall'utente con voce, braille e/o ingrandimento. Orca è sviluppato dall'Accessibility Program Office della Sun Microsystems, Inc. a partire dal 2004; è stato creato e viene sviluppato grazie ai continui stimoli e incoraggiamenti provenienti dai propri utenti.

Orca può usare GNOME-speech (la scelta predefinita e Speech Dispatcher per la riproduzione dell'output sonoro all'utente. Come supporto per la visualizzazione braille è usato BRLTTY (in modo da avere un ambiente integrato per la console e l'interfaccia grafica).

Software per l'accessibilità di KDE

kmag

Ingrandisce parti dello schermo, come se si utilizzasse una lente d'ingrandimento per ingrandire delle scritte piccole o una fotografia. Questa applicazione è utile a parecchie persone: dai ricercatori ai disegnatori per il web fino alle persone con problemi visivi.

Metodi di input non-standard

Dasher

Dasher è una interfaccia per l'inserimento di testo pilotata dai naturali gesti continui di puntamneto. Dasher è un sistema di inserimento testo efficace in tutti quei casi in cui una normale tastiera non può essere usata, per esempio:

La versione con tracciamento degli occhi di Dasher permette a un utente esperto di scrivere del testo alla stessa velocità della normale scrittura a mano: 25 parole al minuto; usando un mouse gli utenti più esperti possono scrivere fino a 39 parole al minuto.

Dasher usa un algoritmo di predizione più avanzato del sistema T9 usato nei telefoni cellulari rendendolo sensibile al contesto circostante.

GOK

GOK (GNOME Onscreen Keyboard) è una tastiera sullo schermo dinamica per i sistemi operativi UNIX e UNIX-like. Le sue funzionalità sono i metodi d'accesso Direct Selection, Dwell Selection, Automatic Scanning e Inverse Scanning e il completamento delle parole.

GOK comprende una tastiera alfnumerica e una tastira per avviare le applicazioni. Le tastiere sono definite in XML il che permette di modificare le tastiere esistenti o di crearne di nuove. Anche i metodi di accesso sono definiti in XML il che permette di modificare i metodi di accesso esistenti o di crearne di nuovi.