Entwickler-Ecke
Multimedia / Grafik - Deutsche Sprachsteuerung und Ausgabe unter Windows 7
Nano-Ware - Sa 23.07.11 00:26
Titel: Deutsche Sprachsteuerung und Ausgabe unter Windows 7
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)
Quelltext
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 - 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?
Nano-Ware - 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 - 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.
Nano-Ware - 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 (:
Nano-Ware - 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 - 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 :D
Nano-Ware - 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:
http://www.blong.com/Conferences/DCon2002/Speech/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 - 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...
http://codecentral.embarcadero.com/Item.aspx?id=19511
Nano-Ware - 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 - 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 - 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 - 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.
Nano-Ware - 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 - Mi 27.07.11 21:10
Nano-Ware hat folgendes geschrieben : |
Beim Starten der Anwendung muss man erstmal ca. 30 Sekunden dafür einplanen, bis das Sprachsteuerungsfenster von Windows aufgeht |
Das dauert bei mir nicht einmal eine halbe Sekunde, das ist instant da. :gruebel:
Nano-Ware hat folgendes geschrieben : |
, um dann zuzuschauen, wie sich die Anwendung einfach sang und klanglos beendet. |
Nicht alle Beispiele funktionieren unter Windows 7 noch genauso, ich bekomme da auch Fehler, habe aber nicht genug Zeit das genauer anzuschauen. Das Projekt ContinuousDictation funktioniert bei mir aber z.B. absolut problemlos.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!