Autor |
Beitrag |
Nano-Ware
      
Beiträge: 394
Erhaltene Danke: 7
|
Verfasst: Sa 23.07.11 00:26
Hey,
ich möchte ein Programm schreiben, mit dem es mir Möglich ist, verschiedenste Aktionen über Spracheingabe zu realisieren. Gibt es eine Möglichkeit, es mit Delphi zu realisieren, dass der Computer auf Befehle reagiert?
Priorität hat ersteinmal die Spracheingabe. Mir ist dieses Projekt wirklich wichtig, da ich als Kind schon immer soetwas haben möchte, deshalb werde ich alles versuchen um es auch zu schaffen.
Vielen vielen Dank schonmal bei der Hilfe (:
Schönen Abend noch
//Die Spracheingabe kann ich mit VB.NET realisieren. Dort muss man die Speechlib von Microsoft importieren. Ich möchte das aber wenn Möglich ohne VB.NET lösen sondern in Delphi.
(VB-Code)
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57:
| Imports System Imports System.Collections.Generic Imports System.Linq Imports System.Speech Imports System.Speech.Recognition Imports System.Text Imports System.Speech.Synthesis
Module Module1
Public spoken_text As String Sub Main()
' In diesem Teil wird euere Grammar hinzugefügt also eure Worte und .NET wird gesagt das ihr auf die Sprachsteuerung zugreifen wollt. Console.WriteLine("Sprachsteuerung wird gestartet...") ' Hier wird die Sprachsteuerung deklariert Dim recognizer As New SpeechRecognitionEngine() ' Hier wird der Sprachsteuerung gesagt das es das Standart Mikrofon nehmen soll recognizer.SetInputToDefaultAudioDevice()
AddHandler recognizer.SpeechRecognized, AddressOf recognizer_SpeechRecognized
' Ihr müsst Try Catch nicht verwenden aber es ist empfehlenswert wenn etwas nicht funktioniert das man nicht mit Fehlern beworfen wird. Try ' So, hier werden euere Wörter gespeichert also eure Befehle. Diese stehen in grammar.xml das kommt später Dim grammar As New System.Speech.Recognition.DictationGrammar() ' Hier wird nochmal der Cache von grammars gelöscht damit nichts falsches aufgenommen wird recognizer.UnloadAllGrammars() ' Hier erfolgt die Zuweisung der Befehle recognizer.LoadGrammar(grammar) ' Hier wird die eigentliche Erkennung gestartet. recognizer.RecognizeAsync(RecognizeMode.Multiple) Catch ex As Exception Console.WriteLine("Exception aufgetreten: " & ex.Message) Console.ReadLine() Exit Sub End Try
Console.WriteLine("Sprachsteuerung erfolgreich gestartet.")
While Not spoken_text = "Beenden" System.Threading.Thread.Sleep(100) End While Console.WriteLine("Programm wird geschlossen...")
recognizer.Dispose()
End Sub
Private Sub recognizer_SpeechRecognized(ByVal sender As Object, ByVal e As System.Speech.Recognition.SpeechRecognizedEventArgs) spoken_text = e.Result.Text Console.WriteLine((e.Result.Text & " (") + e.Result.Confidence.ToString() & ")") End Sub
End Module |
(Quelle: VB-Paradise)
|
|
Nano-Ware 
      
Beiträge: 394
Erhaltene Danke: 7
|
Verfasst: So 24.07.11 12:17
Ich weiß mit dem .NET-Framework ist das einfach bestimmt auch einfacher als mit Delphi aber irgendwie muss es doch gehn oder?
|
|
platzwart
      
Beiträge: 1054
Erhaltene Danke: 78
Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
|
Verfasst: So 24.07.11 13:10
_________________ Wissenschaft schafft Wissenschaft, denn Wissenschaft ist Wissenschaft, die mit Wissen und Schaffen Wissen schafft. (myself)
|
|
Nano-Ware 
      
Beiträge: 394
Erhaltene Danke: 7
|
Verfasst: So 24.07.11 20:56
Vielen Lieben Dank.
Bevor ich das SDK installiere: Würde ich das Programm weitergeben wollen, müsste ich dann etwas mitliefern?
Und die Frage mit der Sprachausgabe bleibt noch bestehn (:
Danke (:
EDIT:// Ich habe mir die Beispielunit heruntergeladen und das Beispielprogramm ausgeführt, leider geht dann aber im oberen Teil des Bildschirms das "Sprachsteuerungs-Tool" von Windows auf. Außerdem hätte ich gern eine Möglichkeit wie das zB in VB.NET geht, dass man einen Gramatik-File anlegen kann, in dem die Wörter stehen, die erkannt werden sollen. Ich hoffe das geht.
|
|
platzwart
      
Beiträge: 1054
Erhaltene Danke: 78
Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
|
Verfasst: So 24.07.11 21:58
Das geht alles, was du beschrieben hast. Leider hab ich das Beispiel nicht mehr hier. Aber durch googlen habe ich damals alles gefunden.
_________________ Wissenschaft schafft Wissenschaft, denn Wissenschaft ist Wissenschaft, die mit Wissen und Schaffen Wissen schafft. (myself)
|
|
Nano-Ware 
      
Beiträge: 394
Erhaltene Danke: 7
|
Verfasst: So 24.07.11 22:02
Naja ich hab schon sehr lange gesucht.. ich hab einfach keine Idee nehm mir das nicht übel. Es währe nett wenn du mir helfen könntest (:
|
|
platzwart
      
Beiträge: 1054
Erhaltene Danke: 78
Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
|
Verfasst: So 24.07.11 22:05
Google erste Suchtrefferseite... edn.embarcadero.com/article/29583
_________________ Wissenschaft schafft Wissenschaft, denn Wissenschaft ist Wissenschaft, die mit Wissen und Schaffen Wissen schafft. (myself)
|
|
Nano-Ware 
      
Beiträge: 394
Erhaltene Danke: 7
|
Verfasst: So 24.07.11 22:15
Ich habs jetzt nur überflogen aber seh ich richtig, dass das eine Lösung für beides ist? o:
Achja es währe nett wenn du mir verraten könntest, nach was du gesucht hast, denn ich hab bei "Delphi Sprachsteuerung" nichts brauchbares gefunden
//
ich hab jetzt schon die ganze Zeit rumprobiert und wieder stellt sich raus dass ich einfach zu dumm bin.. Ich bekomm nichteinmal das Beispielprojekt zum laufen...
|
|
platzwart
      
Beiträge: 1054
Erhaltene Danke: 78
Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
|
Verfasst: So 24.07.11 23:02
Suchausdruck: "Delphi SAPI"
Wie kann ich dir denn genau helfen?
Noch eine Bitte am Rande: Kannst du deine Smileys bitte spiegelverkehrt zeichnen. So wie die jetzt sind, wird mir irgendwie schwindlig 
_________________ Wissenschaft schafft Wissenschaft, denn Wissenschaft ist Wissenschaft, die mit Wissen und Schaffen Wissen schafft. (myself)
|
|
Nano-Ware 
      
Beiträge: 394
Erhaltene Danke: 7
|
Verfasst: Mo 25.07.11 17:34
Also: Da ich auf der Seite die du mir gepostet hattest die Beispielprojekte nicht herunterladen konnte hab ich halt mal gesucht und bin darauf gekommen: www.blong.com/Confer...ch/SAPI51/SAPI51.htm
Dort hab ich mir das Beispielprojekt für die Sprachsteuerung heruntergeladen und habe dann einfach mal testweise das Projekt "CommandandControl" im Rad Studio 2010 geöffnet. Danach habe ich direkt die SpeechLib die mitgegeben wurde in das Projekt eingebunden. Ich wollte das Pakage nicht installieren, ich denke mal das macht keinen Unterschied - naja beim Starten des Projekts kommt :
"Zugriffsverletzung bei Adresse 004B0B32 in Modul 'CommandAndControl.exe'. Lesen von Adresse 000000E8."
Ich bin leider nicht so gut in Delphi wie die meisten hier und ich hab mir das Beispielprojekt auch angeschaut aber verstehen tu ich es eher nicht so. Jedenfalls nicht gut genug um den Fehler zu finden.
//Ich hab das Package jetzt doch installiert.. jetzt findet er die .dcu des Packages nicht. Wo muss ich die denn ablegen?
|
|
jaenicke
      
Beiträge: 19313
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 25.07.11 19:11
Nano-Ware hat folgendes geschrieben : | Also: Da ich auf der Seite die du mir gepostet hattest die Beispielprojekte nicht herunterladen konnte |
Hat es sich noch nicht zu dir herumgesprochen, dass der Besitzer von Delphi jetzt Embarcadero ist? Wenn du im Link borland.com durch embarcadero.com ersetzt, funktioniert der Link...
codecentral.embarcad...m/Item.aspx?id=19511
|
|
Nano-Ware 
      
Beiträge: 394
Erhaltene Danke: 7
|
Verfasst: Di 26.07.11 23:44
Danke,
ich habe jetzt erstmal aus der ZIP das Package installiert, ich bekomm das aber leider nicht so hin. Die BPL von der SpeechLib befindet sich on den öffentlichen Dokumenten unter 7.0 im Ordner BPL. Beim Versuch die D/ Automation zu compilern, sagt er mir er findet die SpeechLib.dcu nicht. Ich Idiot hab sie halt ann mal auch in den BPL Ordner kopiert, das hat aber das Problem nicht gelöst, könnt ihr mir schnell verraten wo die dcu, die zur bpl gehört hinkopiert werden muss?
Danke
|
|
jaenicke
      
Beiträge: 19313
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Di 26.07.11 23:58
Das ist egal, solange es nicht ein Ordner unterhalb des Delphiverzeichnisses ist. Wichtig ist ansonsten nur, dass der Pfad im Bibliothekspfad drin ist.
|
|
Nano-Ware 
      
Beiträge: 394
Erhaltene Danke: 7
|
Verfasst: Mi 27.07.11 01:23
Ich habe mit dieser Art der Sprachsteuerung echt meine Probleme. Beim Starten der Anwendung muss man erstmal ca. 30 Sekunden dafür einplanen, bis das Sprachsteuerungsfenster von Windows aufgeht, um dann zuzuschauen, wie sich die Anwendung einfach sang und klanglos beendet. Wenn man das mit VB.NET über das .NET-Framework löst, geht das ohne dieses Sprachsteuerungsfenster von Windows. Gibt es eventuell Alternativen?
Danke
|
|
Blawen
      
Beiträge: 616
Erhaltene Danke: 33
Win XP, Vista, 7
Delphi 5 Prof., BDS 2006 Prof. RAD Studio XE
|
Verfasst: Mi 27.07.11 08:38
Nano-Ware hat folgendes geschrieben : | Ich habe mit dieser Art der Sprachsteuerung echt meine Probleme. Beim Starten der Anwendung muss man erstmal ca. 30 Sekunden dafür einplanen, bis das Sprachsteuerungsfenster von Windows aufgeht, um dann zuzuschauen, wie sich die Anwendung einfach sang und klanglos beendet. Wenn man das mit VB.NET über das .NET-Framework löst, geht das ohne dieses Sprachsteuerungsfenster von Windows. Gibt es eventuell Alternativen? |
Im Moment scheinst Du etwas falsch zu machen, allerdings können wir im Moment auch nur raten oder die Glaskugel verwenden. Wie wäre es, wenn Du etwas QT zeigst?
Nur so nebenbei, das .NET kannst Du auch mit Delphi verwenden.
_________________ Es kompilert, wir können ausliefern.
Und es kompiliert wieder - das Update ist fertig - bitte 100 Euro
|
|
Nano-Ware 
      
Beiträge: 394
Erhaltene Danke: 7
|
Verfasst: Mi 27.07.11 20:07
Ich brauch euch keinen Quelltext zeigen, weil ich keinen habe. Ich bekomme nichteinmal das "Sample Project" zum laufen..
|
|
jaenicke
      
Beiträge: 19313
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mi 27.07.11 21:10
|
|