Utilisation de SpeechAPI

Résolu
chrishack Messages postés 12 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 3 avril 2008 - 14 mars 2008 à 09:23
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 14 mars 2008 à 14:01
Je voudrais savoir comment utiliser la voix Scansoft Virginie Dri40 dans mon programme vb6 pour le faire parler.
J'ai déjà téléchargé la voix et même testée dans la console voix du panneau de config de xp. Mais je sais pas comment faire pour l'utiliser dans mon programme.

SVP...........

9 réponses

cs_loulou69 Messages postés 672 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 2 juin 2016 1
14 mars 2008 à 11:35
Bonjour

Si VB6 dans le fichier projet ajouter la référence

Reference=*\G{EEE78583-FE22-11D0-8BEF-0060081841DE}#1.0#0#C:\WINDOWS\system32\Xvoice.dll#Microsoft Direct Speech Synthesis

Private Sub
Form_Load()

Const SPF_ASYNC = 1
Const SPF_DEFAULT = 0
Const SPF_IS_FILENAME = 4
Const SPF_IS_NOT_XML = 16
Const SPF_IS_XML = 8
Const SPF_NLP_MASK = 64
Const SPF_NLP_SPEAK_PUNC = 64
Const SPF_PERSIST_XML = 32
Const SPF_PURGEBEFORESPEAK = 2
Const SPF_UNUSED_FLAGS = -128
Const SPF_VOICE_MASK = 127

Dim ISpeechVoice as Object
Set ISpeechVoice = CreateObject("SAPI.SpVoice")
Call ISpeechVoice.Speak(TextString, SPF_DEFAULT)

   ISpeechVoice.Speak("Je vous parle", SPF_DEFAULT) "You've got 20 new messages."
End Sub


 
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
14 mars 2008 à 09:51
Projet > Reference > Microsoft Speech Object Library > Ok

Private Sub Form_Load()
Dim oSam As New SpeechLib.SpVoice
   oSam.Speak "You've got 20 new messages."
End Sub<hr />, ----
By Renfield

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
chrishack Messages postés 12 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 3 avril 2008
14 mars 2008 à 11:08
il ya un costaud message d'erreur:
"type défini par l'utilisateur non défini"

je fais comment?
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
14 mars 2008 à 11:19
tu as bien ajouté le SAPI dans les references du projet ?

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
14 mars 2008 à 11:40
un truc pas clair, dans ton code, loulou69, c'est que tu passes par du Late Binding... (CreateObject)
unutile donc de jouer avec les references de ton projet (vu que tu joues avec un as Object et non un SpVoice)

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
chrishack Messages postés 12 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 3 avril 2008
14 mars 2008 à 11:50
au début, j'utilisais SAPI4 avec les voix L&H. j'utilisais l'objet directTexttoSpeech.
l'accent et la prononciation n'était pas bien.
j'ai donc téléchargé la voix de Virginie. Cependant je n'arrive pas à l'utiliser.
j'ai tout désintallé, SAPI4 et les voix L&H.
puis j'ai installé la voix de virginie. J'arrive à la tester dans le panneau de config et à l'utiliser avec le logiciel Dspeech.
mais je sais pas quel librairie il faut utiliser ou quel objet il faut appeler pour utiliser la voix de virginie.
Peut être qu'il faut SAPI5.
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
14 mars 2008 à 11:56
As tu essayé les codes que l'on t'a proposé ? fonctionnent tous deux...

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
chrishack Messages postés 12 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 3 avril 2008
14 mars 2008 à 13:10
Je vous remercie tous deux CA FONCTIONNE. ca fait un bon bout que je cherche sans trouver. je vous suis très reconnaissant.
1-pour la référence c'est WINDOWS\speech\Xvoice.dll et non
WINDOWS\system32\Xvoice.dll
cette dll est copiée dans ce répertoire quand on installe les voix L&H: lhttsfrf.exe (auto extracteur)

2- apparement c'est pas nécessaire parce que j'ai désintallé ces deux voix et ca fonctionne toujours. J'ai même enlevé la référence à cette bibliothèque et ca fonctionne toujours. Par contre quand j'ai voulu désintaller Microsoft Speech SDK 5.1  là j'ai eu un message d'erreur. (la méthode a échoué). je voulais savoir exactement quels étaient les fichiers nécessaires au fonctionnement de la voix.

3- donc si je comprend bien, il faut juste, pour faire parler mon appli vb avec virginie, il faut installer la SDK et la voix de virginie. (et peut être la définir comme voix par défaut dans le panneau de config)

4- seulement j'aimerais bien savoir comment utiliser les constantes que loulou69 a déclaré. pour notamment, faire une pause ou stopper la parole ou encore parler en arrière plan ou en avant plan càd en gardant ou en libérant l'exécution du programme.


Mais merci encore...
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
14 mars 2008 à 14:01
En passant par le code de loulou69 ton projet n'est pas reelement lié a aucune dll, rien ne sera ajouté lorsque tu feras le Setup de ton application.
De plus, l'utilisation du Late Binding fait que VB ne te propose pas les méthodes et propriétés qu'offrent la librairie Speech...


ajoutes donc bien la dll dans les references de ton projet, et utilise le genre de code que je t'ai filé (Early Binding).


Tu peux parcourir la librairie dans l'explorateur d'objets (F2) pour voir ce que tu peux faire. Tu y verras par exemple:


Sub Pause()
   Membre de SpeechLib.SpVoice
   Pauses the voices rendering.


Produit microsoft induit documentation sur MSDN. Je t'invite a aller consulter cette Doc, concernant les pauses et tout ce que tu souhaites faire.







Renfield





Admin CodeS-SourceS

- MVP Visual Basic
0
Rejoignez-nous