Watson Nodejs语音到文本 - 训练语言模型

时间:2016-08-17 18:45:25

标签: node.js modeling speech-to-text ibm-watson

我一直在使用watson-speech@^0.7.5为体育用户生成流媒体视频(HLS)的字幕。

此外,我已经能够训练语言模型。

我想将RecognElement和我的customization_id用于我训练有素的语言模型。但是,我有两个问题:

1)我认为RecognElement已被弃用

我正在使用的库调用是

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。

在查看recogn-stream.js时,我注意到OPENING_MESSAGE_PARAMS_ALLOWED和QUERY_PARAMS_ALLOWED都支持customization_id。

我可以确定下拉源并进行更改但是再次识别元素已经消失。

谢谢, 亚伦。

1 个答案:

答案 0 :(得分:1)

我向您发送了一封电子邮件,其中包含其他一些详细信息,但我会在此处复制重要部分,以防其他人有同样的问题:

removed recognizeElement() in v0.15有几个原因:

  • 降低转录质量 - 音频经过几个额外的转换步骤,导致转录质量低于其他转录特定来源的方法

  • 输出不一致 - 由于浏览器的怪癖,原始音频流在播放之间略有不同,在某些情况下会导致略有不同的转录。这使得STT服务看起来不一致。

  • 暂停/快进/快退的奇怪 - 转录是听到扬声器传出来的音频,这意味着倒带将会重复单词,暂停可能导致单词出现分成两半等。延长暂停或静默期也会导致转录超时。

我推荐的解决方案是执行转录服务器端,使用ffmpeg提取和转换音频,然后将结果重新格式化为WebVVT format,并将其作为subtitles track附加该视频。它的工作量更大,但效果会更好。

我已经向语音小组询问了将WebVVT添加为输出格式以简化此操作,但我不知道它是否/何时会发生。

更新:如果您真的想在SDK的当前版本中使用旧的recognizeElement()方法,我会将其作为示例回来:https://github.com/watson-developer-cloud/speech-javascript-sdk/tree/master/examples/static/audio-video-deprecated

要回答第二个问题,现在从v0.20开始接受customization_id。请注意,公共STT服务目前不支持自定义。