Tale i Delphi

Tags:    delphi
Skrevet af Bruger #40 @ 16.04.2002
Hvordan man får sine programmer til at snakke!

I denne artikel vil jeg komme lidt ind på den geniale sapi sdk 5.1 fra Microsoft . Denne sdk fra ms, bruges til at tilføje stemme aktivering, og til at tilføje tale til sine programmer, dette er en genial måde, på at tilføje flere brugervenlige funktioner, og flere muligheder til sine programmer. Nåmen skal vi så komme igang, med det vigtige i denne artikel:-)
Først vil jeg vise jer, hvordan man installere denne sdk, for derefter at komme med et par kode eksempler på hvordan man kan bruge den i sine delphi programmer( jeg har kun installeret disse komponenter på delphi 5 +6).

For at få fat i sapi 5.1, skal vi lige en tur forbi Microsofts
Speech.net
hjemmeside, som vi finder via Speech.net . Følg linket til deres download side, og hent programmet Speech SDK 5.1 ( det fylder 68 mb, så det kan godt tage lang tid på en alm. forbindelse)

Læs lige Release notes, da der står mange vigtige ting her i. Lige for at få alle med, skal det siges at denne pakke allerede er installeret under de gængse windows xp realeses.

I denne sdk pakke, finder vi alle de smarte ting, vi finder den engelske version af speech modulet, som selvfølgelig kun kan snakke/modtage engelske kommandoer.. desuden finder vi en seriøst stor hjælpe fil, som virklig kan svare på alt som vi nu går og mangler svar på:-)
Nu regner jeg med du har hentet denne fil ned, og er klar til at installere, tryk da på speechsdk51.exe for at installere den under dit styresystem, og genstart en gang, så skulle vi være klar, til at få alle komponenter osv, registreret inde i delphi. I første omgang, skal vi have delphi til at forstå at vi gerne vil have nogle nye objecter installeret, dette gør du ved at gøre følgende:

Start delphi
Gå ind i Project | Import Type Library
Find og marker Microsoft Speech Object Library
Hvis du ikke finder dette libarary, er der en fejl i din install af sapi.


Delphi vil smidde dine sapi komponenter ind under activex paletten, jeg vil stærkt anbefale at du smidder disse komponenter ind under en ny palette, f.eks. sapi i stedet( da vi snakker om 19 forskellige komponenter). Husk at afkrydse Generate Component Wrapper
I installations dialogen skal du vælge into new package, og i fil navn kunne du f.eks. vælge SAPI5.dpk, tryk på "browse", og vær sikker på at dine componenter og din dpk fil ligger samme sted( det gør det meget nemmere) I Install dialog’s Description skal du give en beskrivelse af disse componenter, f.eks. sapi tools f.eks.
Tryk ok.
Tryk yes, i confirm dialog , og nu vil dine componenter blive installeret.

Jeg har her i min artikel valgt at undlade nogle ting, som i kan læse vidre om hos Delphi3000

Nu skal vi til det sjove, vi skal teste om det vi lige har lavet virker:-)

Først skal vi have oprettet en ny app ( File/new/application/ Smid en tbutton på din form, og under din sapi5 palette, skal du vælge komponentet spvoice, som ligger som nummer 5 fra læseretningen.
Nu har vi altså en button og et spvoice på vores form, nu skal vi have lidt kode på:
Opret en Onclick event for din knap, men følgende kode:
procedure TForm1.Button1Click(Sender: TObject); 
begin 
  SpVoice1.Speak('Hello stranger, this is udvikleren.dk', SVSFDefault); 
end; 
Kør programmet, og hør efter, fedt ikke? :-)
Dette var en af de 1000 vis af muligheder som disse komponenter giver os delphi udviklere...Dette er et produkt ms kan være stolte af :-) Hvis du har teste første eksempel, kan jeg kan lige komme med et par stykker mere, som du kan lege med....here goes..
SpVoice1.Speak('http://www.o2a.com', SVSFIsFilename); 
Denne kode kan læse en hjemmeside titel op, prøv selv.
Desuden vil jeg lige adde noget simpelt kode, så programmet kan læse fra en tmemo1.
SpVoice1.Speak(memo1.text, SVSFDefault);
Jeg håber at denne artikel kan få dig igang med endnu flere og sjove programmer, og at du kan bruge dette til noget :-) Lige som en slut bemærkning vil jeg lige advare om at folk uden msagent ( jeres brugere), ikke kan høre disse ting, MAN skal have installeret msagent som minimum, find den via msagent Jeg kommer snart med en ny artikel om stemme aktivering via delphi og sapi( så hvis du vil lære, hvordan man f.eks. åbner cs, med en stemme kommando, skal du kigge her på siden:-) ) Held og lykke, og god kodning



Hvad synes du om denne artikel? Giv din mening til kende ved at stemme via pilene til venstre og/eller lægge en kommentar herunder.

Del også gerne artiklen med dine Facebook venner:  

Kommentarer (13)

User
Bruger #3011 @ 11.01.03 21:56
Klart det fedeste :)
User
Bruger #3033 @ 13.01.03 12:45
Fedest, omend stemmen er alt for mekanisk! Vil bruge det i min forskning t. virtuelle læringsmiljøer
User
Bruger #3297 @ 30.03.03 20:23
Haløjsa gode skribent!

det er nok det fedeste jeg nogensinde har set !!! coool nok du re for sej skriv nogen fler artikler
User
Bruger #3470 @ 05.05.03 19:43
I din nye artikel om stemmeaktivering må du godt forklare hvordan man "reparerer" SAPI 5.1 i Delphi 6, for der virker det nemlig ikke!
User
Bruger #353 @ 21.05.03 14:32
Ja, og skriv om mulighederne for at ændre stemmen til dansk og evt til mandlig stemme.

Rigtig god artikel
User
Bruger #4877 @ 10.12.03 22:32
For fee......
Det er bare dejligt..
User
Bruger #5097 @ 05.03.04 23:23
Kan ikke få hentet kompo...
Og det er også lige meget, da jeg ikke kan installere det. (Der er en fejl i delphi 7 enterprice som gør at det er umuligt...)
Ellers lyder det godt
User
Bruger #3308 @ 24.03.04 15:59
Theis... jeg synes hele tiden du siger der er fejl i Delphi 7 Enterprice) der er bare en ting som jeg ikke kan forstå? Det virker fint ved mig.... Tror du ikke du skulle til at styrer dig med dine kommentare!!!

Ellers MaX God artikel! :)
Og ja den virker fint på Delphi 7 EnterPrice!!!
User
Bruger #5097 @ 09.05.04 20:41
Er der en der vil sende mig kompo igennem e-mail til mig?

Min mail er theisf@stofanet.dk
User
Bruger #5097 @ 15.05.04 23:40
Har fået ny:
Shafh@stofanet.dk
User
Bruger #5097 @ 18.05.04 15:02
ok.
Så er det lige meget
User
Bruger #5097 @ 18.05.04 16:36
Må jeg spørge:
Som du skriver SKAL DU HAVE speech på pc'en før at du kan høre lydene. Det ødelægger sådan set det hele, da jeg så ikke kan bruge det på andre pc'er. :(
Men så har jeg tænkt på noget:
Jeg ved at microsoft sam hører til windows XP.
Kan jeg så godt bruge funktionen vis jeg bare vælger Microsoft Sam? (altså på pc'er med XP)

Og hvordan skifter jeg stemme?
User
Bruger #5715 @ 14.08.05 17:46
Du kan også få den til at sige tiden med en meget simpel kommando og den siger det i timer, minutter og sekunder:

SpVoice1.Speak(TimeToStr(NOW), SVSFDefault);

:D

Du skal være logget ind for at skrive en kommentar.
t