|
@@ -72,7 +72,7 @@ class TestSt:
|
|
|
# self.is_closed = False
|
|
|
# self.lock = threading.Lock()
|
|
|
self.logger = logger
|
|
|
- self.__ready = False
|
|
|
+ self.__event = threading.Event()
|
|
|
self.__th = threading.Thread(target=self.__test_run)
|
|
|
self.__id = tid
|
|
|
self.message_receiver = message_receiver
|
|
@@ -85,10 +85,7 @@ class TestSt:
|
|
|
|
|
|
def send_audio(self, audio_data):
|
|
|
if self.sr:
|
|
|
- if self.__ready:
|
|
|
- self.sr.send_audio(audio_data)
|
|
|
- else:
|
|
|
- self.logger.debug("[%s]Sending audio data of length:%s", self.__id, len(audio_data))
|
|
|
+ self.sr.send_audio(audio_data)
|
|
|
# self.logger.debug("Audio data sent.")
|
|
|
# if self.sr and not self.is_closed:
|
|
|
# with self.lock:
|
|
@@ -115,27 +112,30 @@ class TestSt:
|
|
|
def __test_run(self):
|
|
|
self.logger.debug("Thread:%s start..",self.__id)
|
|
|
nls.enableTrace(True)
|
|
|
- self.sr = nls.NlsSpeechTranscriber(
|
|
|
- url=URL,
|
|
|
- token=self._Token,
|
|
|
- appkey=APPKEY,
|
|
|
- on_sentence_begin=self.test_on_sentence_begin,
|
|
|
- on_sentence_end=self.test_on_sentence_end,
|
|
|
- on_start=self.test_on_start,
|
|
|
- on_result_changed=self.test_on_result_chg,
|
|
|
- on_completed=self.test_on_completed,
|
|
|
- on_error=self.test_on_error,
|
|
|
- on_close=self.test_on_close,
|
|
|
- callback_args=[self.__id]
|
|
|
- )
|
|
|
- self.sr.start(
|
|
|
- aformat="pcm",
|
|
|
- enable_intermediate_result=True,
|
|
|
- enable_punctuation_prediction=True,
|
|
|
- enable_inverse_text_normalization=True
|
|
|
- )
|
|
|
- self.sr.ctrl(ex={'max_sentence_silence': '1200ms', 'disfluency': True,'enable_words': True })
|
|
|
- self.logger.debug(f"[{self.__id}]ASR session started.")
|
|
|
+ self.__event.clear()
|
|
|
+ while not self.__event.is_set():
|
|
|
+ self.sr = nls.NlsSpeechTranscriber(
|
|
|
+ url=URL,
|
|
|
+ token=self._Token,
|
|
|
+ appkey=APPKEY,
|
|
|
+ on_sentence_begin=self.test_on_sentence_begin,
|
|
|
+ on_sentence_end=self.test_on_sentence_end,
|
|
|
+ on_start=self.test_on_start,
|
|
|
+ on_result_changed=self.test_on_result_chg,
|
|
|
+ on_completed=self.test_on_completed,
|
|
|
+ on_error=self.test_on_error,
|
|
|
+ on_close=self.test_on_close,
|
|
|
+ callback_args=[self.__id]
|
|
|
+ )
|
|
|
+ self.sr.start(
|
|
|
+ aformat="pcm",
|
|
|
+ enable_intermediate_result=True,
|
|
|
+ enable_punctuation_prediction=True,
|
|
|
+ enable_inverse_text_normalization=True
|
|
|
+ )
|
|
|
+ self.sr.ctrl(ex={'max_sentence_silence': '1200ms', 'disfluency': True,'enable_words': True })
|
|
|
+ self.logger.debug(f"[{self.__id}]ASR session started.")
|
|
|
+ self.__event.wait(timeout=.5)
|
|
|
|
|
|
def test_on_sentence_begin(self, message, *args):
|
|
|
# pass
|
|
@@ -149,7 +149,7 @@ class TestSt:
|
|
|
self.message_receiver(message, *args)
|
|
|
|
|
|
def test_on_start(self, message, *args):
|
|
|
- self.__ready = True
|
|
|
+ self.__event.set()
|
|
|
self.logger.debug("[%s]test_on_start:%s", self.__id, message)
|
|
|
pass
|
|
|
|