Software libero per sintesi e riconoscimento vocale

Macchine che parlano o che comprendono la voce umana hanno sempre esercitato un enorme fascino, fin da quando, sul finire degli anni cinquanta del secolo scorso, i primi robot sono comparsi con le loro voci metalliche nelle fiere e nelle esposizioni.
Tuttavia si può dire che fino all’inizio del nostro secolo si è sempre trattato di cose che poco avevano a che vedere con ciò che facciamo tutti i giorni. Nonostante ciò, la ricerca e la sperimentazione nel campo della sintesi e del riconoscimento vocale sono sempre state attive ed oggi, sia grazie alla quasi perfezione dei risultati tecnici raggiunti sia grazie all’utile applicabilità di questi risultati alle moderne apparecchiature, soprattutto quelle di ultima generazione nel mobile, praticamente tutti i giorni utilizziamo queste tecnologie.
Gli apparecchi telefonici installati sulle automobili e gli smartphone sono già dotati di tutto quanto serve perché ci venga letto un messaggio SMS o perché lo possiamo dettare.
Per non parlare del navigatore che abbiamo sull’automobile, che ci indica la strada a voce.
Tutto ciò non avviene per i personal computer o, quanto meno, sui personal computer, queste tecnologie non sono così automaticamente presenti e così facilmente accessibili.
Per chi voglia superare questo incomodo ho ritenuto utile catalogare quanto di meglio ci offre il software libero in questo campo nel manualetto allegato, liberamente scaricabile e distribuibile.

tts_stt

Software libero per la blockchain

Forse non tutti sanno che la piattaforma su cui funziona la prima grande applicazione della tecnologia blockchain, cioè il sistema Bitcoin, è software libero.
Già dietro il nome del fantomatico creatore di questa tecnologia, Satoshi Nakamoto, molto probabilmente si cela una pluralità di persone. Fin dalla metà del 2010, comunque, cioè da quando è stata resa pubblica la prima versione del software e Nakamoto è sparito, il sorgente è open e al progetto lavorano più persone, attualmente almeno un centinaio nella comunità Github, dove dal 5 giugno del 2015 si è collocato lo sviluppo della piattaforma Bitcoin.
Per chiunque volesse mettere il naso per vedere come è fatta questa tecnologia dal punto di vista informatico, questo è l’indirizzo: https://github.com/bitcoin/bitcoin. Vi si trova il sorgente.
Per chi, invece, fosse interessato a caricare il software sul proprio computer, software che si chiama Bitcoin Core, l’indirizzo è: https://bitcoin.org/it/scarica oppure, in sede più aggiornata, https://bitcoincore.org/en/download/. Il software è disponibile per Linux, Windows e OS X. La versione corrente è la 0.15.1, rilasciata l’11 novembre del 2017.
Il computer con installato questo software diventa un nodo (full node) della rete blockchain, cioè diventa uno dei tanti computer dove è presente il database della blockchain e diventa uno dei computer che partecipa alla validazione delle transazioni ed alla loro trasmissione ad altri nodi.
Basta un normale computer con almeno 2 GB di RAM in quanto, a partire dalla versione 0.13, Bitcoin Core non ha più abilitata la funzione per il mining (costruzione di nuovi blocchi), per la quale necessiterebbero potenze di calcolo non alla portata di computer casalinghi. Ciò che importa è avere un collegamento Internet superveloce e spazio sufficiente per ospitare il database, attualmente quasi 200 GB, destinato, dati i ritmi di espansione, ad assorbire ulteriormente tra i 5 e i 10 GB al mese. Il tutto può essere ospitato su disco esterno collegato via USB.
Ovviamente è necessario rendere disponibile il computer per la rete almeno sei ore al giorno, sapendo che la piena collaborazione richiederebbe 24 ore su 24 (la disponibilità del computer per la blockchain consente di utilizzare altrimenti il computer stesso per i propri lavori).
All’indirizzo http://btc-news.it/utility/nodo bitcoin.html troviamo una descrizione di cosa significhi essere un full node della blockchain con un fervorino tendente al reclutamento (la blockchain senza nodi non esisterebbe).
Nella sostanza lo svantaggio sta nel rendere disponibile il computer, con relativo costo di energia elettrica, senza alcun compenso. I compensi li percepisce solo il miner e si sono ormai ridotti al lumicino in forza della progressione geometrica con cui diminuiscono. Cosa assolutamente non proporzionata ai costi che comporta allestire e mantenere la capacità elaborativa richiesta dall’attività di mining (per fortuna ci sono i cinesi).
C’è però il grande vantaggio di poter gestire in proprio il bitcoin wallet senza delegarne la gestione ad altri, affidando loro le nostre credenziali, come avviene quando apriamo il bitcoin wallet su uno degli ormai numerosi intermediari di criptomonete: sul piano della sicurezza si tratta di una cosa impagabile.
A livello di hackeraggio brutto ci sarebbe anche un modo per avere il vantaggio senza lo svantaggio, ma tutto ciò è diseducativo. Chi voglia essere diseducato guardi https://www.youtube.com/watch?v=7X0KgtpvSGA.
Prescindendo comunque dall’applicazione Bitcoin, che, nonostante tutto, possiamo ancora considerare qualche cosa di sperimentale, ciò che conta è che la tecnologia blockchain, con la valanga di novità che potrà portare nei più svariati campi applicativi, sia appannaggio del software libero.
Mancherebbe altro! Una tecnologia destinata alla democratizzazione della conoscenza e della custodia dei dati non sarebbe certamente coerente fosse fatta funzionare da software proprietario.

digiKam, il massimo

Il 18 gennaio scorso è stata rilasciata la versione 5.8.0 di digiKam.
Si tratta di un software open source di gestione di raccolte fotografiche e di elaborazione digitale delle immagini, il cui primo rilascio risale al 2002.
Anche grazie ai più recenti ravvicinati rilasci (uno ogni tre/quattro mesi) sta praticamente raggiungendo la perfezione.
Purtroppo, quando ho parlato di strumenti di questa specie, nel maggio 2015 (vedere, in questo blog, l’articolo “Software libero per utilizzare file digitali” e il relativo allegato “utilizzo_file_digitali.pdf”), ho presentato due programmi per la gestione di file fotografici: il semplicissimo KPhotoAlbum, non dotato di funzioni di foto-ritocco e Fotoxx, dotato di funzioni di foto-ritocco. Quest’ultimo, a quel tempo, da me ritenuto migliore della versione 4 di digiKam allora disponibile.
Ma è proprio nel 2015 che è partito il riscatto di digiKam e, dopo il rilascio di ben sette versioni beta, il 3 luglio 2016 è stata data alla luce la versione 5.0.0, dove la perfezione ha cominciato a prendere corpo.
Tra l’altro, a differenza dei due software citati prima, che sono disponibili solo per Linux, digiKam è ora disponibile anche per Windows e Mac OS X.
Dal novembre 2016, con la versione 5.3.0, per Linux viene rilasciato anche come AppImage (cioè come pacchetto eseguibile senza essere installato).
L’ultimo manuale di digiKam, disponibile anche in italiano, è fermo alla versione 5.2: anche se con alcune parti non ancora realizzate, è molto particolareggiato e può risultare dispersivo per chi cerchi semplicemente un primo approccio con questo interessante software.
Ho pensato allora di fare cosa utile proponendo il manualetto allegato, in formato PDF, liberamente consultabile, scaricabile e distribuibile.

digikam

Il migliore desktop per Ubuntu

Con il rilascio della versione 17.10 Ubuntu ha definitivamente abbandonato Unity.
Personalmente non ho mai apprezzato Unity, fin da quando è comparsa nella Netbook Edition di Ubuntu 10.10 (a quei tempi ho invece apprezzato molto il simpatico ambiente grafico gemello di Kubuntu 10.10 per netbook, chiamato Plasma Netbook).
Il motivo è molto semplice: Unity, che dalla versione 11.04 era divenuta l’interfaccia grafica predefinita di Ubuntu, presentava un accesso alle applicazioni presenti sul computer che andava bene per chi con il computer faceva le solite tre o quattro cose. Le applicazioni erano infatti accessibili o cliccando sulle poche icone presenti sulla barra delle applicazioni o attraverso il macchinoso sistema della dash.
Per non parlare delle complicazioni connesse alla costruzione di lanciatori per software di propria produzione o installati senza ricorrere al gestore di programmi.
Ed evidentemente questo difetto era avvertito anche in casa Ubuntu; tant’è vero che nessuno si è mai sognato di organizzare l’accesso alla variegata serie di applicazioni, per esempio, di Ubuntu Studio con l’interfaccia Unity, preferendo sempre a quest’ultima il classico menu, nel caso Whisker.
Purtroppo l’ambiente grafico predefinito di Ubuntu, dalla versione 17.10, è diventato Gnome 3, che considero anche peggiore di Unity, sempre a motivo dei difetti che ho illustrato poco fa.
Tra l’altro Unity e Gnome 3 erano talmente simili che un utente poco smaliziato nemmeno si accorge che Ubuntu ha cambiato desktop: nessuno, del resto, ha mai capito perché Canonical abbia sprecato per anni risorse per sviluppare un simile doppione.
Fortunatamente viene rilasciata una derivata Ubuntu, che si chiama Ubuntu MATE, che ci offre un desktop classico, tra l’altro leggerissimo in termini di utilizzo delle risorse del computer, molto bello per chi la pensa come me.

Software libero per il PDF

Nei miei due recenti articoli su come possiamo scrivere e pubblicare noi stessi ebook (“Scrivi e pubblica i tuoi ebook” del settembre 2017) o veri e propri libri stampati su carta (“Scrivi e pubblica veri libri” del novembre 2017) ho illustrato come il formato PDF si presti egregiamente a questi fini, pur essendo ormai affiancato e, in certi casi, giustamente soppiantato da più flessibili altri formati, come il diffusissimo ePub, meglio fruibili sui ridotti schermi di smartphone e piccoli tablet.
Nei due articoli ho anche presentato due formidabili strumenti del mondo del software libero con i quali possiamo produrre file PDF: LibreOffice e LyX.
Per un più completo panorama su cosa si possa fare con il PDF e con il software libero ho ora ritenuto utile proporre la panoramica che si trova nell’allegato manualetto, in formato PDF, che può essere liberamente scaricato, stampato e diffuso.

pdf

Scrivi e pubblica veri libri

Nell’articolo “Scrivi e pubblica i tuoi ebook” dello scorso settembre e nel relativo allegato “epub” ho illustrato come si possano produrre facilmente ebook in un perfetto formato ePub con LibreOffice per pubblicarli e venderli attraverso alcune organizzazioni: tutto senza investire un euro.
Ho anche ricordato che, oltre al formato ePub, esiste il formato PDF, poco adatto agli apparecchi lettori di ebook e a schermi di piccole dimensioni ma adattissimo per gli schermi dai 10 pollici in su di tablet, notebook e personal computer: ideale, soprattutto, per stampare la nostra produzione su carta.
La produzione dei nostri lavori nel formato PDF è possibile utilizzando lo stesso strumento LibreOffice esattamente nello stesso modo con cui lo utilizziamo per produrre nel formato ePub.
Se però vogliamo che il nostro prodotto abbia la forma classica di un libro secondo i dettami stilistici dell’editoria cartacea dobbiamo ricorrere ad un altro potente strumento che ci mette a disposizione il mondo del software libero: il motore di tipocomposizione Tex.
Nel tutorial allegato in formato PDF, liberamente scaricabile, stampabile e distribuibile, illustro questo strumento e un modo per utilizzarlo con relativa facilità.

pdf_lyx

A chi servono i database NoSQL

Nell’allegato all’articolo “Matematica e Statistica con Calc” del giugno 2016, archiviato nella categoria “Software libero” di questo blog, ho illustrato come il più semplice e rudimentale database possa essere creato e gestito con un foglio di calcolo.
Negli allegati agli articoli “Software libero per gestire dati” del maggio 2015 e “SQLite, un database per tutti” del dicembre 2016, pure archiviati nella categoria “Software libero” di questo blog, ho illustrato i tre principali strumenti che il software libero ci mette a disposizione per creare e gestire database più seri e professionali: il modulo Base di LibreOffice, MySQL e SQLite.
Questi ultimi strumenti, pensati per essere utilizzati anche su personal computer, funzionano secondo l’impostazione ereditata dai loro predecessori progettati per grandi calcolatori (come il database della Oracle o il DB2 della IBM): impostazione che prevede l’archiviazione dei dati secondo il principio che lo stesso dato debba essere scritto una ed una sola volta e le sue eventuali ricorrenze multiple siano gestite instaurando relazioni. Da qui il nome di database relazionali.
Per capirci: se vogliamo creare un database che contenga autori e titoli dei libri della nostra biblioteca, anziché creare una sola tabella nella quale saremmo costretti a ripetere, a fianco di ciascun titolo, il nome dell’autore di più titoli, creiamo una tabella per gli autori, in cui scriviamo una sola volta l’autore e una tabella per i titoli, prevedendo in ciascuna tabella una colonna in cui inserire un dato (un codice numerico) che colleghi autore e titolo.
Questo semplice esempio non ci fornisce una giusta idea della semplificazione che questo sistema introduce. Per una sensazione più reale pensiamo che al posto degli autori ci siano le migliaia di correntisti di una banca, con il loro indirizzo, dati anagrafici, ecc. e al posto dei titoli ci siano le operazioni bancarie che i correntisti compiono e che il database sia destinato a produrre gli estratti conto mensili.
Il linguaggio con cui si costruiscono e si gestiscono i database relazionali è stato denominato SQL, acronimo di Structured Query Language.
Il nome NoSQL (acronimo di Not Only SQL), con il quale non si nega la validità dell’impostazione relazionale (No sta per Not Only non per No), fu usato per la prima volta nel 1998 da certo Carlo Strozzi per identificare una base di dati relazionale non gestita da interfaccia SQL.
Attorno all’idea si creò poi un vero e proprio movimento che, oltre al non uso dell’interfaccia SQL, teorizza addirittura come, in certi casi, sia utile l’abbandono della stessa logica relazionale e, dal 2009, ad opera di certo Eric Evans, è con quel nome che si identifica questo movimento.
Siamo in presenza di una creatività tutta sviluppata nel mondo dell’open source, del software libero, ma l’humus di coltura deriva dal fatto che grandi aziende che collezionano moli di dati di vastità e ritmi di aggiornamento mai sperimentati prima (i così detti Big Data) e che sono interessate a gestire questi dati per profitto si sono accorte che database impostati secondo la logica relazionale non fanno per loro. Stiamo parlando di Google, di Amazon, di Facebook, ecc.
I database di queste strutture sono chiamati a memorizzare e gestire tutta una serie di dati eterogenei (abitudini e orientamenti di acquisto o di consultazione, idee, valori numerici, tag di classificazione, ecc.), presenti in misura variabile individuo per individuo, e il rigido inquadramento tabellare del database relazionale mal si presta a questa memorizzazione, per cui il linguaggio SQL non è utilizzabile per l’estrazione e l’elaborazione dei dati stessi.
Inoltre l’impianto relazionale ha il difetto di essere scalabile solo verticalmente, per cui, aumentando le dimensioni del database, occorre sostituire al vecchio server che lo conteneva un server più grande. Rinunciando all’impianto relazionale si può realizzare una scalabilità orizzontale, cioè, per ospitare la crescita del database si aggiunge semplicemente un nuovo server al vecchio.
Sono così state escogitate diverse e più funzionali modalità di creazione e gestione di database per quelle fattispecie e per ottenere questo non secondario vantaggio nella gestione dell’hardware.
La materia è in piena evoluzione e, accanto a soluzioni elaborate all’interno di aziende per i rispettivi fabbisogni (Amazon si è costruita un database NoSQL chiamato Dynamo, Facebook ha sviluppato al proprio interno un database NoSQL chiamato Cassandra, ecc.), abbiamo prodotti opensource alla portata anche del nostro piccolo personal computer, uno per tutti MongoDB.
All’indirizzo https://www.mongodb.com/download-center#atlas troviamo il software per Linux, Windows e OS X, con istruzioni per l’installazione, documentazione e tutorial. Chi usa Linux trova molto probabilmente tutto ciò che serve nel repository e può caricare con il Gestore applicazioni.
Fino a quando non avremo le esigenze che hanno i grandi operatori del web potremo comunque continuare a gestire i nostri database all’antica e rinunciare ad utilizzare il cannone per liberarci della mosca.
Peraltro nel mondo NoSQL non si sono ancora sviluppati software di interfaccia per semplificare la gestione del database, come è invece avvenuto nel mondo SQL (vedi il modulo Base di LibreOffice, phpMyAdmin per MySQL, Sqliteman per SQLite, ecc.), per cui non è così semplice muoversi in questo mondo.

Scrivi e pubblica i tuoi ebooks.

In questo blog, negli allegati agli articoli “Software libero per scrivere” del febbraio 2015 e “Software libero per ebook” del maggio 2015, entrambi archiviati nella categoria Software libero, illustravo come, utilizzando LibreOffice arricchito da alcune estensioni, sia possibile produrre documenti di contenuto complesso, anche nel formato .epub.
Le stesse indicazioni sono contenute nei Capitoli 1 e 6 del manuale Vittorio Albertoni – Computer tuttofare con programmi liberi e gratuiti, reperibile in formato PDF in tutte le librerie on-line e in formato cartaceo su Amazon.
A quei tempi mi riferivo alla versione 4 di LibreOffice che produceva in formato .epub con uno strumento, writer2epub, dal funzionamento non sempre di tutta affidabilità per documenti non di solo testo, spesso generando lavori che non superavano il test per la diffusione in libreria.
Con le più recenti versioni di LibreOffice, ormai giunte alla 6, e con le nuove estensioni resesi disponibili grazie agli sviluppi del pacchetto writer2latex si è raggiunta la perfezione, nel senso che diventa possibile esportare il documento, per complicato che sia dalla presenza di formule matematiche, tabelle, grafici, illustrazioni, pentagrammi musicali e formule chimiche in un perfetto formato .epub a prova di qualsiasi test.
Navigando in rete trovo vari dubbi e discussioni su come sia possibile produrre ebook complessi, cioè non di solo testo, nel formato .epub senza essere specialisti del linguaggio html, ricorrendo a tex (soprattutto se si è matematici) ed a convertitori (da pandoc a Calibre) con constatazione di quanto siano sempre deludenti i risultati.
Non trovo nessuno che indica la soluzione più semplice, almeno al momento attuale, e allora la richiamo io: LibreOffice arricchita da alcune estensioni.
Per non parlare della facilità con cui, una volta scritto il nostro ebook, possiamo pubblicarlo e metterlo in vendita senza spendere un euro attraverso le tante librerie online che troviamo sul web.
Nel tutorial allegato in formato PDF, liberamente scaricabile, stampabile e distribuibile, fornisco le necessarie indicazioni.

epub

Programmi Windows su Linux e viceversa

Praticamente da quando c’è Linux si è lavorato, nel mondo del software libero, per creare la possibilità di eseguire su Linux programmi scritti per il sistema operativo Windows. La prima versione sperimentale di un software che lo consente risale al 4 luglio 1993 ed è stata seguita da una serie di altre versioni per sviluppatori e smanettoni, non alla portata dei comuni mortali. Il primo serio e concreto risultato destinato al grande pubblico risale al 17 giugno 2008, data del rilascio della versione 1.0 di WINE. Il 20 aprile 2017 è stata rilasciata l’ultima versione, la 2.0.1. Grazie a WINE possiamo utilizzare su Linux moltissimi programmi scritti per Windows. Moltissimi e non tutti: in genere girano bene i programmi per architettura a 32 bit e quelli che possono funzionare senza interfacciarsi con altri.
Con il rilascio dell’Anniversary Update di Windows 10, che risale al 2 agosto 2016, Microsoft ha fatto qualche cosa di simile rendendo possibile, per computer equipaggiati Windows 10 upgradato alla versione Anniversary su architettura a 64 bit, utilizzare la shell del sistema operativo Linux su Windows. Il tutto ad uso di di gente che usa la shell, cioè di gente che lavora a riga di comando (sviluppatori, smanettoni, hacker, ecc.).
Da qualche giorno fa bella mostra di sé su Windows Store una App, che si chiama Ubuntu e che rende più agevole di prima attivare questa potenzialità. La comparsa nello Store, cui accedono anche principianti e dilettanti, ha fatto credere a qualcuno che siamo arrivati ad un WINE rovesciato, cioè a qualche cosa che consenta di far girare su Windows qualsiasi programma scritto per Linux.
Purtroppo non è così e, per fare chiarezza, oltre che per diffondere la conoscenza dei meriti di WINE, ho ritenuto di proporre l’allegato vademecum, liberamente scaricabile, stampabile e distribuibile.

wine_wsl

ffDiaporama S.O.S.

Ritengo che ffDiaporama sia il miglior software esistente per creare presentazioni di fotografie.
Partendo da fotografie, volendo anche da videoclip o mixando entrambe le cose, possiamo creare filmati di livello professionale, fruibili come tali o trasferibili su DVD, completi di commento audio e/o di accompagnamento musicale.
Si tratta di un software libero, disponibile per Linux e per Windows, che troviamo – chissà per quanto tempo ancora – all’indirizzo http://ffdiaporama.tuxfamily.org/?lang=it.
Dico chissà per quanto tempo ancora perché non c’è più nessuno che cura lo sviluppo di questo bellissimo software.
L’ultima versione stabile è la 2.1, rilasciata il 9 febbraio 2014. Esistono tracce di lavori di sviluppo per la versione 2.2 fino a luglio 2014 e poi il progetto è stato abbandonato, pare per subentrata impossibilità di continuare a dedicarvisi da parte del team leader, primo estensore del software.
Cose che succedono nel mondo del software libero.
Però è un vero peccato, perché, purtroppo, con le versioni più recenti dei sistemi operativi la 2.1 non funziona più bene o addirittura non si riesce nemmeno ad installare. Tanto è vero che ffDiaporama non si trova più nei repository delle distro di più recente rilascio.
Per l’esattezza, l’ultima versione stabile 2.1 di ffDiaporama funziona bene sulle versioni Ubuntu dalla 12.04 alla 14.04, con relative derivate, comprese le versioni Mint da 13 a 17 e KXStudio, sulle versioni 19 e 20 di Fedora, sulle versioni 12 e 13 di OpenSuse. Per Windows la 2.1 va bene da Vista a 8.1. Su Windows XP/SP3, per chi ancora l’avesse, occorre utilizzare la versione 1.6, del 2013, di ffDiaporama.
Sul sito all’indirizzo sopra citato si trovano comunque tutti i riferimenti del caso, con possibilità di scaricare il software.
Trattandosi di un  software veramente prezioso consiglio a tutti di impossessarsene fin che si è in tempo. Nulla vieta che anche chi usa sistemi operativi di ultima generazione possa tenersi in un angolino del disco fisso o su una chiavetta USB una versione di Ubuntu 14.04 su cui caricarlo per averlo a disposizione.
Con l’auspicio che qualche volonteroso riprenda a far lavorare il team di sviluppo in modo da poter continuare ad avere ffDiaporama sulle ultime versioni dei sistemi operativi.
Nell’allegato manualetto in formato PDF, liberamente scaricabile e distribuibile, illustro cosa sia possibile fare con ffDiaporama.

ffDiaporama