Watson Nodejs Speech To Text - обучающая языковая модель

Я использовал watson-speech@^0.7.5 для создания субтитров для потокового видео (HLS) для спортивных клиентов.

Кроме того, я смог тренировать языковые модели.

Я хотел бы использовать распознаваниеElement и мой customization_id для моей обученной языковой модели. Однако у меня есть 2 проблемы:

1) Я думаю, что признатьElement устарело

Я использую библиотечный вызов

videoProps.stream = WatsonSpeechToText.recognizeElement({
      element: myMediaElement,
      token: videoProps.ctx.token,
      muteSource: false,
      autoPlay: false,
      model:videoProps.ctx.currentModel,
      timestamps: true,
      profanity_filter: true,
      inactivity_timeout: -1,
      continuous: true
    })
    .pipe(new WatsonSpeechToText.FormatStream());

Однако я заметил, что watson-speech 0.19.3, API был удален. Есть ли альтернатива сейчас?

Кроме того, я хотел бы использовать пользовательскую языковую модель, которую я обучил. Будет ли этот API обновлен для включения следующего вызова?

element: myMediaElement,
          token: videoProps.ctx.token,
          muteSource: false,
          autoPlay: false,
          customization_id:videoProps.ctx.currentModel.replace('custom:',''),
          timestamps: true,
          profanity_filter: true,
          inactivity_timeout: -1,
          continuous: true

2) Я не думаю, что API поддерживает customization_id.

Заглянув в файл learn-stream.js, я заметил, что OPENING_MESSAGE_PARAMS_ALLOWED и QUERY_PARAMS_ALLOWED не поддерживают customization_id.

Я могу с уверенностью вытащить источник и внести изменения, но, опять же, распознать, что элемент пропал.

Спасибо, Аарон.


person Aaron B    schedule 17.08.2016    source источник


Ответы (1)


Я отправил вам электронное письмо с некоторыми другими деталями, но я скопирую здесь важные части на случай, если у кого-то еще возникнет такой же вопрос:

Я удалил опознавание элемента () в версии 0.15. по нескольким причинам:

  • Сниженное качество транскрипции - аудио проходит пару дополнительных шагов преобразования, что привело к более низкому качеству транскрипции, чем другие методы транскрипции данного источника.

  • Несогласованный вывод - из-за особенностей браузера необработанный аудиопоток будет немного отличаться от одного воспроизведения к другому, что в некоторых случаях приводит к слегка различающейся транскрипции. Это сделало сервис STT непоследовательным.

  • Странности с паузой / быстрой перемоткой вперед / назад - транскрипция предназначена для звука, поскольку он слышен из динамиков, что означает, что при перемотке назад будут повторяться слова, пауза может привести к разделению слова пополам и т. Д. молчания также может вызвать тайм-аут транскрипции.

Мое рекомендуемое решение - выполнить транскрипцию на стороне сервера, используя ffmpeg для извлечения и преобразования аудио, а затем переформатировать результаты в формат WebVVT и прикрепите их как дорожка субтитров на видео. Это больше работы, но дает значительно лучшие результаты.

Я попросил команду Speech добавить WebVVT в качестве формата вывода, чтобы упростить это, но я не знаю, произойдет ли это и когда это произойдет.

Обновление: если вы действительно хотите использовать старый метод recognizeElement() с текущим выпуском SDK, я вернул его в качестве примера: https://github.com/watson-developer-cloud/speech-javascript-sdk/tree/master/examples/static/audio-video-deprecated

Чтобы ответить на второй вопрос, с v0.20 теперь принято customization_id. Обратите внимание, что общедоступная служба STT в настоящее время не поддерживает настройку.

person Nathan Friedly    schedule 17.08.2016