#include #include #include #include #include #include #include #include #include #include #include #include #include #include "paraformer.grpc.pb.h" #include "libfunasrapi.h" using grpc::Server; using grpc::ServerBuilder; using grpc::ServerContext; using grpc::ServerReader; using grpc::ServerReaderWriter; using grpc::ServerWriter; using grpc::Status; using paraformer::Request; using paraformer::Response; using paraformer::ASR; typedef struct { std::string msg; float snippet_time; }FUNASR_RECOG_RESULT; class ASRServicer final : public ASR::Service { private: int init_flag; std::unordered_map client_buffers; std::unordered_map client_transcription; public: ASRServicer(std::map& model_path); void clear_states(const std::string& user); void clear_buffers(const std::string& user); void clear_transcriptions(const std::string& user); void disconnect(const std::string& user); grpc::Status Recognize(grpc::ServerContext* context, grpc::ServerReaderWriter* stream); FUNASR_HANDLE AsrHanlde; };