Sprachausgabe in deutsch mit speech.dll

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
dysti
Beiträge: 656
Registriert: 10.02.2006 18:34
Wohnort: Schlicktown

Sprachausgabe in deutsch mit speech.dll

Beitrag von dysti »

Hallo,
ich habe die "Speech.dll" von Frank Frabbing an Purebasic angepasst.

Code: Alles auswählen

Enumeration
  #Window_0
EndEnumeration

Enumeration
  #speechdll
  #StringGadget_0
  #ButtonGadget_1
  #ButtonGadget_2
EndEnumeration

OpenLibrary(#speechdll, "Speech.dll")

Procedure.l InitSpeech()
  value.l = CallFunction(#speechdll, "InitSpeech")
  ProcedureReturn value
EndProcedure

Procedure.l PlaySpeech(s.l,lg.l)
  value.l = CallFunction(#speechdll, "PlaySpeech",s,lg)
  ProcedureReturn value
EndProcedure

Procedure.l StopSpeech()
  value.l = CallFunction(#speechdll, "StopSpeech")
  ProcedureReturn value
EndProcedure

Procedure.l DeInitSpeech()
  value.l = CallFunction(#speechdll, "DeInitSpeech")
  ProcedureReturn value
EndProcedure

Procedure OpenWindow_Window_0()
  If OpenWindow(#Window_0, 236, 180, 400, 400, "Sprachausgabe", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
    If CreateGadgetList(WindowID(#Window_0))
      StringGadget(#StringGadget_0, 5, 10, 385, 315, "Hallo Purebasic, du bist eine schöne Programmiersprache.")
      ButtonGadget(#ButtonGadget_1, 40, 340, 110, 35, "Text sprechen")
      ButtonGadget(#ButtonGadget_2, 160, 340, 110, 35, "Sprache stoppen")
    EndIf
  EndIf
EndProcedure

OpenWindow_Window_0()
InitSpeech()

Repeat
  Event = WaitWindowEvent()
  Select Event
    
    Case #PB_Event_Gadget
      EventGadget = EventGadget()
      EventType = EventType()
      If EventGadget = #StringGadget_0
      ElseIf EventGadget = #ButtonGadget_1
      inhalt.s = GetGadgetText(#StringGadget_0)
      PlaySpeech(@inhalt,Len(inhalt))
      ElseIf EventGadget = #ButtonGadget_2
      StopSpeech()
      EndIf
   
    Case #PB_Event_CloseWindow
      EventWindow = EventWindow()
      If EventWindow = #Window_0
      DeInitSpeech()
        Break
      EndIf
  EndSelect
ForEver
Hier die Internetadresse für die DLL:
http://frabbing.de/_speech.html
Den Microsoft Reader bekommt man hier:
http://www.microsoft.com/reader/de/downloads/pc.asp
und das neuste Update:
http://www.microsoft.com/reader/de/upda ... mplete.asp
Die deutsche Srachausgabe gibt es auch:
http://www.microsoft.com/reader/de/downloads/tts.asp
PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9
Benutzeravatar
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

Beitrag von rolaf »

Klasse, danke!

Nett wie LH Anna "PureBasic" ausspricht (hört sich fast wie französischer Akzent an, würde ja passen). :mrgreen:
:::: WIN 10 :: PB 5.73 :: (x64) ::::
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Warum nicht die UserLib von Esteban?
http://www.purebasic.fr/english/viewtop ... i&start=30
SAPI4 und SAPI5 Unterstützung und mehr Funktionen als die DLL :wink:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

Beitrag von rolaf »

ts-soft hat geschrieben:Warum nicht die UserLib von Esteban?
Tja, warum nur ist die Banane krum? :wink:

Z.B. weil der Funktionsumfang schön übersichtlich und einfach begreifbar ist, zudem von nem netten deutschen Kollegen und völlig ausreichend auf das Wesentliche reduziert!? :allright:
:::: WIN 10 :: PB 5.73 :: (x64) ::::
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Falo hat geschrieben:Z.B. weil der Funktionsumfang schön übersichtlich und einfach begreifbar ist,
Okay, ich hab da keine Probleme :mrgreen:
Falo hat geschrieben:zudem von nem netten deutschen Kollegen und völlig ausreichend auf das Wesentliche reduziert!? :allright:

Okay, Frank ist schon in Ordnung, dagegen kann man nichts einwenden :wink:

Hab aber nur die anderen Sprachengines installiert, die laufen nicht mit der DLL.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
dysti
Beiträge: 656
Registriert: 10.02.2006 18:34
Wohnort: Schlicktown

Beitrag von dysti »

Hey TS-SOFT,
habe die DLL nur angepasst, weil sie eben einfach und schnell ohne große Überlegung einzubinden ist, zumal, wie du auch, ich mit Franks Listview und Profan arbeite. Ich gehe zumindest davon aus, weil wir uns ab und zu auch ins Franks Forum wiedertreffen. Ich will dir nichts unterstellen. Sollte es nicht so sein, so möge du mir verzeihen. Au jeden Fall kann ich sowohl in Profan als auch in Purebasic die DLL´s verwenden.
PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Ich nutze lieber UserLibs als DLLs, kann mir ja notfalls eine DLL draus
machen. Das ist aber jedem selbst überlassen, wollte nur drauf hinweisen,
das es sowas für PB bereits gibt. Viele UserLibs usw. vom engl. Forum sind
hier ja nicht so bekannt.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
dysti
Beiträge: 656
Registriert: 10.02.2006 18:34
Wohnort: Schlicktown

Beitrag von dysti »

aus der Sicht "PB" hast du vollkommen recht. :allright:
PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9
Benutzeravatar
Frabbing
Beiträge: 160
Registriert: 15.02.2007 21:31
Kontaktdaten:

Beitrag von Frabbing »

Danke, dysti!

Ich werd' den Code gerne der Dll beilegen. :D

@ts-soft:
Warum nicht die UserLib von Esteban?
http://www.purebasic.fr/english/viewtop ... i&start=30
SAPI4 und SAPI5 Unterstützung und mehr Funktionen als die DLL

Ich nutze lieber UserLibs als DLLs, kann mir ja notfalls eine DLL draus
machen. Das ist aber jedem selbst überlassen...
Darum steht ja auf meiner Webpage:

Die Speech.dll ist entstanden, um den Einbau der SAPI-Schnittstelle in eigene Programme zu vereinfachen. Dabei nutzt sie weder alle Möglichkeiten der SAPI, noch legt sie Anspruch darauf, vollständig zu sein.

[/i]
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

@Frank
Bild

Biste auf PB umgestiegen?
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten