Aide sur SPO256_mp3

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Aide sur SPO256_mp3

Message par gansta93 »

Bonjour,

J'ai un problème avec cette dll que je trouve pourtant si bien!
Dès que je veux lui faire dire quelque chose, j'ai la désagréable surprise de m'apercevoire que le son est tout bas!
Pourtant, j'ai testé l'horloge parlante de Dobro, elle marche très bien!
Voici le code que j'ai fait, Dobro ou un autre ou des autres, aidez-moi svp!

Code : Tout sélectionner

phrase.s="co,,m,en, ,sa, ,va,,-,."
If OpenLibrary(0, "SPO256_mp3.dll") 
    panoramique=127:; le son sera sur les 2 haut-parleurs
    Frequence=20000
CallFunction(0, "spo256", phrase.s,Frequence,panoramique)
CloseLibrary(0)
Else
MessageRequester("Erreure","Ne peut ouvrire la DLL.",#mb_ok|#mb_iconstop)
EndIf
End
J'aimerais bien y arriver... aidez-moi svp.
Pourtant, j'ai bien suivi l'exemple j'en ai même pris des bouts.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

petite question idiote mais , a tu verifier le nivo generale de windows ??

tu double clique sur le petit haut parleur en bas a droite sur la barre des tache

si le petit haut parleur n'est pas accessible dans la barre des taches
tu fait
"demarrer"
"panneau de config"
"sons et peripherique audio"
et tu coche
"placer l'icone de volume dans la barre des taches"


pis tu verifie le nivo "sons wav" et "control volume"

sinon pour tester tu fait lire un Mp3 avec winamp
pour voir si le son est fort ou pas !!


en fait il n'y a aucune raison de ne pas avoir les sons en volume normale !!
je les ai enregistrer normalement !!
je vais verifier par acquit de conscience :)



bon ! je viens de telecharger le fichier sur mon site
j'ai installé la chose
j'ai essayé
le son a un volume parfait !!
donc je presume que ça provien d'un reglage sur ton micro
le volume des "wav" doit etre trop bas !!

toutes les cartes sons on des volume séparé pour les "wave" ,"CD", ect ..
et un volume "general"
pour tester met tout tes volume a fond ... :?

tiens moi au courrant :)


ps je vien de voir pour ton exemple il faut ecrire
phrase.s="k,o,m,en,s,a,v,v,a, ,-,."
pour certains son il est necessaire de doublé le son; ex : ici le son "v"
pour qu'il se distingue il vaut mieu en mettre 2 !!! :-)
valable surtout sur les frequence basse !!




petit rappel , et phrase en exemple
; *********** PHRASE EN EXEMPLE ********************************
; il y a 120 chevaux sous le capo
;phrasedob.s="il,ia,s,an,20,ch,eu,v,o,s,ou,l,eu,k,a,p,o, ,-,."

; le poulailler est plein de poules
;phrasedob.s="l,eu,p,oul,aye,ier,ai,pl,in,d,eu,p,oul,e, ,-,."

; cherche bien et tu trouvera
;phrasedob.s="ch,ere,ch,e,b,ien,et,t,u,tr,ou,v,eu,r,a, ,-,."

;la fille du bateau est tres jolie (remarque l'emploi de ate+t)
;phrasedob.s="l,a,f,iye,d,u,b,ate,t,o,ai,tr,et,j,ol,i, ,-,."

; tracteur
;phrasedob.s="tr,ak,k,t,eur, ,-,."

; curé de camaret(remarque l'emploi de ur+r)
;phrasedob.s="l,eu,k,ur,r,et,d,eu,k,ame,ar,r,et, ,-,."

; original
;phrasedob.s="or,r,i,j,ine,n,al,l, ,-,."

; ajout de quelque humeurs
;phrasedob.s="humhum,al,or,s,a,ai,x2,pl,i,k,t,ou, , ,-,."
; phrasedob.s="hihi,ar,r,aite,j,eu,kr,in,l,et,ch,ate,ouye,hihi,-,."
; phrasedob.s="grr,s,eu,l,a,n,eu,m,et,t,one,p,a, , ,-,."


; **************** ASTUCE *****************
;le fait de laisser un ou plusieurs espaces a la fin d'un mot permet au dernier phoneme de mieux s'exprimer
;1 -la a de fin ne s'entend presque pas !!
;phrasedob.s="l,eu,p,eu,t,i,ch,a,-,."
;2 - maintenant on l'entend mieux !!
;phrasedob.s="l,eu,p,eu,t,i,ch,a, , ,-,."
; le fait d'ecrire plusieurs virgules sans espace repete le dernier phoneme
; ici on entend 3 fois le i !!
; phrasedob.s="i,,, ,-."

; *****************************************************************************
; PETITE NOUVEAUTE !!
; lorsque vous ecrivez par exemple le son "ouye" vous pouvez l'ecrire "ouille"
; c'est comme ça pour tous les phonemes le son (s)au(c)i(ss)e tout les sons "sseu"
; entre parentheses sont vallables
; ********************************************************************************


; le point a la fin de la ligne determine l'arret de la phrase
; le signe "-" arrete la phrase et libere les sons de la ram !!
; indispensable a la fin de liberer la ram avec le "-,."
; sinon plantage !

; Frequence=modifie la Frequence de reproduction du son (grave ou aigue)
; frequence doit etre compris entre 18000 et 44100
; si frequence fait plus de 18000 c'est automatiquement bloque a 18000
; si frequence fait moins de 44100 c'est automatiquement bloque a 44100
; voix de stroumpf = 44000 !

; panoramique=127 le son est au centre de la stereo
; panoramique=0 le son est a droite
; panoramique=255 le son est a gauche
; ; panoramique peut avoir une valeur qui s'etend de 0 a 255
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Message par gansta93 »

Salut,

Tout mes volumes sont à fond!
En fait je croi que le son n'est pas le problème.
Le truc c'est que oui le son est assez bon, mais j'ai l'impression que tout est sacadé!
On dirait presque qu'il parle à l'envers.
Comme je te disais, j'ai eu ton horloge parlante, et elle marche très bien. Je ne comprand pas pourquoi mon code ne marche pas.
J'ai mis le code d'exemple, et ça me donne le même résultat.
Peut-être quelque chose gène-t-il lors de la compilation... je fais juste F5, je n'ai pas enlevé le debugger, je n'ai rien mis en ce qui concerne les tèmes XP ou la compatibilité NT, ni rien de ce genre dans les options de compilation.
En gros, tout est par défaux.
Si tu as essayé mon code et que tu comprands bien tout sans modifier, il faut que tu me dise si tu as modifié quelque chose au niveau de PB.

Merci.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

ton code est

Code : Tout sélectionner

phrase.s="co,,m,en, ,sa, ,va,,-,." 
il faut mettre

Code : Tout sélectionner

  phrase.s="k,o,m,en,s,a,v,v,a, ,-,." 

le synthe ne comprend pas les "sa" et les "va"
il comprend "s,a" et "v,a"

pour la saccade c'est normale !!
car le principe du SPO 256 c'est un synthetiseur vocale des année 70 !!
avec des allophones qui mis bout a bout forme une phrase !
donc la saccade est du au fait que des brides de mot (allophone) sont dit les uns apres les autres !!


dans l'holorge parlante les mot "heure" "il est" "trois" ect..
sont enregisré en une seule fois , d'ou la qualité des phrases prononcé !!

l'avantage des allophones est qu'avec une poigné de sons on reconstitue
des mots inconu !!

alors que d'enregistrer tout les mots d'un dictionnaire
prendrai beaucoup plus de place en memoire et sur le disk dur
mais c'est sur la diction serai parfaite !!! :)

en fait je pense un jour m'y remettre et enregistrer en plus des nouveau allophone plus long , cela permetrai de couper beaucoup de mot usuel en
2 parties par exemple : "bon,jour"
mais ça va augmenter serieusement la base de donné des sons enregistre,la memoire prise, mais la qualité serai au rendez-vous !!






:D
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Message par gansta93 »

Donc il est normal que la phrase ne soit pas compréhensible.
Mais donc il comprand heures et minutes?
Mon nouveau code est maintenant... enfin juste la phrase:

Code : Tout sélectionner

phrase.s="k,o,m,en,s,a,v,v,a, ,-,."
Donc il ne la dira jamais correctemant et de manière compréhensible?
OK... je comprand si c'est ça... donc je me cassais la tête pour rien :-) OK. Mais en tout cas je trouve l'horloge vraiment bien et si je pouvais en avoir les sources, cela m'éclairerais peut-être... mais bon... c'est toi qui voi :-)
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Message par gansta93 »

Je sais que je suis lourd, j'ai essayé avec 15 heures 28, je ne l'ai pas écri comme ça, mais effectivemant, c'est le son qui est très bas alors que l'horloge parlante je comprand bien tout, et le volume est bien!
j'ai bien testé, plusieures foies, et oui oui, c'est le son alors que touts les volumes sont au maximum!
Là, je ne comprand vraiment pas.
Que puis-je faire?
Effectivemant, le code de l'horloge pourait m'aider.
Je vien de réessayer, et le volume est effectivemant très bas.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

je remontrai le volumes des sons de la base de donnee pour le synthe vocale



la principale difference entre l'horloge parlante et le synthe vocale
pour les sons c'est

pour le synthe vocale
on va lui faire dire : phrase.s="il,ai,tr,oi,z,eur, ,-,."

il y aura 6 sons joué !!

avec l'horloge parlante j'ai enregistré "il est " "trois heure"
et eventuelement "15 minute" ou "30 minute"

bref dans le pire des cas 3 sons son joué , d'ou la difference de saccade !!


verification faite , il est vrai que je pourrai monter le volume de mes sons dans le synthe vocale
je m'y met !!! :)

pour mes sources , désolé j'ai pas l'intention de les donner pour l'instant

mais franchement une horloge vocale c'est pas complique a faire

une boucle permanente
avec detection d'un evenement utilise "Event = WindowEvent() "
suivi d'un "delay(2)

(faut pas utiliser Event = waitWindowEvent() )


et la tu recupere l'heure qu'il est

puis une serie de test
if heure ="13:00"
play son "il est treize heure" <--- bien sur faut avoir le son dans le listing
avec "Resultat = CatchSound(#Son, AdresseMemoire) "

et voila simple non ?

:)
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Message par gansta93 »

Oué...
mais c'est vrai que le son est très bas...
j'suis obligé de mettre le son à fond... la sacade c'est à la limite pas trop un problème.
Je dois être stupide mais... comment on peut ajouter des mots dans la base de donnée et savoir où ils sont en mémoire?
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

je parle de base de donnee , en fait seulement pour le synthe vocale !!

en realite il sagit d'un ensemble de sons dans des fichier *.wav séparé

par exemple
tu enregistre un son ou tu dit "il est"
un autre ou tu dit "3 heure"

tu les incorpore dans le listing (t'es pas oblige puis tu peut faire Resultat = LoadSound(#Son, NomFichier$) avec la commande (Resultat = CatchSound(#Son, AdresseMemoire) " )
mais bon c'est le seul moyen pour proteger tes sons!


ensuite a un moment donne ( a 3 heure )

tu fait

Code : Tout sélectionner

 PlaySound(#Son_il est , 0) 
tu attend un peut

Code : Tout sélectionner

 (delay(x)) 
puis tu fait jouer le 2eme sons

Code : Tout sélectionner

PlaySound(#Son_3heure , 0) 
et voila ! tres simple non ?
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Message par gansta93 »

D'accord... alors si c'est moi qui parle ben je prand un modulateur de voies comme dans les filmes :-)
Mais... justemant je ne le comprand pas bien le catchSound... c'est quand on en a un en data?
Justemant c'est le flou dans mon autre poste... si tu peux m'expliquer à moi qui comprand rien là... ça serait sympa :-)

Merci :-)
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

Code : Tout sélectionner



DataSection
IncludePath "D:\purebasic\dobro\sources_purebasic\dobro_creation\spo256\nouveau sons spo\" 
a: ; ici commencera le son !!!
IncludeBinary "a.wav"; le son est concretement incorporé dans le programme  , comme par magie !!
EndDataSection



 a =  CatchSound(1, ?a) ;charge le son a l'emplacement memoire qui ce trouve apres l'etiquette a: (dans le listing) precedement incorporé dans le programme a l'adresse "a:"
; regarde bien le chiffre 1 ci dessus !! il servira a jouer le son numero 1






PlaySound(1 ,0) ; ici on joue le sons numero 1


lit les commentaire c'est clair !!


il faut que tu comprenne que le son est Physiquement incorporé a une adresse memoire qui est pointé par le label " a:" (pour l'exemple !) au moment de la conpilation !!!

regarde le signe ? dans la doc
Dernière modification par Backup le mer. 21/juil./2004 19:17, modifié 3 fois.
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Message par gansta93 »

Je comprand... merci beaucoup.
Mais tu sais pas avec quels autres types de fichiers on peut faire ça?
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

tous en principe !!

fait une recherche avec "IncludeBinary " dans la doc !! :D
Répondre