def CognitiveSystem(Window, SpeechToNLPQueue): # Create GUI signal objects SpeechSignal = GUISignal() SpeechSignal.signal.connect(Window.UpdateSpeechBox) ConceptExtractionSignal = GUISignal() ConceptExtractionSignal.signal.connect(Window.UpdateConceptExtractionBox) # Initialize BT framework parameters execfile("bt_parameters.py") # Setup BT Framework blackboard = Blackboard() root = py_trees.composites.Sequence("Root_1") IG = be.InformationGathering() TC = be.TextCollection() V = be.Vectorize() PS = be.ProtocolSelector() root.add_children([TC, IG, V, PS, be.protocols]) behaviour_tree = py_trees.trees.BehaviourTree(root) behaviour_tree.add_pre_tick_handler(pre_tick_handler) behaviour_tree.setup(15) Concepts_Graph = dict() SpeechText = "" NLP_Items = [] Tick_Counter = 1 while True: # Get queue item from the Speech-to-Text Module received = SpeechToNLPQueue.get() print("Received chunk") if (received == 'Kill'): print( "Cognitive System Thread received Kill Signal. Killing Cognitive System Thread." ) break if (Window.reset == 1): print( "Cognitive System Thread Received reset signal. Killing Cognitive System Thread." ) return # If item received from queue is legitmate else: #sentsList = [received.transcript] # Use online tool to find sentence boundaries dummy12 = received.transcript dummy12 = dummy12.replace('\r', '').replace('\n', '') dummyP2 = dummy12.replace(' ', '%20') dummyP3 = dummyP2.replace('\'', '%27') dummyP = dummyP3.replace('&', '%26') part1 = 'curl -d text=' + dummyP + ' http://bark.phon.ioc.ee/punctuator' op = commands.getstatusoutput(part1) output = op[1].rsplit('\n', 1)[1] sentsList = textParse2.sent_tokenize(output) #final sentences # Processes each chunk/sentence PunctuatedAndHighlightedText = "" for idx, item in enumerate(sentsList): blackboard.text = [item] behaviour_tree.tick_tock(sleep_ms=50, number_of_iterations=1, pre_tick_handler=None, post_tick_handler=None) pr, sv_s, s = TickResults(Window, NLP_Items) PunctuatedAndHighlightedTextChunk = item for sv in sv_s: if (sv[5] == Tick_Counter ): # if new concept found in this tick try: i = re.search( r'%s' % sv[3], PunctuatedAndHighlightedTextChunk).start() PunctuatedAndHighlightedTextChunk = str( PunctuatedAndHighlightedTextChunk[:i] + '<span style="background-color: #FFFF00">' + PunctuatedAndHighlightedTextChunk[i:i + len(sv[3])] + '</span>' + PunctuatedAndHighlightedTextChunk[i + len(sv[3]):]) except Exception as e: pass PunctuatedAndHighlightedText += PunctuatedAndHighlightedTextChunk + " " Tick_Counter += 1 if (Window.reset == 1): print( "Cognitive System Thread Received reset signal. Killing Cognitive System Thread." ) return PunctuatedAndHighlightedText = '<b>' + PunctuatedAndHighlightedText + '</b>' SpeechSignal.signal.emit([ SpeechNLPItem(PunctuatedAndHighlightedText, received.isFinal, received.confidence, received.numPrinted, 'NLP') ])
vt.pop(idx) for idx, it in enumerate(vt): temp = it.split('-') vt[idx] = (temp[0], temp[1]) chunked_vt = list(np.array_split(vt, len(chunks))) blackboard = Blackboard() root = py_trees.composites.Sequence("Root_1") IG = be.InformationGathering() TC = be.TextCollection() V = be.Vectorize() PS = be.ProtocolSelector() root.add_children([TC, IG, V, PS, be.protocols]) behaviour_tree = py_trees.trees.BehaviourTree(root) behaviour_tree.add_pre_tick_handler(pre_tick_handler) behaviour_tree.setup(15) for idx, item in enumerate(chunks): blackboard.text = [item] blackboard.inC = list(chunked_vt[idx]) behaviour_tree.tick_tock(sleep_ms=50, number_of_iterations=1, pre_tick_handler=None, post_tick_handler=None) res = [] for key in blackboard.feedback: if blackboard.feedback[key] > 0.1: res.append((key, blackboard.feedback[key])) temp_int.append(res) print blackboard.candi[0] print res pred_int.append(temp_int)