| | |
| | | std::string wav_format, |
| | | FUNASR_HANDLE& tpass_online_handle) { |
| | | // lock for each connection |
| | | scoped_lock guard(thread_lock); |
| | | if(!tpass_online_handle){ |
| | | scoped_lock guard(thread_lock); |
| | | LOG(INFO) << "tpass_online_handle is free, return"; |
| | | msg["access_num"]=(int)msg["access_num"]-1; |
| | | return; |
| | |
| | | hotwords_embedding, itn); |
| | | |
| | | } else { |
| | | scoped_lock guard(thread_lock); |
| | | msg["access_num"]=(int)msg["access_num"]-1; |
| | | return; |
| | | } |
| | | } catch (std::exception const& e) { |
| | | scoped_lock guard(thread_lock); |
| | | LOG(ERROR) << e.what(); |
| | | msg["access_num"]=(int)msg["access_num"]-1; |
| | | return; |
| | |
| | | wav_format, (ASR_TYPE)asr_mode_, |
| | | hotwords_embedding, itn); |
| | | } else { |
| | | scoped_lock guard(thread_lock); |
| | | msg["access_num"]=(int)msg["access_num"]-1; |
| | | return; |
| | | } |
| | | } catch (std::exception const& e) { |
| | | scoped_lock guard(thread_lock); |
| | | LOG(ERROR) << e.what(); |
| | | msg["access_num"]=(int)msg["access_num"]-1; |
| | | return; |
| | |
| | | } catch (std::exception const& e) { |
| | | std::cerr << "Error: " << e.what() << std::endl; |
| | | } |
| | | scoped_lock guard(thread_lock); |
| | | msg["access_num"]=(int)msg["access_num"]-1; |
| | | |
| | | } |
| | |
| | | LOG(INFO) << "jsonresult=" << jsonresult |
| | | << ", msg_data->msg=" << msg_data->msg; |
| | | if ((jsonresult["is_speaking"] == false || |
| | | jsonresult["is_finished"] == true) && msg_data->msg["is_eof"] != true) { |
| | | jsonresult["is_finished"] == true) && |
| | | msg_data->msg["is_eof"] != true && |
| | | msg_data->hotwords_embedding != NULL) { |
| | | LOG(INFO) << "client done"; |
| | | |
| | | // if it is in final message, post the sample_data to decode |
| | |
| | | |
| | | try{ |
| | | // post to decode |
| | | if (msg_data->msg["is_eof"] != true) { |
| | | if (msg_data->msg["is_eof"] != true && msg_data->hotwords_embedding != NULL) { |
| | | std::vector<std::vector<float>> hotwords_embedding_(*(msg_data->hotwords_embedding)); |
| | | msg_data->strand_->post( |
| | | msg_data->strand_->post( |
| | | std::bind(&WebSocketServer::do_decoder, this, |
| | | std::move(subvector), std::move(hdl), |
| | | std::ref(msg_data->msg), |