wenn fertige Worte oder auch Sätze reichen kann ich Dir sicher helfen
----
Ein Ansatz
besorg das espeak Paket und ein paar mbrola-voices (für das untenstehende Mbrola DE5)
und installier das entsprechend.
erstell ein Verzeichnis.
da rein das folgende als Knopf.txt speichern
(das @ trennt zwischen dem angezeigten umd dem letztlich gesprochenen Text, was wichtig ist, da
die Sprachsynthese nicht immer so klingen will wie man meint, dass es klingen müsste. Da muss
man dann öfters mal etwas nachhelfen)
Code: Alles auswählen
Ich bin müde@Ich bin müde!
Ich möchte Fernsehen@Ich möchte Fernsehen!
Ich habe hunger@Ich habe hunger!
Ich habe Durst@Ich habe Durst!
Ich möchte raus@Ich möchte raus!
Ich möchte mich hinlegen@Ich möchte mich hinlegen!
Ich möchte Dies@Ich möchte? Dies!
Ich möchte Das@Ich möchte Das!
Ich möchte Jenes@Ich möchte Jenes!
Ich möchte nach Links@Ich möchte nach Links!
Ich möchte nach Rechts@Ich möchte nach Rechts!
Ich möchte nach Oben@Ich möchte nach Oben!
Ich möchte Unten@Ich möchte Unten!
Ich muss mal@Ich muss mal!
Ich möchte ein Buch lesen@Ich möchte ein Buch lesen!
Zeitschrift lesen@Ich möchte gerne ma eine Zeitschrift lesen!
Biertrinken@Hol mir mal 'ne Flasche Bier, Flasche Bier, Flasche Bier
was auch immer@was auch immer!
was auch immer@was auch immer!
Ich muss noch mal@Ich muss noch mal!
Trinken aber dolle@Trinken aber dolle!
Feierabend@Feiern ohne Ende!
Das Eine@Das Eine!
Das Andere@Das Andere!
der letzte Knopf@Den letzten Knopf drück ich immer sooh gärne!
Folgendes Programm als MachWaves.pb speichern
Mit diesem Programm werden dann die Waves erstellt (das espeak verzeichnis entsprechend anpassen)
Code: Alles auswählen
ReadFile(0,"Knopf.txt")
here.s=GetPathPart(ProgramFilename())
Debug here
While Eof(0)=0
tmp.s=StringField(ReadString(0),2,"@")
c+1
DeleteFile (here+Str(c)+".wav ")
RunProgram("espeak","-p 50 -s 125 -a 200 -v MB-DE5 -w "+here+Str(c)+".wav "+Chr(34)+tmp+Chr(34),"D:\Programme\eSpeak\command_line",#PB_Program_Wait)
Wend
CloseFile(0)
Folgendes Programm als KnopfPlayer.pb speichern
Hiermit können die Waves dann wiedergegeben werden in dem Knöpfe (buttons) gedrückt werden
Code: Alles auswählen
Enumeration
#win
EndEnumeration
InitSound()
NewList bg.i()
OpenWindow(#win,0,0,500,500,"Knopfleiste",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
For y = 0 To WindowHeight(#win)-100 Step 100
For x = 0 To WindowWidth(#win)-100 Step 100
AddElement(bg())
bg()= ButtonGadget(#PB_Any,x,y ,WindowWidth(#win)/5,WindowHeight(#win)/5,"_",#PB_Button_MultiLine );Str(x)+"-"+Str(y))
Next x
Next y
ReadFile(0,"Knopf.txt")
ResetList(bg())
While Eof(0)=0
NextElement(bg())
c+1
sgadgettext.s = StringField(ReadString(0),1,"@")
SetGadgetText(bg(),sgadgettext+" ("+Str(c)+")")
Wend
CloseFile(0)
Repeat
event=WaitWindowEvent()
gadget=EventGadget()
If event=#PB_Event_Gadget
PlaySound(LoadSound(#PB_Any,RemoveString(StringField(GetGadgetText(gadget),2,"("),")")+".Wav"))
;MessageRequester("","dieser Knopf hat Inhalt "+GetGadgetText(gadget))
EndIf
If event=#PB_Event_CloseWindow
quit+1
EndIf
Until quit
und hier noch ein Teil das keine Waves erzeugt sondern nur spricht.
Textformat wie das obige.
Code: Alles auswählen
ReadFile(0,"Knopf.txt")
here.s=GetPathPart(ProgramFilename())
Debug here
While Eof(0)=0
tmp.s=StringField(ReadString(0),2,"@")
Debug tmp
c+1
RunProgram("espeak","-p 50 -s 125 -a 200 -v MB-DE5 "+Chr(34)+tmp+Chr(34),"D:\Programme\eSpeak\command_line",#PB_Program_Wait)
Wend
CloseFile(0)