node.js - Watson Nodejs Speech To Text - 训练语言模型

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

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

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

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

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

但是,我注意到 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。

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

我肯定可以拉下源代码并进行更改,但同样,识别元素已消失。

谢谢, 亚伦。

最佳答案

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

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。但请注意,公共(public) STT 服务目前不支持定制。

关于node.js - Watson Nodejs Speech To Text - 训练语言模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39004133/

相关文章:

Node.js/Grunt 导出日志到文件

javascript - 异步链接模式

java - 具有与数据库对象不同的字段的聚合是否正确?

modeling - 如何在软件中表示道路系统?

android - 如何在数字 EditText 上启用语音输入?

javascript - 谷歌云语音 api javascript/angular

javascript - 在 Node.js 中解析没有 ID 或 CSS 选择器的 HTML 表格

javascript - 如何重命名 mongodb 响应键?

uml - 领域类图和设计类图有什么区别?

java - 一款使用语音识别来计算说出的单词数的应用程序