Watson Nodejs Speech to Text – 训练语言模型
我一直在使用watson-speech@^0.7.5为体育用户生成stream式video(HLS)的字幕。
此外,我已经能够训练语言模型。
我想使用recognitionElement和我的customization_id来训练我的语言模型。 不过,我有两个问题:
1)我认为元素已经被弃用了
我正在使用的库调用是
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已经被删除了。 现在有没有其他select?
另外,我想用我训练的自定义语言模型。 这个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。
我可以肯定的是拉下来源,然后再做出改变,认出元素消失了。
谢谢,亚伦。
我给你发了一封电子邮件,里面有一些其他的细节,但是我会继续在这里复制重要的部分,以防其他人有同样的问题:
我删除了v0.15中的recognitionElement(),原因如下:
-
降低转录质量 – audio经历了几个额外的转换步骤,导致比其他转录给定源的方法更低质量的转录
-
不一致的输出 – 由于浏览器的怪癖,原始audiostream在播放之间会略有不同,在某些情况下会导致细微的转录。 这使得STT服务看起来不一致。
-
暂停/快进/倒带的奇怪 – audio是从audio中听到的,这意味着倒带会重复出现,暂停可能会导致一个词被分成两半等等。延长的暂停或周期沉默也可能导致转录超时。
我推荐的解决scheme是执行转录服务器端,使用ffmpeg提取并转换audio,然后将结果重新格式化为WebVVT格式 ,并将它们作为字幕轨道附加在video上。 这是更多的工作,但产生更好的结果。
我已经要求演讲团队关于添加WebVVT作为输出格式来简化这一点,但是我不知道是否会/何时会发生。
更新:如果你真的想在SDK的当前版本中使用旧的recognizeElement()
方法,我把它作为一个例子: https : //github.com/watson-developer-cloud/speech-javascript-sdk/树/主/例子/静态/audio-video-弃用
为了回答第二个问题, customization_id
v0.20开始接受customization_id。 请注意,公共STT服务目前不支持自定义。