Les cookies assurent le bon fonctionnement de notre site. En utilisant ce dernier, vous acceptez aussi l'utilisation des cookies. En savoir plus?
Titre : Utilisation de ''SAPI'' pour faire parler son ordinateur
Windows
Note:
9/10

Total:
1

Auteur : GallyHC (Administrateur)
Catégorie : API
Niveau : Débutant
Date de création : 05/11/2014 (Modifié le 23/05/2020)
Vu / Téléchargé

:

0 / 0

Version de PureBasic : 4.50
Compatibilité : Inconnu


Commentaire du source :

Bonjour,

Voila comment faire pour pouvoir faire parler son ordinateur en français ou en anglais. Tout d'abord il faut télécharger le voix française "virginie" pour l'avoir en français à l'adresse "http://www.koakdesign.info/pbfrance/upload/sapi_frenchvirginie.exe"

Il faut sélectionner la voix désirer (par défaut c'est en anglais). Pour la voix française, il faut executer :

pour x32 > "C:WindowsSystem32SpeechSpeechUXsapi.cpl"
pour x64 > "C:WindowsSysWOW64SpeechSpeechUXsapi.cpl"

et à "sélection de la voix" sélectionner "ScanSoft Virgine_Dri40_16kHz".

Enfin pour que le programme parle avec le texte écrit il faut modifier la ligne :

; ; METTRE LE TEXTE A DIRE. ; SAPISpeechtext("Ceci est un test") ; ; METTRE LE TEXTE A DIRE. ;

et mettre ce que l'on désire à la place de "Ceci est un test".
Conclusion du source :

En x64, la voix par défaut est l'anglais (ceci est un Bug).

Bon amusement a tous maintenant ^^.
Options du Compilateur :

Off Activer le support Unicode
Off Activer la gestion des Threads
Off Activer le numéro de ligne pour "OnError"
Off Activer le support des thèmes visuels (Windows XP et suivants)
Off Utiliser les droits administrateurs (Windows Vista et suivants)
Off

Utiliser aucun droit particulier (Windows Vista et suivants)

On Le source supporte l'Unicode et le non Unicode?
On Tous les CPU
Off CPU dynamique
Off CPU avec MMX
Off CPU avec 3DNOW
Off CPU avec SSE
Off CPU avec SSE2
Type de programme final :

Fichier Exe Processeur x32

Executable :
Les 5 derniers commentaires :

Nom: Ar-S
Note:
9/10
Membre non connecter
Trés bon,

Petite modif de la routine pour choisir la vitesse d'élocution de la voix.

Procedure SAPISpeechtext(stext.s, speed = 0) ; Define.i itemp, bstrtext Define text1.s Define *buffer1, *buffer2, *buffer3 Define clsid.CLSID, refiid.CLSID Define speechvoice.ISpeechVoice If isSAPIInstalled() = #True AND stext <> #NULL$ text1 = "SAPI.SpVoice" *buffer1 = AllocateMemory((Len(text1) + 1) * 2) PokeS(*buffer1, text1, -1, #PB_Unicode) text1 = "{269316D8-57BD-11D2-9EEE-00C04F797396}" *buffer2 = AllocateMemory((Len(text1) + 1) * 2) PokeS(*buffer2, text1, -1, #PB_Unicode) If CLSIDFromProgID_(*buffer1, @Clsid.clsid) = #S_OK If CLSIDFromString_(*buffer2, @Refiid.clsid) = #S_OK CoInitialize_(0) If CoCreateInstance_(clsid, #Null, #CLSCTX_INPROC_SERVER, refiid, @speechvoice) = #S_OK *buffer3 = AllocateMemory((Len(stext) + 1) * 2) PokeS(*buffer3, stext, -1, #PB_Unicode) itemp = #SVSFDefault bstrtext = SysAllocString_(*buffer3) ; ; EXEMPLE DE QUELQUES PARAMATRES. ; speechvoiceput_Rate(speed) speechvoiceput_Volume(100) ; ; EXEMPLE DE QUELQUES PARAMATRES. ; speechvoiceSpeak(bstrtext, 0, @itemp) SysFreeString_(bstrtext) FreeMemory(*buffer3) speechvoiceRelease() EndIf CoUninitialize_() EndIf EndIf FreeMemory(*buffer1) FreeMemory(*buffer2) EndIf EndProcedure


Quelques exemples sur l'utilisation de "SAPISpeechtext()" :

SAPISpeechtext("Je parle nomalement", 0) SAPISpeechtext("Je parle vite", 5) SAPISpeechtext("Je parle doucement", -5)
Nom: Ar-S

Membre non connecter
note : Fonctionne en PB 5.30 aussi
Nom: GallyHC

Membre non connecter
Bonjour,

Merci pour cette petite modification qui peut être utile à beaucoup de monde.

Cordialement,
GallyHC
Nom: GallyHC

Membre non connecter
Bonjour,

Modification du code-source avec la modification de Ar-s.

Cordialement,
GallyHC