> Tous les forums > Forum Autres langages
 visualbasic et sonSujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
flamel
  Posté le 05/06/2019 @ 10:45 
Aller en bas de la page 
Petit astucien

Bonjour,

Comment faire parles l'ordi au cours d'un module;

Par exemple afficher un chiffre "1" et lui faire dire "un" avec " son_1.wav " préalablement enregistré ?

Merci pour votre aide.

Publicité
poussebois
 Posté le 05/06/2019 à 10:56 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

Bonjour ,

En t'inspirant de ça peut-être.

Pas testé ...

@ +

flamel
 Posté le 05/06/2019 à 12:12 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Merci poussebois,

Je n'obtiens pas de résultat, mais je vais continuer les essais.

Debrief
 Posté le 05/06/2019 à 13:28 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonjour,

Tu peux aussi essayer Call Application.Speech.Speak("Un") mais tu auras la synthèse vocale "Anna" en Anglais installée par défaut.

Apparemment la voix française "Hortense" existe sur Windows 8.

Sur Windows 7, pour installer une voix francophone il y a cette page mais je ne l'ai jamais essayée. Également commenté dans ce PDF.

Cordialement,
D.

Debrief
 Posté le 05/06/2019 à 13:41 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bien sûr si tu fais les manips d'installation d'une voix de synthèse francophone, la prudence veut que tu commences par créer un point de restauration avant toute manip ou installation pour pouvoir revenir à l'état initial si besoin.

flamel
 Posté le 05/06/2019 à 15:12 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Je cherche un exemple simple de lecture audio par VisualBasic 6, qui au cours d'un programme, dirait "un" pour le son_1.wav ou "deux" pour le son_2.wav (sons que j'ai enregistrés par ailleurs).

Merci pour votre aide.

flamel
 Posté le 05/06/2019 à 17:18 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Je précise mon projet.

Je souhaiterais que VisualBasic, en lisant et affichant successivement une suite de chiffres les annonce par le haut-parleur.

Les fichiers son(0).wav, son(1).wav, son(2).wav, etc ayant été enregistrés préalablement.

Merci.

Debrief
 Posté le 05/06/2019 à 18:22 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

flamel
 Posté le 06/06/2019 à 15:07 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Je n'y arrive pas.

J'ai même essayé :

Private Sub CommandButton2_Click()
My.Compuet.Audio.Play ("son_1.wav")
End

Je cherche toujours un petit code qui me servirait de modèle.

Je pense qu'il faut des Déclarations que j'ai ignorées.

Merci de m'en sortir.

Publicité
Debrief
 Posté le 06/06/2019 à 15:29 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Pourquoi insistes-tu sur ce truc My.Computer.Audio.Play qui semble compliqué à implémenter (avec fautes de frappes en prime) alors qu'un Astucien te donne une solution qui fonctionne ?


Declare Function sndPlaySound32 Lib "C:\WINDOWS\SYSTEM32\winmm.dll" Alias "sndPlaySoundA" _
(ByVal lpszSoundName As String, _
ByVal uFlags As Long) _
As Long

Private Sub CommandButton2_Click()
Call sndPlaySound32("C:\<répertoire où se trouvent tes fichiers son>\" & "son_1.wav", 0)
End Sub



Modifié par Debrief le 06/06/2019 16:32
flamel
 Posté le 06/06/2019 à 16:14 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Voici ce que j'obtiens :ntré

Quelle est mon erreur ?

:

Debrief
 Posté le 06/06/2019 à 16:35 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Désolé J'ai zappé le Sub du End Sub dans l'exemple. Corrigé dans mon précédent message.

flamel
 Posté le 06/06/2019 à 18:50 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Merci, mais je n'y arrive pas.

Pourrais-tu me redonner la totalité du code.

Je t'en remercie.

Debrief
 Posté le 06/06/2019 à 18:58 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Declare Function sndPlaySound32 Lib "C:\WINDOWS\SYSTEM32\winmm.dll" Alias "sndPlaySoundA" _
(ByVal lpszSoundName As String, _
ByVal uFlags As Long) _
As Long

Private Sub CommandButton2_Click()
Call sndPlaySound32("G:\MOSAIQUE\" & "son_1.wav", 0)
End Sub

Si tu ne t'en sors toujours pas, envoie ton fichier débarrassé des données personnelles et les fichiers son dans un ZIP à placer sur www.cjoint.com

flamel
 Posté le 06/06/2019 à 21:12 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Voici copies d'écran simultanées de mon fichier et de ton envoi.

Debrief
 Posté le 06/06/2019 à 21:23 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

ok, et... ?

flamel
 Posté le 07/06/2019 à 07:36 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Ça donne ça : (Je ne comprends rien)

Publicité
Debrief
 Posté le 07/06/2019 à 08:18 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

C'est parce que tu n'est pas dans un module standard mais dans le code d'une feuille ou autre et il ne peut pas y avoir de déclaration "Public" ce qui est implicitement le cas de la déclaration de la fonction sndPlaySound32.

Rajoute "Private" devant Declare:

Private Declare Function sndPlaySound32 Lib "C:\WINDOWS\SYSTEM32\winmm.dll" Alias "sndPlaySoundA" _
(ByVal lpszSoundName As String, _
ByVal uFlags As Long) _
As Long

flamel
 Posté le 07/06/2019 à 08:45 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Merci pour tes explications.

Je viens d'essayer un autre code... et ça marche !

Merci pour ta patience. Tu as été très gentil.

Voici le code :

Private Const SND_APPLICATION = &H80 ' look for application specific association
Private Const SND_ALIAS = &H10000 ' name is a WIN.INI [sounds] entry
Private Const SND_ALIAS_ID = &H110000 ' name is a WIN.INI [sounds] entry identifier
Private Const SND_ASYNC = &H1 ' play asynchronously
Private Const SND_FILENAME = &H20000 ' name is a file name
Private Const SND_LOOP = &H8 ' loop the sound until next sndPlaySound
Private Const SND_MEMORY = &H4 ' lpszSoundName points to a memory file
Private Const SND_NODEFAULT = &H2 ' silence not default, if sound not found
Private Const SND_NOSTOP = &H10 ' don't stop any currently playing sound
Private Const SND_NOWAIT = &H2000 ' don't wait if the driver is busy
Private Const SND_PURGE = &H40 ' purge non-static events for task
Private Const SND_RESOURCE = &H40004 ' name is a resource name or atom
Private Const SND_SYNC = &H0 ' play synchronously (default)
Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" _
(ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long


Private Sub Jouer_Click()
PlaySound "G:\MOSAIQUE\son_1.wav", ByVal 0&, SND_FILENAME Or SND_ASYNC
End Sub

Private Sub Arreter_Click()
PlaySound 0&, ByVal 0&, SND_FILENAME Or SND_ASYNC
End Sub

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Sujets relatifs
visualbasic
Probleme d'installation de VisualBasic 6.0 Pro
 > Tous les forums > Forum Autres langages