PB.Ex Speech (Windows)
Re: PB.Ex Speech (Windows)
Stimmt, hatte vergessen, dass KillSpeechRecognition nicht ausgeführt wird, wenn ich die Ausführung manuell unterbreche. Was ich mir noch wünschen würde, ist eine Funktion, die alle vorhandenen Wörter aus dem Wörterbuch der Spracherkennung ausliest. Dankeschön für diesen nützlichen Code!
Repeat
PureBasic
ForEver
PureBasic
ForEver
Re: PB.Ex Speech (Windows)
Wenn du kein eigenes Wörterbuch erstellen möchtest, kannst du den Wert 0 übergeben:
Dann sollten beliebige Wörter vom Sprachprogramm erkannt werden.WordArray: Ein String-Array mit Wörtern, die erkannt werden sollen. Wenn 0 übergeben wird, dann werden beliebige Wörter erkannt.Code: Alles auswählen
Result = SpeechRecognition(WordArray, WordArraySize, @ErrorOutput)
- stab
- Beiträge: 92
- Registriert: 24.02.2006 16:09
- Computerausstattung: 286er Big Tower; 16MHz; 1MB Ram; 40MB Festplatte, 5 1/4" und 3 1/2" Diskettenlaufwerk; VGA Farbmonitor 14"; Windows 3.1; PureBasic 0.5
- Wohnort: Hardt
- Kontaktdaten:
Re: PB.Ex Speech (Windows) - TextToAudioFile - Datei schließ
Hallo,
erstmal vielen Dank an RSBAsic für die hervorragenden Arbeiten, die vielen Bibliotheken, die er hier zur Verfügung stellt. Hochachtung.
Ich bastel mir eine Sprachausgabe und habe dabei festgestellt, dass nach Ausführen der Prozedur "TextToAudioFile" die wav-Datei nicht geschlossen wird.
Das Programm muss ich erst beenden.
Ist das ein bug oder ein feature? Oder kann ich mit meinen Anfängerkenntnissen einen Workaround erstellen?
Hier ist mein Gerüst zum Ausprobieren:
Gruss und Danke schon mal
erstmal vielen Dank an RSBAsic für die hervorragenden Arbeiten, die vielen Bibliotheken, die er hier zur Verfügung stellt. Hochachtung.
Ich bastel mir eine Sprachausgabe und habe dabei festgestellt, dass nach Ausführen der Prozedur "TextToAudioFile" die wav-Datei nicht geschlossen wird.
Das Programm muss ich erst beenden.
Ist das ein bug oder ein feature? Oder kann ich mit meinen Anfängerkenntnissen einen Workaround erstellen?
Hier ist mein Gerüst zum Ausprobieren:
Code: Alles auswählen
Global Window_0
Global Text, Button_0, Button_1, Button_2
Declare speichern(EventType)
Declare Stopp(EventType)
Declare vorlesen(EventType)
Procedure OpenWindow_0(x = 0, y = 0, width = 430, height = 250)
Window_0 = OpenWindow(#PB_Any, x, y, width, height, "Sprachausgabe", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
Text = EditorGadget(#PB_Any, 20, 20, 270, 90)
Button_0 = ButtonGadget(#PB_Any, 20, 120, 100, 25, "vorlesen")
Button_1 = ButtonGadget(#PB_Any, 190, 120, 100, 25, "Stopp")
Button_2 = ButtonGadget(#PB_Any, 20, 160, 100, 25, "speichern")
EndProcedure
Procedure Window_0_Events(event)
Select event
Case #PB_Event_CloseWindow
ProcedureReturn #False
Case #PB_Event_Menu
Select EventMenu()
EndSelect
Case #PB_Event_Gadget
Select EventGadget()
Case Button_0
vorlesen(EventType())
Case Button_1
Stopp(EventType())
Case Button_2
speichern(EventType())
EndSelect
EndSelect
ProcedureReturn #True
EndProcedure
Global text$
text$="Hallo. - - Hier ist Hedda. Dieser Text kann auch gespeichert werden."
; XIncludeFile "Sprachausgabeformular.pbf"
OpenWindow_0()
SetGadgetText(text,text$)
Global PBEx_Speech
PBEx_Speech = OpenLibrary(#PB_Any, "PB.Ex_Speech_x64.dll")
Prototype TextToSpeaker(Text.p-Unicode, Voice.p-Unicode, Speed, Volume, Asynchronous, ErrorOutput)
Global TextToSpeaker.TextToSpeaker = GetFunction(PBEx_Speech, "TextToSpeaker")
Prototype TextToAudioFile(Text.p-Unicode, Voice.p-Unicode, Speed, Volume, SaveFilePath.p-Unicode, ErrorOutput)
Global TextToAudioFile.TextToAudioFile = GetFunction(PBEx_Speech, "TextToAudioFile")
Prototype SpeechRecognition(WordArray, WordArraySize, ErrorOutput)
Global SpeechRecognition.SpeechRecognition = GetFunction(PBEx_Speech, "SpeechRecognition")
Prototype WaitSpeechRecognition(RecognizedWord)
Global WaitSpeechRecognition.WaitSpeechRecognition = GetFunction(PBEx_Speech, "WaitSpeechRecognition")
Prototype KillSpeechRecognition()
Global KillSpeechRecognition.KillSpeechRecognition = GetFunction(PBEx_Speech, "KillSpeechRecognition")
Define ErrorOutput$ = Space(1024)
Procedure vorlesen(EventType)
text$= GetGadgetText(text)
If text$=""
text$="Kein Text zum vorlesen."
EndIf
TextToSpeaker(text$,"",0,100,1,@ErrorOutput$)
EndProcedure
Procedure speichern(EventType)
text$= GetGadgetText(text)
If text$=""
End
EndIf
TextToAudioFile(text$,"",0,100,"hedda.wav",@ErrorOutput$)
EndProcedure
Procedure stopp(eventtype)
End
EndProcedure
Repeat
Event = WaitWindowEvent()
Select EventWindow()
Case Window_0
Window_0_Events(event)
EndSelect
If Event = #PB_Event_CloseWindow
Quit = 1
EndIf
Until Quit = 1
CloseLibrary(PBEx_Speech)
End
Paul sagt: "Max lügt."
Max sagt: "Otto lügt."
Otto sagt: "Max und Paul lügen."
Wer lügt hier wirklich und wer sagt die Wahrheit?
_________________________________________
286er Big Tower; 16MHz; 1MB Ram; 40MB Festplatte, 5 1/4" und 3 1/2" Diskettenlaufwerk; VGA Farbmonitor 14"; Windows 3.1; PureBasic 0.5
Max sagt: "Otto lügt."
Otto sagt: "Max und Paul lügen."
Wer lügt hier wirklich und wer sagt die Wahrheit?
_________________________________________
286er Big Tower; 16MHz; 1MB Ram; 40MB Festplatte, 5 1/4" und 3 1/2" Diskettenlaufwerk; VGA Farbmonitor 14"; Windows 3.1; PureBasic 0.5
Re: PB.Ex Speech (Windows)
Es fehlt wohl eine von mir bereitgestellte Funktion zum Schließen. Ich werde am Wochenende mal reinschauen und eine Close-Funktion bereitstellen oder dafür sorgen, dass danach das Objekt automatisch freigegeben wird.stab hat geschrieben:Ich bastel mir eine Sprachausgabe und habe dabei festgestellt, dass nach Ausführen der Prozedur "TextToAudioFile" die wav-Datei nicht geschlossen wird.
Das Programm muss ich erst beenden.
Ist das ein bug oder ein feature? Oder kann ich mit meinen Anfängerkenntnissen einen Workaround erstellen?
Danke für den Hinweis und freut mich, dass es dir gefällt.
Re: PB.Ex Speech (Windows)
PB.Ex Speech 1.0.3.0 wurde veröffentlicht.
Changelog:
Ist jetzt behoben.
Changelog:
- Bugfix: TextToAudioFile(): Nach dem Erstellen war die Audio-Datei noch vom Programm geöffnet.
Ist jetzt behoben.
- stab
- Beiträge: 92
- Registriert: 24.02.2006 16:09
- Computerausstattung: 286er Big Tower; 16MHz; 1MB Ram; 40MB Festplatte, 5 1/4" und 3 1/2" Diskettenlaufwerk; VGA Farbmonitor 14"; Windows 3.1; PureBasic 0.5
- Wohnort: Hardt
- Kontaktdaten:
Re: PB.Ex Speech (Windows)
Hallo RSBasic,
2000 Dank. Die Funktion ist jetzt einwandfrei.
Kann mich nur wiederholen. Hochachtung für die sehr konstruktiven Beiträge hier.
Deswegen liebe ich PB und dieses Forum, auch wenn ich selber nicht so viel dazu beisteuern kann.
Beste Grüße
(stab)
2000 Dank. Die Funktion ist jetzt einwandfrei.
Kann mich nur wiederholen. Hochachtung für die sehr konstruktiven Beiträge hier.
Deswegen liebe ich PB und dieses Forum, auch wenn ich selber nicht so viel dazu beisteuern kann.
Beste Grüße
(stab)
Paul sagt: "Max lügt."
Max sagt: "Otto lügt."
Otto sagt: "Max und Paul lügen."
Wer lügt hier wirklich und wer sagt die Wahrheit?
_________________________________________
286er Big Tower; 16MHz; 1MB Ram; 40MB Festplatte, 5 1/4" und 3 1/2" Diskettenlaufwerk; VGA Farbmonitor 14"; Windows 3.1; PureBasic 0.5
Max sagt: "Otto lügt."
Otto sagt: "Max und Paul lügen."
Wer lügt hier wirklich und wer sagt die Wahrheit?
_________________________________________
286er Big Tower; 16MHz; 1MB Ram; 40MB Festplatte, 5 1/4" und 3 1/2" Diskettenlaufwerk; VGA Farbmonitor 14"; Windows 3.1; PureBasic 0.5
-
- Beiträge: 390
- Registriert: 30.08.2004 09:05
- Computerausstattung: Desktop
Windows 10 Pro x64
CPU: AMD Ryzen 5 2600 3.40 GHz
Ram: 16GB RAM
Grafik: NVIDA Geforce 1060
PB: 5.72 X86/X64 - Wohnort: Heidelberg
Re: PB.Ex Speech (Windows)
Hi,
eine kurze frage.
Falls das Thema nicht schon zu alt ist.
wie muss man den Sprecher namen angeben?
Wenn ich:
Stefan
Microsoft Stefan
Microsoft Stefan - German
Microsoft Stefan - German (German)
versuchen gibt es keinen Ton.
Mit "" geht es aber.
Laut Windows 10 ist die Sprache mit dem namen installiert.
eine kurze frage.
Falls das Thema nicht schon zu alt ist.
Code: Alles auswählen
Result = TextToSpeaker(Text$, Voice$, Speed, Volume, Asynchronous, @ErrorOutput)
Wenn ich:
Stefan
Microsoft Stefan
Microsoft Stefan - German
Microsoft Stefan - German (German)
versuchen gibt es keinen Ton.
Mit "" geht es aber.
Laut Windows 10 ist die Sprache mit dem namen installiert.
Windows 10 x64 Pro - PB 5.61 X64 / x32 - PB 4.6 x32
Re: PB.Ex Speech (Windows)
Hallo Andreas21,
es werden per Standard mit dieser API nur die hier gelisteten Stimmen unterstützt. (Weiter: z.B. Microsoft Stefan, etc. sind per Standard deaktiviert)
C:\Windows\SysWOW64\Speech\SpeechUX\sapi.cpl
(Einfach mal im Explorer eingeben.)
Um weiter Stimmen zu unterstützen müssen diese extern heruntergeladen werden und mit einem Rechtsklick im aufploppenten Kontextmenü übert den Reiter "Zusammenführen" installiert werden.
es werden per Standard mit dieser API nur die hier gelisteten Stimmen unterstützt. (Weiter: z.B. Microsoft Stefan, etc. sind per Standard deaktiviert)
C:\Windows\SysWOW64\Speech\SpeechUX\sapi.cpl
(Einfach mal im Explorer eingeben.)
Um weiter Stimmen zu unterstützen müssen diese extern heruntergeladen werden und mit einem Rechtsklick im aufploppenten Kontextmenü übert den Reiter "Zusammenführen" installiert werden.
Betriebssysteme: div. Windows, Linux, Unix - Systeme
no Keyboard, press any key
no mouse, you need a cat
no Keyboard, press any key
no mouse, you need a cat