Sie sind vermutlich noch nicht im Forum angemeldet - Klicken Sie hier um sich kostenlos anzumelden Impressum 
Sie können sich hier anmelden
Dieses Thema hat 3 Antworten
und wurde 25 mal aufgerufen
 Fragen zur Anwendung
mattze96 Offline



Beiträge: 2

30.04.2014 21:12
RE: Natlink Problem mit Threading Zitat · Antworten

Hallo,

ich habe mal hier das Thema eröffnet, weil ich denke, dass es hierhin besser passt. Ansonsten bitte verschieben!


Mein Problem:

Ich habe DNS 12.5 und versuche mit Hilfe von DragonFly/Natlink meine eigene kleine Steuerung zu programmieren. Erkennung klappt hervorragend, ein bisschen Training fehlt aber noch.

Wenn ich "Computer Licht an/aus" sage möchte ich das in diesem Fall mein Script "_icom.py" über eine TCP-Verbindung an meinem Server schickt, dass er das lockt an/aus machen soll. Das manuelle Senden klappt und alles funktioniert bis auf die automatische Verbindung über Sockets.

Momentan habe ich einige Probleme mit Threading in NatLink/DragonFly. Als Test habe ich eine Funktion loop_test() geschrieben, da ich Probleme mit der SocketVerbindung festgestellt habe.

loop_test() wird wie start_tcp_socket() in jeweils einem neuen Thread ausgeführt. Normalerweise sollte mir die Funktion jede Sekunde ein "loop" ausgeben. Dies tut sie aber nicht und macht es irgendwie sehr unregelmäßig. Während ich anfange zu sprechen und wenn DNS meine Eingabe wiederholt gibt es einen Output. ->print "loop" Sonst nicht.

Ich hänge die 80 Zeilen Code meiner _icom.py an.

Meine Frage:
1) Bin ich im richtigen Forum?
2) Ist mein Problem verständlich?
3) Habt ihr irgendwelche Tipps oder ähnliche Programme?

Vielen Dank im Vorraus!

LG
Matthias

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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
 

from dragonfly import (Grammar, AppContext, MappingRule, Dictation,
Key, Text, Function)
import natlink
 
import socket, time
from thread import start_new_thread
 
#---------------------------------------------------------------------------
# Create this module's grammar and the context under which it'll be active.
 
grammar = Grammar("ICOM")
print "ICOM wird geladen..."
 
#---------------------------------------------------------------------------
# Create a mapping rule which maps things you can say to actions.
#
# Note the relationship between the *mapping* and *extras* keyword
# arguments. The extras is a list of Dragonfly elements which are
# available to be used in the specs of the mapping. In this example
# the Dictation("text")* extra makes it possible to use ""
# within a mapping spec and "%(text)s" within the associated action.
 
def start_tcp_socket():
 
TCP_IP = '0.0.0.0'
TCP_PORT = 5005
BUFFER_SIZE = 20 # Normally 1024, but we want fast response
 
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((TCP_IP, TCP_PORT))
s.listen(1)
 
while 1:
print "in loop, waiting for connection"
conn, addr = s.accept()
print 'Connection address:', addr

data = conn.recv(BUFFER_SIZE)
if not data: break
print "received data:", data
conn.send(data) # echo
conn.close()
 
def loop_test():
while 1:
print "loop"
time.sleep(1)

def speak(text):
#natlink.natConnect()
natlink.execScript ("TTSPlayString ""+str(text)+""")
print str(text)
#natlink.natDisconnect()
 
example_rule = MappingRule(
name="example", # The name of the rule.
mapping={ # The mapping dict: spec -> action.
"[Computer] ": Function(speak, extra='text'),
},
extras=[ # Special elements in the specs of the mapping.
Dictation("text"),
],
)
 
# Add the action rule to the grammar instance.
grammar.add_rule(example_rule)
 

#---------------------------------------------------------------------------
# Load the grammar instance and define how to unload it.
 
grammar.load()
 
start_new_thread(start_tcp_socket, ())
start_new_thread(loop_test, ())
 

# Unload function which will be called by natlink at unload time.
def unload():
global grammar
if grammar: grammar.unload()
grammar = None
 

 

R.Wilke Offline



Beiträge: 6.119

30.04.2014 22:14
#2 RE: Natlink Problem mit Threading Zitat · Antworten

Zitat von mattze96
Meine Frage:
1) Bin ich im richtigen Forum?
2) Ist mein Problem verständlich?
3) Habt ihr irgendwelche Tipps oder ähnliche Programme?




zu 1) Möglicherweise, da ich der Mann bin, der es überhaupt ermöglicht hat, dass Sie NatLink in Version 12 verwenden, indem ich den kompletten Quellcode umprogrammiert und darauf angepasst habe.

zu 2) Nein, aber das sind die meisten Fragen zu dem Thema für mich jedenfalls nicht.

zu 3) Nein.

Gruß, RW

_______________________________________

DPG 15.6 (15.60.200.015) auf Windows 10 Pro (64-bit)
SpeechMike Premium (LFH3500) + SpeechMike II
HP ZBook 17 G2 (Refurbished) - i7-4910qm - 8MB SmartCache - 32 GB RAM - 512 GB SSD - 1 TB HSSD - 2 TB HDD

mattze96 Offline



Beiträge: 2

12.05.2014 14:51
#3 RE: Natlink Problem mit Threading Zitat · Antworten

Hallo,

ich habe immernoch keine weiteren Erfolge erzielen können. Der Server-Thread läuft irgendwie weiterhin komisch.
nochmal zu meinem Problem:

ich möchte DNS sozusagen als Server nutzen. Der Server soll erkannte sprache an ein Python script schicken, welches diese dann verarbeitet. DNS sitzt in einer virtuellen Maschine unter Windows und Python Script soll als Client unter Linux laufen. Mein Ziel ist es NUR DNS unter Windows laufen zu lassen und den Rest unter Linux zu betreiben.

Es soll TTS und STT ausgetauscht werden können.

Beispiel:
Ich sage: Computer mach das Licht an.
DNS -> Client: "Computer mach das Licht an"
Client verabeitet und schaltet das Licht ein.
Client -> DNS: "Das Licht wurde an gemacht."
DNS sagt: "Das Licht wurde an gemacht."


Viele Grüße
Matthias

R.Wilke Offline



Beiträge: 6.119

12.05.2014 18:24
#4 RE: Natlink Problem mit Threading Zitat · Antworten

Zitat von mattze96
ich möchte DNS sozusagen als Server nutzen. Der Server soll erkannte sprache an ein Python script schicken, welches diese dann verarbeitet. DNS sitzt in einer virtuellen Maschine unter Windows und Python Script soll als Client unter Linux laufen. Mein Ziel ist es NUR DNS unter Windows laufen zu lassen und den Rest unter Linux zu betreiben.



Das ist nun etwas klarer. Nach meiner langjährigen Lektüre des (mittlerweile von der Bildfläche verschwundenen) Speechcomputing Forums sind Sie nicht der erste, der auf die Idee gekommen ist, wären aber vermutlich der erste, dem es gelingen würde, wenn es Ihnen gelingt.

Meiner Kenntnis des Quell-Codes nach wird es mit NatLink auf keinen Fall gehen, weil NatLink und DNS so zwitterhaft miteinander verwoben sind, dass man sie nur mittels Total-Operation auseinander bekommt - was ich gerade hinter mir habe, aber der Patient liegt noch auf der Intensivstation.

Ob DNS über die Grenzen zwischen einer VM, auf der es läuft, und der die VM umgebenden Linux-Welt (die nicht meine und mir unbekannt ist) hinweg überhaupt operieren kann, halte ich weiterhin für fraglich.

Aber geben Sie nicht auf, ich gebe auch nie auf, sonst hätte ich NatLink nicht für DNS 12 fit gekriegt!

Gruß, RW

_______________________________________

DPG 15.6 (15.60.200.015) auf Windows 10 Pro (64-bit)
SpeechMike Premium (LFH3500) + SpeechMike II
HP ZBook 17 G2 (Refurbished) - i7-4910qm - 8MB SmartCache - 32 GB RAM - 512 GB SSD - 1 TB HSSD - 2 TB HDD

Ähnliche Themen Antworten/Neu Letzter Beitrag⁄Zugriffe
New release of NatLink/Vocola/Unimacro
Erstellt im Forum Skripte und Zusatzprogramme von
0 02.11.2015 20:46
von quintijn • Zugriffe: 45
Dragonfly natlink scripts mit deutschem Profile?
Erstellt im Forum Skripte und Zusatzprogramme von
3 02.11.2015 10:55
von quintijn • Zugriffe: 34
Globales Problem bei Dragon NaturallySpeaking
Erstellt im Forum Fragen zur Anwendung von
24 02.02.2014 12:34
von P.Roch • Zugriffe: 83
Anfängerfrage zu NatLink
Erstellt im Forum Skripte und Zusatzprogramme von
4 28.05.2013 09:13
von jask • Zugriffe: 38
NatLink/Vocola Tester gesucht
Erstellt im Forum Skripte und Zusatzprogramme von
7 02.04.2013 16:48
von R.Wilke • Zugriffe: 35
NatLink 12 steht bereit!
Erstellt im Forum Skripte und Zusatzprogramme von
0 12.02.2013 12:45
von R.Wilke • Zugriffe: 27
Kleines Problem zwischen Acrobat und Dragon
Erstellt im Forum Fragen zur Anwendung von
1 05.09.2012 21:40
von R.Wilke • Zugriffe: 27
Macro scripting with NatLink, Vocola, Dragonfly and/or Unimacro
Erstellt im Forum Skripte und Zusatzprogramme von
0 12.01.2012 23:14
von quintijn • Zugriffe: 37
Problem mit natspeak.exe
Erstellt im Forum Fehlermeldungen von
14 17.01.2011 13:56
von R.Wilke • Zugriffe: 20
 Sprung  
Xobor Ein Kostenloses Forum | Einfach ein Forum erstellen
Datenschutz