Autor Beitrag
Nano-Ware
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 394
Erhaltene Danke: 7



BeitragVerfasst: 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)

ausblenden volle Höhe 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 394
Erhaltene Danke: 7



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1054
Erhaltene Danke: 78

Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
BeitragVerfasst: So 24.07.11 13:10 
www.delphipraxis.net...spracherkennung.html

Stichwort: SAPI (Speech-API von Windows)

_________________
Wissenschaft schafft Wissenschaft, denn Wissenschaft ist Wissenschaft, die mit Wissen und Schaffen Wissen schafft. (myself)
Nano-Ware Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 394
Erhaltene Danke: 7



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1054
Erhaltene Danke: 78

Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 394
Erhaltene Danke: 7



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1054
Erhaltene Danke: 78

Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 394
Erhaltene Danke: 7



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1054
Erhaltene Danke: 78

Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
BeitragVerfasst: 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

_________________
Wissenschaft schafft Wissenschaft, denn Wissenschaft ist Wissenschaft, die mit Wissen und Schaffen Wissen schafft. (myself)
Nano-Ware Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 394
Erhaltene Danke: 7



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19313
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 25.07.11 19:11 
user profile iconNano-Ware hat folgendes geschrieben Zum zitierten Posting springen:
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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 394
Erhaltene Danke: 7



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19313
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 394
Erhaltene Danke: 7



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 616
Erhaltene Danke: 33

Win XP, Vista, 7
Delphi 5 Prof., BDS 2006 Prof. RAD Studio XE
BeitragVerfasst: Mi 27.07.11 08:38 
user profile iconNano-Ware hat folgendes geschrieben Zum zitierten Posting springen:
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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 394
Erhaltene Danke: 7



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19313
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 27.07.11 21:10 
user profile iconNano-Ware hat folgendes geschrieben Zum zitierten Posting springen:
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:

user profile iconNano-Ware hat folgendes geschrieben Zum zitierten Posting springen:
, 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.