Adding warm up for Zipformer2 (#766)
Signed-off-by: manickavela1998@gmail.com <manickavela1998@gmail.com>
This commit is contained in:
@@ -95,6 +95,11 @@ void OnlineWebsocketDecoder::InputFinished(std::shared_ptr<Connection> c) {
|
||||
c->eof = true;
|
||||
}
|
||||
|
||||
void OnlineWebsocketDecoder::Warmup() const {
|
||||
recognizer_->WarmpUpRecognizer(config_.recognizer_config.model_config.warm_up,
|
||||
config_.max_batch_size);
|
||||
}
|
||||
|
||||
void OnlineWebsocketDecoder::Run() {
|
||||
timer_.expires_after(std::chrono::milliseconds(config_.loop_interval_ms));
|
||||
|
||||
@@ -242,6 +247,24 @@ void OnlineWebsocketServer::Run(uint16_t port) {
|
||||
server_.set_reuse_addr(true);
|
||||
server_.listen(asio::ip::tcp::v4(), port);
|
||||
server_.start_accept();
|
||||
auto recognizer_config = config_.decoder_config.recognizer_config;
|
||||
int32_t warm_up = recognizer_config.model_config.warm_up;
|
||||
const std::string &model_type = recognizer_config.model_config.model_type;
|
||||
if (0 < warm_up && warm_up < 100) {
|
||||
if (model_type == "zipformer2") {
|
||||
decoder_.Warmup();
|
||||
SHERPA_ONNX_LOGE("Warm up completed : %d times.", warm_up);
|
||||
} else {
|
||||
SHERPA_ONNX_LOGE("Only Zipformer2 has warmup support for now.");
|
||||
SHERPA_ONNX_LOGE("Given: %s", model_type.c_str());
|
||||
exit(0);
|
||||
}
|
||||
} else if (warm_up == 0) {
|
||||
SHERPA_ONNX_LOGE("Starting without warmup!");
|
||||
} else {
|
||||
SHERPA_ONNX_LOGE("Invalid Warm up Value!. Expected 0 < warm_up < 100");
|
||||
exit(0);
|
||||
}
|
||||
decoder_.Run();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user