| | |
| | | |
| | | #include "asio.hpp" |
| | | #include "com-define.h" |
| | | #include "libfunasrapi.h" |
| | | #include "funasrruntime.h" |
| | | #include "nlohmann/json.hpp" |
| | | #include "tclap/CmdLine.h" |
| | | typedef websocketpp::server<websocketpp::config::asio> server; |
| | |
| | | std::string msg; |
| | | float snippet_time; |
| | | } FUNASR_RECOG_RESULT; |
| | | |
| | | typedef struct { |
| | | nlohmann::json msg; |
| | | std::shared_ptr<std::vector<char>> samples; |
| | | } FUNASR_MESSAGE; |
| | | |
| | | class WebSocketServer { |
| | | public: |
| | |
| | | server_->clear_access_channels(websocketpp::log::alevel::all); |
| | | } |
| | | void do_decoder(const std::vector<char>& buffer, |
| | | websocketpp::connection_hdl& hdl); |
| | | websocketpp::connection_hdl& hdl, const nlohmann::json& msg); |
| | | |
| | | void initAsr(std::map<std::string, std::string>& model_path, int thread_num); |
| | | void on_message(websocketpp::connection_hdl hdl, message_ptr msg); |
| | |
| | | |
| | | // use map to keep the received samples data from one connection in offline |
| | | // engine. if for online engline, a data struct is needed(TODO) |
| | | std::map<websocketpp::connection_hdl, std::shared_ptr<std::vector<char>>, |
| | | |
| | | std::map<websocketpp::connection_hdl, std::shared_ptr<FUNASR_MESSAGE>, |
| | | std::owner_less<websocketpp::connection_hdl>> |
| | | sample_map; |
| | | data_map; |
| | | websocketpp::lib::mutex m_lock; // mutex for sample_map |
| | | }; |
| | | |