Buongiorno a tutti.
Premessa: sto lavorando a un'applicazione in grado di "leggere ad alta voce" del testo (da un controllo di word processing e anche da un normale controllo RichTextBox). Per il momento l'applicazione è in Windows Forms, non perché voglia rimanere su questa piattaforma, ma perché sto sperimentando il Desktop Bridge per fare delle conversioni per lo Store di Microsoft. Windows Forms mi permette di tenere bassa la complessità del progetto e di concentrarmi solo sugli aspetti fondamentali. Successivamente rifarò il tutto in WPF e per la UWP.
Finora sono riuscito a fare tutto: a far parlare il PC, a regolare il volume e la velocità del parlato. Per questo compito ho utilizzato il namespace System.Speech.Synthesis e con queste istruzioni ho raccolto l'elenco delle voci installate sulla mia istanza di Windows 10:
Dim objvoices As ReadOnlyCollection(Of InstalledVoice) = ss.GetInstalledVoices(Globalization.CultureInfo.CurrentCulture)
Dim objvoiceInformation As VoiceInfo = objvoices(0).VoiceInfo
For Each tmpvoice As InstalledVoice In objvoices
objvoiceInformation = tmpvoice.VoiceInfo
cmbInstalled.Items.Add(objvoiceInformation.Name.ToString)
Next
Problema: attualmente l'unica voce installata (in italiano) è "Microsoft Elsa Desktop". Funziona discretamente, ma per chi sente è un po' troppo "voce di computer", cioè è veramente poco naturale. Per fare un confronto, Cortana è avanti anni luce rispetto a questa voce sintetizzata.
Ho provato a cercare qualcosa in rete e ho trovato qualcosa (https://msdn.microsoft.com/en-us/library/vs/alm/hh361572(v=office.14).aspx), ma i link di download non funzionano.
Su Google ho trovato un download funzionante con varie lingue, non solo quella inglese(https://www.microsoft.com/en-us/download/details.aspx?id=27226), ho provato a installare la voce italiana, ma non è successo niente, nel mio elenco ottengo sempre e solo Elsa. Tra l'altro, siccome vorrei distribuire il programma sullo Store, ho la necessità di fornire un modo semplice per installare le voci sui PC di destinazione o almeno di fornire le giuste indicazioni agli utenti in modo che sappiano dove andare a prenderle e come installarle, soprattutto nella propria lingua e/o in tutte le lingue desiderate.
In sostanza, come si può risolvere il problema? C'è qualche tecnica recente che mi potete consigliare? Per esempio sarebbe possibile "pilotare" Cortana in modo da utilizzare la sua voce per la lettura?
In seguito avrò la necessità di risolvere il problema del riconoscimento vocale (anche questo nella lingua scelta dall'utente) e forse la soluzione è sempre in Cortana, ma non riesco a trovare documentazione adeguata...
Grazie in anticipo e buona domenica!