| | |
| | | |
| | | std::string tmp_stamp_sents = FunASRGetStampSents(result); |
| | | if (tmp_stamp_sents != "") { |
| | | LOG(INFO) << "offline stamp_sents : " << tmp_stamp_sents; |
| | | jsonresult["stamp_sents"] = tmp_stamp_sents; |
| | | try{ |
| | | nlohmann::json json_stamp = nlohmann::json::parse(tmp_stamp_sents); |
| | | LOG(INFO) << "offline stamp_sents : " << json_stamp; |
| | | jsonresult["stamp_sents"] = json_stamp; |
| | | }catch (std::exception const &e) |
| | | { |
| | | LOG(ERROR)<< tmp_stamp_sents << e.what(); |
| | | jsonresult["stamp_sents"] = ""; |
| | | } |
| | | } |
| | | |
| | | return jsonresult; |
| | |
| | | } |
| | | |
| | | // hotwords: fst/nn |
| | | if(msg_data->hotwords_embedding == NULL){ |
| | | if(msg_data->hotwords_embedding == nullptr){ |
| | | std::unordered_map<std::string, int> merged_hws_map; |
| | | std::string nn_hotwords = ""; |
| | | |
| | |
| | | msg_data->msg["audio_fs"] = jsonresult["audio_fs"]; |
| | | } |
| | | if (jsonresult.contains("chunk_size")) { |
| | | if (msg_data->tpass_online_handle == NULL) { |
| | | if (msg_data->tpass_online_handle == nullptr) { |
| | | std::vector<int> chunk_size_vec = |
| | | jsonresult["chunk_size"].get<std::vector<int>>(); |
| | | // check chunk_size_vec |
| | |
| | | if ((jsonresult["is_speaking"] == false || |
| | | jsonresult["is_finished"] == true) && |
| | | msg_data->msg["is_eof"] != true && |
| | | msg_data->hotwords_embedding != NULL) { |
| | | msg_data->hotwords_embedding != nullptr) { |
| | | 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 && msg_data->hotwords_embedding != NULL) { |
| | | if (msg_data->msg["is_eof"] != true && msg_data->hotwords_embedding != nullptr) { |
| | | std::vector<std::vector<float>> hotwords_embedding_(*(msg_data->hotwords_embedding)); |
| | | msg_data->strand_->post( |
| | | std::bind(&WebSocketServer::do_decoder, this, |