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 111 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.334

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

_______________________________________

Dragon Professional 16 auf Windows 10 Pro und Windows 11
SpeechMike Premium (LFH3500); Office 2019 Pro + Office 365 (monatliches Abo)
HP ZBook Fury 17 G8 - i7-11800H - 24 MB SmartCache - 32 GB RAM - 1 TB SSD

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.334

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

_______________________________________

Dragon Professional 16 auf Windows 10 Pro und Windows 11
SpeechMike Premium (LFH3500); Office 2019 Pro + Office 365 (monatliches Abo)
HP ZBook Fury 17 G8 - i7-11800H - 24 MB SmartCache - 32 GB RAM - 1 TB SSD

Ähnliche Themen Antworten/Neu Letzter Beitrag⁄Zugriffe
Teile des Diktats in Word "verschluckt"
Erstellt im Forum Fehlermeldungen von HalbMenschHalbKeks
1 16.03.2022 18:20
von HalbMenschHalbKeks • Zugriffe: 272
Probleme nach Wechsel Dragon 13 nach 15
Erstellt im Forum Fragen zur Anwendung von bkroll
2 11.04.2022 00:43
von bkroll • Zugriffe: 397
Großbuchstabe statt Großschreibung des diktierten Wortes
Erstellt im Forum Fehlermeldungen von royaltyrant
6 21.01.2022 14:20
von P.Roch • Zugriffe: 371
Smileys bei Microsoft Word führen zum Absturz von Dragon
Erstellt im Forum Fragen zur Anwendung von Lena
3 29.01.2022 14:39
von Lena • Zugriffe: 374
Arbeiten mit Serverprofilen
Erstellt im Forum Fragen zur Anwendung von schwarzweiß92
1 27.12.2021 09:44
von P.Roch • Zugriffe: 244
Dragon Naturallyspeaking 13 und Office 2019, Outlook stürzt ab.
Erstellt im Forum Fragen zur Anwendung von 7D
2 01.12.2021 12:54
von pesa • Zugriffe: 524
Problem bei Ersteinrichtung. -Fehler das ausgesuchte Soundsystem reagiert nicht
Erstellt im Forum Fragen zur Anwendung von Ruffy83
4 10.11.2021 17:42
von P.Roch • Zugriffe: 696
Sprachoptimierung ständig / wird wohl nicht gespeichert?
Erstellt im Forum Fragen zur Anwendung von egal1984
1 23.10.2021 15:13
von Marius_ • Zugriffe: 334
Uhrzeit + Taskleistensymbole verschwinden
Erstellt im Forum Fehlermeldungen von BerlinerDrache
4 05.07.2021 10:55
von Marius_ • Zugriffe: 397
Problem mit der Genauigkeitsoptimierung
Erstellt im Forum Fehlermeldungen von JOCA
10 14.06.2021 12:30
von Marius_ • Zugriffe: 757
 Sprung  
Xobor Ein Kostenloses Forum | Einfach ein Forum erstellen
Datenschutz