Speak - Taas yks DLL; tämä puhuu tekstiä

Jaa meneillään olevat projektisi tai valmiit pelit muun yhteisön kanssa täällä.
Post Reply
Aavesoturi
Active Member
Posts: 163
Joined: Fri Aug 31, 2007 7:07 pm
Location: Helsinki
Contact:

Speak - Taas yks DLL; tämä puhuu tekstiä

Post by Aavesoturi »

Tjuu noin vartissa tehokkaalla copy-pasteamisella kasasin pienen DLL:n, joka puhuu sille syötetyn merkkijonon Windowsin perussyntetisaattorilla.
Featuret:
* Yksi funktio, Speak(teksti$)
* Merkkijonon maksimipituus 255 merkkiä
* Ei pysäytä ohjelman suoritusta (luo uuden säikeen puhumiselle)
* Puhuu asiat peräkkäin, eli peräkkäiset kutsut laittavat merkkijonot jonoon
* Maksimissaan 32 merkkijonoa jonossa

Esimerkki ja cb:n kutsufunktio:

Code: Select all

Speak("Moikkelis")
WaitKey 


Function Speak(_txt$)
    _strlen = Len(_txt)
    _mem = MakeMEMBlock(_strlen+4)
    PokeInt _mem, 0, _strlen
    _offset=4
    For _i = 1 To _strlen
        PokeByte _mem, _offset, Asc(Mid(_txt, _i, 1))
        _offset+1
    Next _i
    CallDLL "SpeakDLL.dll", "Speak", _mem
    DeleteMEMBlock _mem
End Function
Lataa liite DLL ja tunge samaan kansioon cb filun kanssa.
Attachments
SpeakDLL.zip
SpeakDLL 1.0
(13.93 KiB) Downloaded 312 times
Last edited by Aavesoturi on Tue Nov 11, 2008 5:58 pm, edited 1 time in total.
Viltzu
Guru
Posts: 1132
Joined: Sun Aug 26, 2007 5:45 pm
Location: Alavieska
Contact:

Re: Speak - Taas yks DLL; tämä puhuu tekstiä

Post by Viltzu »

Hienoa, Viltzu kiittää ja kuittaa, eikun testaamaan->
EDIT:

Hieno on, olisi kyllä ollut mukavaa jos koodissa olisi voinut vaihtaa puhujan.. Esim. Microsoft Mikeen.

User avatar
KillBurn
Advanced Member
Posts: 339
Joined: Wed Aug 29, 2007 5:02 pm

Re: Speak - Taas yks DLL; tämä puhuu tekstiä

Post by KillBurn »

Olisi voinut olla valmiina source tuola zipissä.
Ihan hauska.Tein pienen lisäyksen(Ei kai haittaa?). Nyt voit vaihtaa tekstiä lennosta(Vain lehnnosta).

Code: Select all

Repeat    
Speak(Input(""))
DrawScreen 
Forever 
    Function Speak(_txt$)
        _strlen = Len(_txt)
        _mem = MakeMEMBlock(_strlen+4)
        PokeInt _mem, 0, _strlen
        _offset=4
        For _i = 1 To _strlen
            PokeByte _mem, _offset, Asc(Mid(_txt, _i, 1))
            _offset+1
        Next _i
        CallDLL "SpeakDLL.dll", "Speak", _mem
        DeleteMEMBlock _mem
    End Function
Sumu Games: Sam, Ur eye!
otto90x
Advanced Member
Posts: 349
Joined: Mon Aug 27, 2007 9:00 pm
Location: Lapinjärvi, Finland
Contact:

Re: Speak - Taas yks DLL; tämä puhuu tekstiä

Post by otto90x »

Hei tämähän on loistava tekele. Saisikohan tuolle dll:lle vielä välitettyä jotain korkeus tai nopeus parametrejä puheelle. Voisi periaatteessa tehdä useamman henkilön äänen (vaikka olisivatkin Geneerisiä isolla Geellä)

Alkoi ärsyttämään tuossa KillBurnin versiossa tuo että se puhuu kokoajan kun kirjoittaa, joten tein siihen pienen muokkauksen.
Eli kun painaa entteriä niin tulee puhetta.

Code: Select all

Repeat    
    c$=Input("")
    If KeyHit(28) Then Speak(c$)
    DrawScreen 
Forever 

Function Speak(_txt$)
    _strlen = Len(_txt)
    _mem = MakeMEMBlock(_strlen+4)
    PokeInt _mem, 0, _strlen
    _offset=4
    For _i = 1 To _strlen
        PokeByte _mem, _offset, Asc(Mid(_txt, _i, 1))
        _offset+1
    Next _i
    CallDLL "SpeakDLL.dll", "Speak", _mem
    DeleteMEMBlock _mem
End Function
Otto Martikainen a.k.a. MetalRain, otto90x, kAATOSade.
Runoblogi, vuodatusta ja sekoiluja.
MAVmaggot
Advanced Member
Posts: 468
Joined: Fri Aug 31, 2007 10:18 pm
Location: bitspace

Re: Speak - Taas yks DLL; tämä puhuu tekstiä

Post by MAVmaggot »

Mahtava :D kiitos, voisi käyttää ehkä yhdessä projussanikin.
otto90x wrote:Alkoi ärsyttämään tuossa KillBurnin versiossa tuo että se puhuu kokoajan kun kirjoittaa, joten tein siihen pienen muokkauksen.
Eli kun painaa entteriä niin tulee puhetta.
Heh, tein juuri samanlaisen, mutta täälä olikin jo semmonen.
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

Re: Speak - Taas yks DLL; tämä puhuu tekstiä

Post by MaGetzUb »

Kiva, Olisipa nyt äänen muakkaus kirjastoja jne, niin voisi tehdä vaikka minkälaisia rooli pelejä jne. Esim joku naisen putkimainen ääni sopisi johonkin lentokone peliin, jossa tuhotaan toisia lentokoneita jne. Jos kukaan muistaa Top Landerin, niin siitä tekisi jonkun sota pelin ja sinne tuollaiset puhe äänet (selvemmät ja ns. terävemmät) niin ai että.. =)
Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.
Sami345
Advanced Member
Posts: 349
Joined: Fri Aug 31, 2007 4:52 pm
Contact:

Re: Speak - Taas yks DLL; tämä puhuu tekstiä

Post by Sami345 »

Englannin kielinen puhe kuulosti erittäin hienolta tällä Vistan kanssa. Tätähän voisi käyttää jossain tekstipelissä niin, että teksti puhuttaisiin. Hienoa työtä.

OffTopic:
programmer of DSG wrote:Kiva, Olisipa nyt äänen muakkaus kirjastoja jne, niin voisi tehdä vaikka minkälaisia rooli pelejä jne. Esim joku naisen putkimainen ääni sopisi johonkin lentokone peliin, jossa tuhotaan toisia lentokoneita jne. Jos kukaan muistaa Top Landerin, niin siitä tekisi jonkun sota pelin ja sinne tuollaiset puhe äänet (selvemmät ja ns. terävemmät) niin ai että.. =)

Todennäköisesti CB:n tehot eivät riittäisi tuollaiseen, koska jo Top Landerissa CB:n tehot on viety äärirajoilleeen. Ja vaikka joku onnistusikin optimoimaan tarpeaksi, todennäköisesti lentokoneet eivät näyttääisi lentokoneilta, johtuen pistegrafiikasta.
Last edited by Sami345 on Fri Dec 05, 2008 11:03 pm, edited 1 time in total.
Projektit: Fiperus - Jäädytetty pidemmäksi aikaa.
Voitot: Viikkokisa XIII, Pikapelikisa 3, Pikapelikisa 13
http://www.sami345.tk/
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

Re: Speak - Taas yks DLL; tämä puhuu tekstiä

Post by MaGetzUb »

Mistä niin päättelet? Eihän pelissä tarvitsisi olla aina kun vain pari lentokonetta ilmassa, ja nuo kentätkin ovat aika täynnä pisteitä, eikä koneellani lagaa pahasti. Eli jos olisi avaruus taistelu peli.
EDIT:

No jatketaanpa aihetta

Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.
Aavesoturi
Active Member
Posts: 163
Joined: Fri Aug 31, 2007 7:07 pm
Location: Helsinki
Contact:

Re: Speak - Taas yks DLL; tämä puhuu tekstiä

Post by Aavesoturi »

...Ja ainahan voi käyttää cbGL:ää, joka hallitsee nopean graffan. Juuri lisäsin siihen myös 3d ominaisuuksia.

Niin ja en usko että kehitän tätä enää eteenpäin, tää oli vaan tällanen pikanen hetken mielijohteesta kyhätty juttu, joten jos ei perus ääni kelpaa, niin voipi olla, että joudutte ite tekemään. Laitan tossa jossain vaiheessa sorsat pihalle.
User avatar
elmo123
Active Member
Posts: 153
Joined: Sun Sep 09, 2007 4:19 pm

Re: Speak - Taas yks DLL; tämä puhuu tekstiä

Post by elmo123 »

Ei toimi. Johtuu käyttiksestäni, hämähäkinverkkojen valtaamasta Windows 98:sta. Pitää varmaan käyttää uutta XP-pelikonetta.
Kiinnostuin pelien tekemisestä ennen 1. luokkaa.
Sitten 3. luokalla tuli CB. Ja siitä se alkoi.

Blender! TF2! CB! Game Maker! Nokia-mollaus! Kitaransoitto! Breakdance! MadTracker! Minecraft!
Post Reply