Watson NarrowBand Speech to Text не принимает файл ogg

Приложение NodeJS с использованием ffmpeg для создания файлов ogg из mp3 и mp4. Если исходный файл является широкополосным, 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 был отслежен для обеспечения правильной настройки

Любой файл ogg, отправленный в функцию «Преобразование речи в текст» с узкополосными настройками, не проходит Error: No speech detected for 30s. Проверено как с реальными узкополосными файлами, так и с просьбой Watson прочитать широкополосный файл ogg (созданный из mp4) как узкополосный. То же сообщение об ошибке. Что мне не хватает?


person Bob Dill    schedule 18.01.2017    source источник


Ответы (1)


Документация по Watson Speech to Text в этом вопросе сбивает с толку. Документация, здесь, указывает, что при использовании узкополосной модели этот content_type должен быть установлен на audio/basic. Это неверно. В этом примере входящий аудиофайл является узкополосным, но это файл ogg, поэтому content_type все равно должно быть audio/ogg. Это единственное изменение решает проблему.

person Bob Dill    schedule 18.01.2017
comment
audio / basic (используйте звук в этом формате только с узкополосными моделями.) - person Daniel Bolanos; 19.01.2017
comment
Привет, Боб, я считаю, что то, что говорится в документации, является аудио / базовым (используйте аудио в этом формате только с узкополосными моделями.), Что означает, что если вы используете этот аудиоформат, вы можете использовать только узкополосные модели. - person Daniel Bolanos; 19.01.2017
comment
Да, Дэни, это правильное понимание предложения. audio / basic можно использовать только с узкополосными моделями, но узкополосные модели можно использовать с другими типами. - person Jeff; 19.01.2017
comment
В этом примере я создаю файл ogg из mp3-записи телефонного разговора. В данном случае mp3 является узкополосным, захватывается только 8 кГц. Watson требует файл ogg для преобразования речи в текст, поэтому content_type ДОЛЖЕН быть audio / ogg, даже если в документации указано, что audio.basic следует использовать при отправке узкополосных файлов. если вы используете audio / basic с файлом и ogg, приложение не сработает. - person Bob Dill; 19.01.2017