2016-08-17 33 views
2

我一直在使用[email protected]^0.5为流媒体视频(HLS)生成字幕给体育用户。Watson Nodejs Speech To Text - 训练语言模型

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

我想为训练有素的语言模型使用recognitionElement和我的customization_id。不过,我有2个问题:

1)我觉得recognizeElement已弃用

库调用我现在用的就是

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()); 

不过,我注意到,沃森语音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的。

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

我可以确定拉下来源并做出更改但是再次认出元素消失了。

谢谢, 亚伦。

回答

1

我给你发了电子邮件与其他一些细节,但我会继续前进,如果任何人在这里复制的重要组成部分有同样的问题:

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

  • 精简转录质量 - 音频经过一些额外的转换步骤而导致低质量比改编录制一个给定的源

  • 不一致输出的其他方法 - 由于兄弟在某些情况下,原始音频流在不同回放之间会略有不同,从而导致细微差别的转录。这使得STT服务看起来不一致。

  • 暂停/快进/快退的奇怪 - 音频是从音频中听到的,这意味着重绕将重复单词,暂停可能导致单词被分成两半,等等延长的停顿或沉默时间也会导致转录超时。

我推荐的解决方案是进行转录服务器端,使用ffmpeg提取和转换音频,然后将结果重新格式化为WebVVT format,并且将它们作为对视频subtitles track。这是更多的工作,但它会产生更好的结果。

我已经要求演讲团队关于添加WebVVT作为输出格式来简化此操作,但我不知道它是否会/何时会发生。

更新:如果你真的想使用旧recognizeElement()方法与SDK的当前版本中,我把它带回为例:https://github.com/watson-developer-cloud/speech-javascript-sdk/tree/master/examples/static/audio-video-deprecated

要回答第二个问题,一个customization_id现已公认是的v0.20。请注意,公共STT服务目前不支持定制。