diff --git a/grpc/CMakeLists.txt b/grpc/CMakeLists.txt index 3d1ef8a..7bcb39b 100644 --- a/grpc/CMakeLists.txt +++ b/grpc/CMakeLists.txt @@ -14,7 +14,7 @@ add_custom_command( -I "${PROTO_DIR}" --plugin=protoc-gen-grpc=${GRPC_BINARY_DIR}/grpc_cpp_plugin ${PROTO_DIR}/wenet.proto) - +find_package(gflags REQUIRED) add_library(wenet_grpc STATIC grpc_client.cc grpc_server.cc @@ -23,12 +23,13 @@ add_library(wenet_grpc STATIC target_link_libraries(wenet_grpc PUBLIC ${REFLECTION} ${GRPC_GRPCPP} ${PROTOBUF_LIBPROTOBUF} decoder) - +message("gflags_INCLUDE_DIR:${gflags_INCLUDE_DIR}") +include_directories(${gflags_INCLUDE_DIR}) add_executable(grpc_server_main grpc_server_main.cc) -target_link_libraries(grpc_server_main wenet_grpc ${third_party_libraries} ${REFLECTION} +target_link_libraries(grpc_server_main wenet_grpc gflags_nothreads ${REFLECTION} ${GRPC_GRPCPP} ${PROTOBUF_LIBPROTOBUF} ) add_executable(grpc_client_main grpc_client_main.cc) -target_link_libraries(grpc_client_main wenet_grpc ${third_party_libraries} ${REFLECTION} +target_link_libraries(grpc_client_main wenet_grpc gflags_nothreads ${REFLECTION} ${GRPC_GRPCPP} ${PROTOBUF_LIBPROTOBUF} ) \ No newline at end of file diff --git a/grpc/grpc_client_main.cc b/grpc/grpc_client_main.cc index f2d226d..3671925 100644 --- a/grpc/grpc_client_main.cc +++ b/grpc/grpc_client_main.cc @@ -16,7 +16,7 @@ #include "grpc/grpc_client.h" #include "utils/flags.h" #include "utils/timer.h" - +#include "gflags/gflags.h" DEFINE_string(hostname, "127.0.0.1", "hostname of websocket server"); DEFINE_int32(port, 10086, "port of websocket server"); DEFINE_int32(nbest, 1, "n-best of decode result"); @@ -24,22 +24,22 @@ DEFINE_string(wav_path, "", "test wav file path"); DEFINE_bool(continuous_decoding, false, "continuous decoding mode"); int main(int argc, char* argv[]) { - gflags::ParseCommandLineFlags(&argc, &argv, false); - google::InitGoogleLogging(argv[0]); - wenet::GrpcClient client(FLAGS_hostname, FLAGS_port, FLAGS_nbest, + gflags::ParseCommandLineFlags(&argc, &argv, false); + google::InitGoogleLogging(argv[0]); + wenet::GrpcClient client(FLAGS_hostname, FLAGS_port, FLAGS_nbest, FLAGS_continuous_decoding); - wenet::WavReader wav_reader(FLAGS_wav_path); - const int sample_rate = 16000; - // Only support 16K - CHECK_EQ(wav_reader.sample_rate(), sample_rate); - const int num_samples = wav_reader.num_samples(); - std::vector pcm_data(wav_reader.data(), + wenet::WavReader wav_reader(FLAGS_wav_path); + const int sample_rate = 16000; + // Only support 16K + CHECK_EQ(wav_reader.sample_rate(), sample_rate); + const int num_samples = wav_reader.num_samples(); + std::vector pcm_data(wav_reader.data(), wav_reader.data() + num_samples); - // Send data every 0.5 second - const float interval = 0.5; - const int sample_interval = interval * sample_rate; - for (int start = 0; start < num_samples; start += sample_interval) { + // Send data every 0.5 second + const float interval = 0.5; + const int sample_interval = interval * sample_rate; + for (int start = 0; start < num_samples; start += sample_interval) { if (client.done()) { break; } @@ -55,10 +55,10 @@ int main(int argc, char* argv[]) { VLOG(2) << "Send " << data.size() << " samples"; std::this_thread::sleep_for( std::chrono::milliseconds(static_cast(interval * 1000))); - } - wenet::Timer timer; + } + wenet::Timer timer; - client.Join(); - VLOG(2) << "Total latency: " << timer.Elapsed() << "ms."; - return 0; + client.Join(); + VLOG(2) << "Total latency: " << timer.Elapsed() << "ms."; + return 0; } diff --git a/grpc/grpc_server_main.cc b/grpc/grpc_server_main.cc index 1f69e56..9dd3a5d 100644 --- a/grpc/grpc_server_main.cc +++ b/grpc/grpc_server_main.cc @@ -15,7 +15,7 @@ #include #include #include - +#include "gflags/gflags.h" #include "decoder/params.h" #include "grpc/grpc_server.h" @@ -26,25 +26,25 @@ using grpc::Server; using grpc::ServerBuilder; int main(int argc, char* argv[]) { - gflags::ParseCommandLineFlags(&argc, &argv, false); - google::InitGoogleLogging(argv[0]); + gflags::ParseCommandLineFlags(&argc, &argv, false); + google::InitGoogleLogging(argv[0]); - auto decode_config = wenet::InitDecodeOptionsFromFlags(); - auto feature_config = wenet::InitFeaturePipelineConfigFromFlags(); - auto decode_resource = wenet::InitDecodeResourceFromFlags(); + auto decode_config = wenet::InitDecodeOptionsFromFlags(); + auto feature_config = wenet::InitFeaturePipelineConfigFromFlags(); + auto decode_resource = wenet::InitDecodeResourceFromFlags(); - wenet::GrpcServer service(feature_config, decode_config, decode_resource); - grpc::EnableDefaultHealthCheckService(true); - grpc::reflection::InitProtoReflectionServerBuilderPlugin(); - ServerBuilder builder; - std::string address("0.0.0.0:" + std::to_string(FLAGS_port)); - builder.AddListeningPort(address, grpc::InsecureServerCredentials()); - builder.RegisterService(&service); - builder.SetSyncServerOption(ServerBuilder::SyncServerOption::NUM_CQS, + wenet::GrpcServer service(feature_config, decode_config, decode_resource); + grpc::EnableDefaultHealthCheckService(true); + grpc::reflection::InitProtoReflectionServerBuilderPlugin(); + ServerBuilder builder; + std::string address("0.0.0.0:" + std::to_string(FLAGS_port)); + builder.AddListeningPort(address, grpc::InsecureServerCredentials()); + builder.RegisterService(&service); + builder.SetSyncServerOption(ServerBuilder::SyncServerOption::NUM_CQS, FLAGS_workers); - std::unique_ptr server(builder.BuildAndStart()); - LOG(INFO) << "Listening at port " << FLAGS_port; - server->Wait(); - google::ShutdownGoogleLogging(); - return 0; + std::unique_ptr server(builder.BuildAndStart()); + LOG(INFO) << "Listening at port " << FLAGS_port; + server->Wait(); + google::ShutdownGoogleLogging(); + return 0; }