【问题标题】:Watson NarrowBand Speech to Text not accepting ogg fileWatson NarrowBand Speech to Text 不接受 ogg 文件
【发布时间】:2017-01-19 07:50:24
【问题描述】:

NodeJS 应用程序使用 ffmpeg 从 mp3 和 mp4 创建 ogg 文件。如果源文件是宽带文件,Watson Speech to Text 会毫无问题地接受该文件。如果源文件是窄带文件,Watson Speech to Text 将无法读取 ogg 文件。我已经测试了 ffmpeg 的输出,并且窄带 ogg 文件具有与 mp3 文件相同的音频内容(例如,我可以听它并听到相同的人)。是的,我提前更改了对 Watson 的调用以正确指定模型和 content_type。代码如下:

exports.createTranscript = function(req, res, next)
{ var _name = getNameBase(req.body.movie);
  var _type = getType(req.body.movie);
  var _voice = (_type == "mp4") ? "en-US_BroadbandModel" : "en-US_NarrowbandModel" ;
  var _contentType = (_type == "mp4") ? "audio/ogg" : "audio/basic" ;
  var _audio = process.cwd()+"/HTML/movies/"+_name+'ogg';
  var transcriptFile = process.cwd()+"/HTML/movies/"+_name+'json';

  speech_to_text.createSession({model: _voice}, function(error, session) {
    if (error) {console.log('error:', error);}
    else
      {
        var params = { content_type: _contentType, continuous: true,
         audio: fs.createReadStream(_audio),
          session_id: session.session_id
          };
          speech_to_text.recognize(params, function(error, transcript) {
            if (error) {console.log('error:', error);}
            else
              { fs.writeFile(transcriptFile, JSON.stringify(transcript), function(err) {if (err) {console.log(err);}});
                res.send(transcript);
              }
          });
      }
  });
}

_type 是 mp3(来自电话录音的窄带)或 mp4(宽带) model: _voice已被追踪,确保设置正确 content_type: _contentType已被追踪,确保设置正确

使用窄带设置提交到 Speech to Text 的任何 ogg 文件都会失败,并显示 Error: No speech detected for 30s. 测试了真实的窄带文件并要求 Watson 将宽带 ogg 文件(从 mp4 创建)读取为窄带。相同的错误信息。我错过了什么?

【问题讨论】:

    标签: node.js ffmpeg speech-to-text watson


    【解决方案1】:

    Watson Speech to Text 的文档在这一点上令人困惑。文档here 指出,在使用窄带模型时,应将content_type 设置为audio/basic。这是不正确的。在此示例中,入站音频文件是窄带文件,但它是 ogg 文件,因此 content_type 仍应为 audio/ogg。那个单一的改变就解决了这个问题。

    【讨论】:

    • 音频/基本(仅在窄带型号上使用这种格式的音频。)
    • 嗨鲍勃,我相信文档所说的是“音频/基本(仅在窄带型号中使用这种格式的音频。)”,这意味着如果您使用这种音频格式,那么您只能使用窄带模型。
    • 是的,Dani,这就是对句子的正确理解。 audio/basic 只能与窄带型号一起使用,但窄带型号可以与其他类型一起使用。
    • 在这个例子中,我从电话交谈的 mp3 录音中创建了一个 ogg 文件。在这种情况下,mp3 是窄带的,仅捕获 8kHz。 Watson 需要一个 ogg 文件来实现语音到文本的目的,因此 content_type 必须是 audio/ogg,即使文档表明在提交窄带文件时应该使用 audio.basic。如果您使用音频/基本和 ogg 文件,应用程序将失败。
    猜你喜欢
    • 1970-01-01
    • 2016-11-06
    • 2017-07-28
    • 1970-01-01
    • 2015-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多