| | |
| | | switch (msg->get_opcode()) { |
| | | case websocketpp::frame::opcode::text: |
| | | total_recv=total_recv+1; |
| | | LOG(INFO)<< "Thread: " << this_thread::get_id() <<", on_message = " << payload; |
| | | LOG(INFO)<< "Thread: " << this_thread::get_id() << ", total_recv=" << total_recv << " total_send=" <<total_send; |
| | | if(total_recv==total_send) |
| | | LOG(INFO)<< "Thread: " << this_thread::get_id() << ", total_recv=" << total_recv <<", on_message = " << payload; |
| | | std::unique_lock<std::mutex> lock(msg_lock); |
| | | cv.notify_one(); |
| | | if(close_client) |
| | | { |
| | | LOG(INFO)<< "Thread: " << this_thread::get_id() << ", close client"; |
| | | LOG(INFO)<< "Thread: " << this_thread::get_id() << ", close client thread"; |
| | | websocketpp::lib::error_code ec; |
| | | m_client.close(m_hdl, websocketpp::close::status::going_away, "", ec); |
| | | if (ec){ |
| | |
| | | if (i >= wav_list.size()) { |
| | | break; |
| | | } |
| | | if (total_send !=0){ |
| | | std::unique_lock<std::mutex> lock(msg_lock); |
| | | cv.wait(lock); |
| | | } |
| | | total_send += 1; |
| | | send_wav_data(wav_list[i], wav_ids[i], audio_fs, hws_map, send_hotword, use_itn); |
| | | if(send_hotword){ |
| | | send_hotword = false; |
| | | } |
| | | } |
| | | WaitABit(); |
| | | |
| | | close_client = true; |
| | | asio_thread.join(); |
| | | |
| | | } |
| | |
| | | funasr::Audio audio(1); |
| | | int32_t sampling_rate = audio_fs; |
| | | std::string wav_format = "pcm"; |
| | | if(funasr::IsTargetFile(wav_path.c_str(), "wav")){ |
| | | if(!audio.LoadWav(wav_path.c_str(), &sampling_rate, false)) |
| | | return ; |
| | | }else if(funasr::IsTargetFile(wav_path.c_str(), "pcm")){ |
| | | if(funasr::IsTargetFile(wav_path.c_str(), "pcm")){ |
| | | if (!audio.LoadPcmwav(wav_path.c_str(), &sampling_rate, false)) |
| | | return ; |
| | | }else{ |
| | |
| | | private: |
| | | websocketpp::connection_hdl m_hdl; |
| | | websocketpp::lib::mutex m_lock; |
| | | websocketpp::lib::mutex msg_lock; |
| | | websocketpp::lib::condition_variable cv; |
| | | bool m_open; |
| | | bool m_done; |
| | | bool close_client=false; |
| | | int total_send=0; |
| | | int total_recv=0; |
| | | }; |
| | | |
| | | int main(int argc, char* argv[]) { |
| | | #ifdef _WIN32 |
| | | #include <windows.h> |
| | | SetConsoleOutputCP(65001); |
| | | #endif |
| | | google::InitGoogleLogging(argv[0]); |