Я получил более одной окончательной расшифровки облачного сервиса IBM «Речь в текст» - PullRequest
0 голосов
/ 18 апреля 2020

Я работаю со службой «Речь в текст» над проектом в Angular, я преобразовываю голос, поступающий с микрофона, в текст, и когда я получаю транскрипцию, иногда служба возвращает более одной окончательной транскрипции. Есть какой-то способ контролировать это, поскольку мне нужен только один окончательный транскрипт, возвращенный.

Это параметры, которые я отправляю службе

 accessToken: a.token,
      format: true,
      extractResults: true,
      objectMode: true,
      model: "es-PE_NarrowbandModel"
  var rsOpts = assign(
    {
      contentType: 'audio/l16;rate=16000',
      interimResults: true,
      keywords: ["ok", "okay"],
      keywordsThreshold: 0.5,
      wordConfidence: true,
      backgroundAudioSuppressio: 0.5,
      inactivity_timeout: -1
    },
    options
  );

В документации упоминается, что В interimResults количество транскриптов ограничено, но если указать значение false, я не получаю транскриптов

1 Ответ

0 голосов
/ 20 апреля 2020

Если вы не хотите interimResults, тогда это должно быть установлено на false. Это не даст вам никаких результатов, если это не final. Если вы хотите увидеть только 1 конечный результат, вам нужно установить maxAlternatives на 1.

Если вы получаете результаты только при включении interimResults, это означает, что вы никогда не получите окончательную транскрипцию. ie. аудио вход никогда не заканчивается. Вам может потребоваться изменить inactivityTimeout на достаточно большое значение, чтобы игнорировать паузы между предложениями, но меньше значения по умолчанию, равного 30 секундам, чтобы можно было определить конец дорожки.

...