Sintesi vocale

Anonimo
2018-06-20T11:25:22+00:00

Vorrei sapere come è possibile utilizzare il sistema di lettura di Windows per fargli leggere un testo.

Sto creando un gioco in Excel e vorrei che i nomi degli utenti e qualche frase qua e là venga letta dal sintetizzatore vocale (senza creare file audio- non posso scrivere tutti i nomi esistenti al mondo compresi soprannomi).

Quindi riassumendo chiedo; quale codice attraverso VBA dovrei utilizzare per far leggere una cella al pc?

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2018-06-20T11:39:03+00:00

Ciao #F,

Vorrei sapere come è possibile utilizzare il sistema di lettura di Windows per fargli leggere un testo.

Sto creando un gioco in Excel e vorrei che i nomi degli utenti e qualche frase qua e là venga letta dal sintetizzatore vocale (senza creare file audio- non posso scrivere tutti i nomi esistenti al mondo compresi soprannomi).

Quindi riassumendo chiedo; quale codice attraverso VBA dovrei utilizzare per far leggere una cella al pc?

'=========>>

Option Explicit

'--------->>

Public Sub Demo()

    With Application.Speech

        .Speak (Application.UserName)  '\ Utente Excel

        .Speak (Environ("username"))     '\ Utente Windows

        .Speak ActiveCell.Text                '\ Nome\testo in cella attiva

    End With

End Sub

'<<=========

===

Regards,

Norman

La risposta è stata utile?

4 persone hanno trovato utile questa risposta.
0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2018-07-12T18:43:30+00:00

Ciao #F,

Si può anche scegliere la voce (Elsa o Cosimo)

e la velocità ed il tono????

Sarebbe utile saper gestire queste caratteristiche.

Dopo aver installato le due voci Cosimo e Elsa, prova qualcosa del genere:

'=========>>

Option Explicit

'--------->>

Public Sub AUDIO()

    Call SpeakIt(Sheets("NOME").Range("J11").Text)

End Sub

'--------->>

Public Function SpeakIt(ByVal sText As String)

    Dim oSpeech As Object

    Set oSpeech = CreateObject("SAPI.SpVoice")

    With oSpeech

        Set .Voice = .GetVoices.Item(1)  '\ Cosimo

        '\ Oppure:

'          Set .Voice = .GetVoices.Item(2) '\  Elsa

        .Rate = 1'\ Aumentare valore per aumentare la velocità

         SpeakIt = .Speak("<pitch middle = '-10'/>" & sText, 1) '\ Tono basso

         '\ Oppure:

'         SpeakIt = .Speak("<pitch middle = '+10'/>" & sText, 1) '\ Tono alto

          .WaitUntilDone 10000

    End With

    Set oSpeech = Nothing

End Function

'<<=========

===

Regards,

Norman

La risposta è stata utile?

0 commenti Nessun commento

6 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2018-07-12T16:18:54+00:00

    Si può anche scegliere la voce (Elsa o Cosimo) e la velocità ed il tono????

    Sarebbe utile saper gestire queste caratteristiche.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2018-06-21T11:34:14+00:00

    Ciao #F,

    GRAZIE , GRAZIE E ANCORA GRAZIE !!!

    Spero non ti dispiaccia ma l'ho adattata alla mia stretta esigenza.

    Public Sub AUDIO()

        With Application.Speech

            .Speak Sheets("NOME").Range("J11").Text

        End With

    End Sub

    Grazie ancora!

    Mi fa piacere che il codice ti sia stato utile.

    Per chiudere questo thread, vorrei chiederti gentilmente di controllare l'opzione Contrassegna come risposta dal menu a discesa - Strumenti avanzati, sotto la rispettiva risposta.

    PS:

    Potresti semplificare il tuo codice così:

    '=========>>

    Public Sub AUDIO()

      Application.Speech.Speak Sheets("NOME").Range("J11").Text

    End Sub

    '<<=========

    ===

    Regards,

    Norman 

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2018-06-20T15:37:43+00:00

    GRAZIE , GRAZIE E ANCORA GRAZIE !!!

    Spero non ti dispiaccia ma l'ho adattata alla mia stretta esigenza.

    Public Sub AUDIO()

        With Application.Speech

            .Speak Sheets("NOME").Range("J11").Text

        End With

    End Sub

    Grazie ancora!

    La risposta è stata utile?

    0 commenti Nessun commento