def run(self, file_path): for i in range(5): client = AsrClient(self.url, self.port, None, self.enable_flush_data, log_level=self.log_level, product_id=self.product_id, sample_rate=self.sample_rate, user_name=self.user_name, password=self.password) responses = client.get_result(file_path) file_content = "" try: for response in responses: if response.type == baidu_acu_asr.audio_streaming_pb2.FRAGMENT_DATA: file_content += response.audio_fragment.result logging.info(file_content) else: logging.warning("type is: %d", response.type) self.write_file(file_path + ".txt", file_content) logging.info("file %s write complete!", file_path) break except Exception as ex: # 如果出现异常,此处需要重试当前音频 logging.error( "encounter an error: %s, will create a new channel and retry audio!", ex.message) time.sleep(0.5)
def run(): """ 添加失败重传 :return: """ for i in range(5): client = AsrClient(url, port, None, enable_flush_data, log_level=log_level, product_id=product_id, sample_rate=sample_rate, user_name=user_name, password=password) responses = client.get_result("/path/of/audio.wav") try: for response in responses: if response.type == baidu_acu_asr.audio_streaming_pb2.FRAGMENT_DATA: logging.info("%s\t%s\t%s\t%s", response.audio_fragment.start_time, response.audio_fragment.end_time, response.audio_fragment.result, response.audio_fragment.serial_num) else: logging.warning("type is: %d", response.type) break except Exception as ex: # 如果出现异常,此处需要重试当前音频 logging.error( "encounter an error: %s, will create a new channel and retry audio! times : %d", ex.message, i + 1) time.sleep(0.5)
def run(self, file_path): while True: client = AsrClient(self.url, self.port, self.product_id, self.enable_flush_data, log_level=self.log_level, send_per_seconds=0.02, user_name=user_name, password=password) responses = client.get_result(file_path) file_content = "" try: for response in responses: if response.type == baidu_acu_asr.audio_streaming_pb2.FRAGMENT_DATA: file_content += response.audio_fragment.result logging.info(file_content) else: logging.warning("type is: %d", response.type) self.write_file(file_path + ".txt", file_content) logging.info("file %s write complete!", file_path) break except: # 如果出现异常,此处需要重试当前音频 logging.error( "connect to server error, will create a new channel and retry audio!" ) time.sleep(0.5)
def run(self, repeat_num=1): i = 0 # ip和端口可根据需要修改 url = "180.76.107.131" port = "8050" product_id = AsrProduct.CUSTOMER_SERVICE_FINANCE enable_flush_data = True log_level = 0 user_name = "abc" password = "******" client = AsrClient(url, port, product_id, enable_flush_data, log_level=log_level, user_name=user_name, password=password) name = threading.currentThread().getName() audio_path = "/Users/lijialong02/code/client/data/10s.wav" while i < repeat_num: try: response = client.get_result(audio_path) for res in response: if res.type == baidu_acu_asr.audio_streaming_pb2.FRAGMENT_DATA: logging.info("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s", name, str(res.error_code), res.error_message, res.audio_fragment.start_time, res.audio_fragment.end_time, res.audio_fragment.result, res.audio_fragment.serial_num, str(res.audio_fragment.completed)) else: logging.warning("type is: %d", res.type) i += 1 except Exception as ex: # 如果出现异常,此处需要重试当前音频 logging.error( "encounter an error: %s, will create a new channel and retry audio!", ex.message) time.sleep(0.5) client = AsrClient(url, port, product_id, enable_flush_data, log_level=log_level, user_name=user_name, password=password)
def run(): """ 添加失败重传 :return: """ for i in range(30): client = AsrClient(url, port, product_id, enable_flush_data, log_level=log_level, send_per_seconds=0.01, user_name=user_name, password=password) # responses = client.get_result("/Users/xiashuai01/Downloads/10s.wav") responses = client.get_result( "/Users/lijialong02/code/client/data/8k-0.pcm") # responses = client.get_result("/Users/xiashuai01/Downloads/300s.wav") try: for response in responses: if response.type == baidu_acu_asr.audio_streaming_pb2.FRAGMENT_DATA: logging.info("%s\t%s\t%s\t%s", response.audio_fragment.start_time, response.audio_fragment.end_time, response.audio_fragment.result, response.audio_fragment.serial_num) else: logging.warning("type is: %d", response.type) break except: # 如果出现异常,此处需要重试当前音频 logging.error( "connect to server error, will create a new channel and retry audio! times : %d", i + 1) time.sleep(0.5)