首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >沃森NarrowBand向不接受ogg文件的文本讲话

沃森NarrowBand向不接受ogg文件的文本讲话
EN

Stack Overflow用户
提问于 2017-01-18 21:25:26
回答 1查看 236关注 0票数 0

NodeJS应用程序使用ffmpeg从mp3 & mp4创建ogg文件。如果源文件是宽带的,沃森语音文本接收文件没有任何问题。如果源文件是窄带的,沃森语音到文本无法读取ogg文件。我已经测试了来自ffmpeg的输出,窄带ogg文件具有与mp3文件相同的音频内容(例如,我可以听它,也可以听到相同的人)。是的,预先,我正在更改对Watson的调用,以正确指定模型和content_type。守则如下:

代码语言:javascript
复制
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已经被跟踪以确保正确的设置。

任何ogg文件提交到带有窄带设置的文本的语音文件都会失败,用实际的窄带文件进行Error: No speech detected for 30s.测试,并要求沃森将宽带ogg文件(从mp4创建)读取为窄带。同样的错误信息。我遗漏了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-18 23:50:24

沃森演讲到文本的文档在这一点上令人困惑。文档这里表明,当使用窄带模型时,content_type应该设置为audio/basic。那是不正确的。在本例中,入站音频文件是窄带文件,但它是ogg文件,因此content_type仍然应该是audio/ogg。这一变化就解决了这个问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41729725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档