lunedì 23 settembre 2013

Windows 8.1 RTM: Text to Speech e “Access Denied”

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:

Private Async Sub PlayText(text As String, voice As VoiceInformation)
    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:

image

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 Smile) 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:

image
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/).

 

Nessun commento: