Bon, je n'ai pas encore trouvé LA solution pour utiliser les voix française...
Problème de droit pour copier de C:\Windows\System32\Speech\ vers C:\Windows\SysWOW64
Et perte du paramétrage (normal) d'un boot à l'autre...
Tutorial: Using 32 bit SAPI 5 voices in 64 bit Windows 7
If you are running a 64 bit operating system such as Windows 7 or Vista 64 bit you may have noticed that many of the text to speech voices out there are 32 bit. What that means is that if you look in your 64 bit Text to Speech control panel none of the 32 bit voices can be selected as a default voice. In consequence, if you are using an application like Qwitter in SAPI 5 mode then Anna will be the only voice you can use with it. Fear not, because there is a work around for this problem. The following steps will allow you to choose any 32 bit voice as your Windows voice in a 64 bit operating system.
1. Bring up a run dialog by pressing Windows key + R.
2. Type in the following command into the run dialog box and press enter when done.
C:\Windows\SysWOW64\Speech\SpeechUX\sapi.cpl
3. If everything goes well, at this point you will be presented with a text to speech control panel that will seem familiar to most 32 bit Windows users.
4. If you tab to the Voice Selection combo box, and if you have any 32 bit text to speech voices installed, they should be listed in this combo box.
5. Simply select the text to speech voice you wish to set as your default system voice, along with any other changes you wish to make, and press the OK button when done.
That's it. Now when you start an application like Qwitter the voice you chose should be the one speaking if using Qwitter in SAPI 5 mode. There is one drawback to this. The drawback is, once you restart your computer, Windows does not remember the settings you changed. But if 32 bit voices are a must, you can just repeat the steps as explained above.
L'option de contrôle Panel TTS voix répertorie seulement dûment enregistrés
Voix de 64 bits. Anna de Microsoft est la voix de seulement 64 bits qui est
fourni avec les systèmes d'exploitation. Kate de Loquendo, qui est
probablement la plus haute qualité de voix TTS qui est actuellement disponible,
ont les versions de 32 et 64 bits. Kate est difficile à obtenir dans les petites
quantités et coûte très cher. La prochaine meilleure alternative est
croit que la Bruyère de voix Acapela-Group. Ce n'est que
actuellement disponible en version 32 bits pour le fonctionnement de Windows
systèmes. (64 bit Heather est disponible pour le léopard des neiges d'Apple).
Il y a un correctif qui permet l'affichage de toutes les voix installés et
la sélection de tout comme la voix par défaut du système. C'est à
exécuter :
C:\Windows\SysWOW64\Speech\SpeechUX\sapi.Cpl
plutôt que d'utiliser la sélection du contrôle Panel TTS voix.
Ce correctif fonctionne correctement à l'exception d'un problème regrettable.
La déclaration de Visual C/C++
HR = m_cpVoice.CoCreateInstance (CLSID_SpVoice) ;
correctement définit un objet de voix, quelle que soit la valeur par défaut
système de voix.
L'instruction Visual Basic
Voix = SpeechLib.SpVoice nouveau
entraîne un blocage du système ou un programme avorter si la valeur par défaut est de voix
été définie à autre chose qu'un 64 bits correctement inscrit voix
comme Anna. « Try Catch » n'est pas intercepter cette erreur. Notez que
Définir la voix = CreateObject ("SAPI.SpVoice ») échoue également avec la même
erreur.
Il n'y a pas de solution facile à ce problème. Elle peut, toutefois, être inférieure
de préoccupation plus 64 bits TTS voix deviennent disponibles.
Tout d'abord, Microsoft devrait certainement changer la sélection contrôle case TTS
pour utiliser le même code que « C:\Windows\SysWOW64\Speech\SpeechUX\sapi.cpl ».
Deuxièmement, Microsoft devrait corriger le problème avec la façon dont
L'instruction Visual Basic « voix = New SpeechLib.SpVoice » fonctions.
Il n'y a aucune raison pour que cela ne peut avoir la même capacité que son
Homologue de C/C++ visuel.
Troisièmement, les programmes d'application qui utilisent le TTS peuvent être écrite complètement
dans Visual C/C++, la création de l'objet de la voix pourrait être dans un
Visual c contrôle ActiveX ou un wrapper peut être utilisé pour l'accès
CoCreateInstance.
Quatrièmement, il est possible de modifier les entrées de registre de voix tellement
que le bit 32 voix travaille avec la liste de contrôle Panel TTS. Il est
facile de modifier le Registre afin que les voix sont affichées. Il n'y
est, cependant, un message d'erreur conforme au sujet d'un échec de l'audio
sortie. Les entrées de Registre TTS sont généralement bien documentées.
Malheureusement, il y a des entrées multiples pour lesquelles il n'y est pas publiquement
documentation disponible. Ceci ainsi que le manque d'assistance technique de
les vendeurs tiers des voix TTS ou Microsoft rend
Impossible de résoudre l'entrée de Registre à cette époque.
Les problèmes de registre ne sont pas un problème lorsque vous utilisez
« C:\Windows\SysWOW64\Speech\SpeechUX\sapi.cpl ».
Cinquième, une raison importante pour être en mesure de changer le système
par défaut les voix TTS est de fournir un choix alternatif de la voix pour les programmes
comme MapPoint qui sélectionner automatiquement la voix par défaut du système.
Il n'y a pas d'autre option utilisateur permettant de modifier la voix de MapPoint.
Il y a une clé de Registre MapPoint
HKEY_CURRENT_USER\Software\Microsoft\MapPoint\17.0\USA\PreferredTTSEngine
qui ressemble comme si la voix TTS peut être sélectionnée. Malheureusement, il n'y
n'y a aucun documentation pour cette entrée et changer le nom de voix ne
Substituez la voix par défaut du système.
Sixièmement, les entrées de Registre pourraient être par programmation modifiées ainsi
que la valeur par défaut voix répond aux exigences de
« Voix = New SpeechLib.SpVoice « seulement pour cette un déclaration. Le
entrées originales sont alors remplacées avant l'utilisation de la
Objet de la voix.
Il est loin d'être parfaite, mais nous avons choisi cette approche comme la
meilleur compromis actuel pour notre environnement de programmation. Un
limitation regrettable est que Windows 7 64 bits et Windows Server
2008 R2 utilisez différents chemins de répertoire Registre TTS et les valeurs de
DefaultTokenId.
Soit dit en passant, un outil précieux pour travailler avec le registre est
Atelier de Registre pour X 64. Il peut le faire copier/coller en plus de
plusieurs autres opérations de Registre utile.
L'extrait de code suivant illustre la méthode.
« Créé à l'intérieur de Form_Load et libéré à l'intérieur de Form_Unload.
Dim WithEvents voix : SpeechLib.SpVoice
Dim modifyRegistryFlag As Boolean = False
« Extrait de code de Form_Load
Dim keyName, userRoot, sous-clés, defaultString, anciennechaîne As String
Dim OSName, OSPlatform, OSVersion As String
OSName = Trim(My.Computer.Info.OSFullName.ToString)
OSPlatform = Trim(My.Computer.Info.OSPlatform.ToString)
OSVersion = Trim(My.Computer.Info.OSVersion.ToString)
Si InStr (1, OSVersion, « 6.1 ») > = 1 Then
modifyRegistryFlag = True
Si InStr (1, OSName, « Microsoft Windows 7 ») > = 1 Then
« Chemin de répertoire du Registre pour Windows 7 64 bits
userRoot = « HKEY_CURRENT_USER »
sous-clés = « Software\Microsoft\Speech\Voices »
' Par défaut DefaultTokenId chaîne pour Windows 7 64 bits
defaultString = « HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\MS-Anna-1033-20-DSK »
Autre
Si InStr (1, OSName, « Microsoft Windows Server 2008 R2 ») > = 1 Then
« Chemin de répertoire du Registre pour Server 2008 R2
userRoot = « HKEY_USERS »
sous-clés = ».DEFAULT\Software\Microsoft\Speech\Voices »
' Par défaut DefaultTokenId chaîne pour Server 2008 R2
defaultString = « HKEY_CURRENT_USER\SOFTWARE\Microsoft\Speech\Voices\Tokens\MS-Anna-1033-20-DSK »
Fin si
Fin si
Fin si
keyName = userRoot & « \ » de sous-clés
Si modifyRegistryFlag = True Then
' Récupérer le nom de défaut voix
anciennechaîne = « »
Essayez
anciennechaîne = Registry.GetValue (keyName, « DefaultTokenId », « -1 »)
Catch ex comme Exception
MessageBox.Show (ex.Message.ToString, « TTS erreur : Get actuelle par défaut voix », MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1)
Exit Sub
End Try
Si anciennechaîne = « -1 » puis
MessageBox.Show (« Ne DefaultTokenId », « TTS erreur : Get actuelle par défaut voix », MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1)
Exit Sub
Fin si
' Nom Anna si elle n'est pas la valeur par défaut définie par défaut
Si anciennechaîne < > defaultString puis
« MessageBox.Show (anciennechaîne & vbCrLf & defaultString)
Essayez
Registry.SetValue (keyName, « DefaultTokenId », defaultString, RegistryValueKind.String)
Catch ex comme Exception
MessageBox.Show (ex.Message, « Voix TTS erreur : jeu par défaut », MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1)
Exit Sub
End Try
Fin si
Fin si
' Crée l'objet de la voix
Essayez
Voix = SpeechLib.SpVoice nouveau
Catch err As Exception
MessageBox.Show (« Erreur création SpeechLib voix » & vbNewLine & err.Message « Erreur TTS », MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1)
Exit Sub
End Try
Si modifyRegistryFlag = True Then
« Restaurer l'original par défaut voix
Si anciennechaîne < > defaultString puis
Essayez
Registry.SetValue (keyName, « DefaultTokenId », anciennechaîne, RegistryValueKind.String)
Catch ex comme Exception
MessageBox.Show (ex.Message, « Voix TTS erreur : restauration par défaut », MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1)
Exit Sub
End Try
Fin si
Fin si