Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

les voix onecore (Paul et julie) utilisable avec Sapi 5 2.0

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

patricktoulon

XLDnaute Barbatruc
patricktoulon a soumis une nouvelle ressource:

les voix onecore (Paul et julie) utilisable avec Sapi 5 - comment utiliser les voix oncore Julie et Paul avec sapi 5 en vba


En savoir plus sur cette ressource...
 
Dernière édition:
Bonjour a tous
petite mise à jour entre parenthèses
j'ai pensé que parler un peu de l'object natif de vba etait quand même utile

Mais qu'est qu'il en est de l'object en natif vba (Application.Speech.Speak)​


✅ Changer dynamiquement la voix utilisée par Application.Speech.Speak


La voix utilisée est celle définie par la clé :
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Speech\Voices\DefaultTokenId

Vous pouvez la modifier via VBA :
Vous pouvez aussi sauvegarder et restaurer la voix initiale dynamiquement par vba

je vous montre un exemple complet ci dessous

🧠 de mon constat ,Les voix comme Julie (Mobile) respectent mieux les effets typographiques pour les pauses.
Hortense et Paul peuvent raccourcir ou ignorer certains effets selon la version Windows et le contexte. Pour des effets plus maîtrisés, utilisez des points de suspension ... combinés à des espaces intelligemment répartis.

Attention !!! on joue avec la modif de cle de registre soyez sur!!! des chaine de chemin des clés


je rappelle que cet exemple a été testé avec les voix française (Hortense , Julie et paul)
si vous avez d'autres voix dispos dans votre config il faudra alors les intégrer dans le code

VB:
'Tutoriel 7264 excel parle
auteur: patricktoulon
Option Explicit

Dim oldPrenom As String
Dim actualprenom As String
Const Lp As String = " ..." 'petite pause
Const bp As String = " ... " 'grande pause

Sub TestCompletVoix()
    ' Sauvegarder la voix actuelle
    oldPrenom = GetDefautVoice
  
    ' Changer et tester
    ChangerVoixParDefautSAPI "hortense"
    actualprenom = "Hortense"
    TestVoixParDefaut
  
    ChangerVoixParDefautSAPI "paul"
    actualprenom = "Paul"
   TestVoixParDefaut
  
    ChangerVoixParDefautSAPI "julie"
    actualprenom = "julie"
   TestVoixParDefaut
  
    ' Restaurer la voix initial
    If oldPrenom <> "" Then
         ChangerVoixParDefautSAPI oldPrenom
        Application.Speech.Speak " C'est moi" & Lp & "hortense" & bp & "apres Julie et paul ,me revoila de retour "
    End If
End Sub

'cette macro récupère le prénom de la voix par défaut
Function GetDefautVoice() As String
    Dim wsh As Object
    Set wsh = CreateObject("WScript.Shell")
    On Error Resume Next
    Dim chemin As String
    GetDefautVoice = ""
    chemin = LCase(wsh.RegRead("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Speech\Voices\DefaultTokenId"))
    Debug.Print chemin
    If InStr(chemin, "hortense", vbTextCompare) > 0 Then GetDefautVoice = "hortense": Exit Function
    If InStr(chemin, "paulm", vbTextCompare) > 0 Then GetDefautVoice = "paul": Exit Function
    If InStr(chemin, "julie", vbTextCompare) > 0 Then GetDefautVoice = "julie": Exit Function
    If Err Then
        MsgBox "Attention !! l'application n'a pas pu determiner la voix " & " cette exemple ne gere que les voix francaises (Hortense , Julie , Paul)"
    End If
    On Error GoTo 0
End Function



'cette macro change la voix par defaut
Sub ChangerVoixParDefautSAPI(nomVoix As String)
    Dim wsh As Object, cheminCle As String
  
    Set wsh = CreateObject("WScript.Shell")
  
    Select Case LCase(nomVoix)
        Case "hortense"
            cheminCle = "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Speech\Voices\Tokens\TTS_MS_FR-FR_HORTENSE_11.0"
        Case "paul"
            cheminCle = "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Speech\Voices\Tokens\MSTTS_V110_frFR_PaulM"
        Case "julie"
            cheminCle = "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Speech\Voices\Tokens\MSTTS_V110_frFR_JulieM"
        Case Else
            MsgBox "Voix inconnue : " & nomVoix, vbCritical
            Exit Sub
    End Select
  
    On Error Resume Next
    wsh.RegWrite "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Speech\Voices\DefaultTokenId", cheminCle, "REG_SZ"
    If Err Then
        MsgBox "l'application n'a pas pu changer la voix" & vbCrLf & " Vérifiez la syntaxe ou la chaine de la clé!!!"
    End If
    On Error GoTo 0
End Sub

'macro de test de voix
Sub TestVoixParDefaut()
    Application.Speech.Speak "Bonjour, c'est moi" & Lp & actualprenom & bp & " je suis la voix actuellement définie par défaut dans  Windows."
End Sub

Important : NB! cette exemple à été testé sur Windows 10 et excel 2013 en 32 bits
il est possible que le chemin de la clé soit différent pour d'autre version d'excel ou windows

je joins un mini tutoriel en pdf comme ça vous avez tout hors ligne
 

Pièces jointes

patricktoulon a mis à jour les voix onecore (Paul et julie) utilisable avec Sapi 5 avec une nouvelle entrée de mise à jour:

Ajout du module d'exploitation des voix pour SAPI 5 et Speech.Speak


Lire le reste de cette entrée de mise à jour...
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…