Riprendo il post http://codetailor.blogspot.com/2013/07/windows-81-store-apps-text-2-speech.html per segnalarvi che in Windows 8.1 RTM, allo stato attuale delle cose, il codice:
Using synth = New Windows.Media.SpeechSynthesis.SpeechSynthesizer
Dim synthStream As Windows.Media.SpeechSynthesis.SpeechSynthesisStream
synth.Voice = voice
Try
synthStream = Await synth.SynthesizeTextToStreamAsync(text)
Catch ex As Exception
synthStream = Nothing
End Try
If synthStream Is Nothing Then
Dim dialog = New MessageDialog("Error during Synthetize")
Await dialog.ShowAsync()
Else
MediaElement.SetSource(synthStream, synthStream.ContentType)
MediaElement.Play()
End If
End Using
End Sub
ottiene, in fase di esecuzione, un inesorabile quanto inspiegabile System.UnauthorizedAccessException:
Accesso non autorizzato a cosa?
Bene, navigando un pochino nella grande rete e chiedendo in giro ai miei informatori, ho scoperto (o, meglio, hanno scoperto e mi hanno riferito ) che si tratta di un un problema della RTM con il registro di sistema (non so se legato a questa funzionalità specifica o generale).
Una soluzione al problema specifico consiste nel rimuovere le chiavi di registro contenute nella chiave
HKEY_CURRENT_USER\Software\Microsoft\Speech
come mostrato in figura:
In questo modo sembrerebbe che le funzionalità del text to speech funzionino tranquillamente.
Ovviamente si tratta di toccare il registro di sistema, quindi vi raccomando cautela e calma per evitare di fare danni inenarrabili.
P.S.: Piccolo spazio pubblicità: se volete saperne di più su Text to Speech in Win8.1 vi aspetto alla mia sessione ai Community Days di Roma il 25 Settembre presso la sede Microsoft (http://www.communitydays.it/events/communitydays2013-roma/).
Commenti