Speech recognition continuing to run after word processed?

Maybe it’s a problem elsewhere but it appears rec.recognise isn’t ending when a word is recognised.

With the code below the text on the LCD ‘Before voice’ is instant. The ‘After voice’ is written slowly across the screen.

#include <Sipeed_ST7789.h>
#include "Maix_Speech_Recognition.h"
#include "voice_model.h"

SpeechRecognizer rec;
SPIClass spi_(SPI0); 
Sipeed_ST7789 lcd(320, 240, spi_);

void auth_voice()
{
  rec.begin();
  rec.addVoiceModel(0, 0, red, fram_num_red);
  int res;
  res = rec.recognize();
  Serial.printf("res : %d ", res);
}

void setup() {
  Serial.begin(115200);
  lcd.begin(15000000, COLOR_BLACK);
  lcd.setTextSize(2);
  lcd.setCursor(10, 40);
  lcd.println("Before voice...");
  auth_voice();
  lcd.setCursor(10, 80);
  lcd.println("After voice...");
}

void loop() {
}

When the word ‘red’ is recognised I see this in Serial…

speeking…
vad ok
mfcc ok
no. 1, frm_num = 19, save_mask=12345cur_dis=417
[INFO] recg cycle = 0x001a8acf
res : 1