并非所有语音文件都会将来自Google语音的输出提供给Node.js的Text API

时间:2016-07-12 12:04:10

标签: node.js google-speech-api

我在Node.js脚本片段下面使用

'use strict';
var google_speech = require('google-speech');
google_speech.ASR({
    debug: true,
    lang: 'en_US',
    developer_key: '<Google API Key>',
    file: '<voice file name with path>',
  }, function(err, httpResponse, xml){   
    if(err){
        console.log(err);
      }else{
        console.log(httpResponse.statusCode, xml)
      }
    }
);

我从一些音频文件获得的输出,但并非所有。即使例如一个flac文件正在提供输出,但另一个flac文件也没有。

此API是否需要任何特定类型的文件来提供输出。如果是,请告诉我文件的具体类型/格式。

1 个答案:

答案 0 :(得分:0)

如果您使用的是this google-speech节点库,则会在源代码中将content-type标题硬编码为audio/l16; rate=16000 here

看起来这可以作为第一个参数中的选项被覆盖,因此,例如,如果您使用的是44.1khz flac文件,则以下内容可能有效

'use strict';
var google_speech = require('google-speech');
google_speech.ASR({
    debug: true,
    lang: 'en_US',
    developer_key: '<Google API Key>',
    file: '<voice file name with path>',
    'content-type': 'audio/x-flac; rate=44100' // ← override it here
  }, function(err, httpResponse, xml){   
    if(err){
        console.log(err);
      }else{
        console.log(httpResponse.statusCode, xml)
      }
    }
);

话虽如此(这不是你提出的问题),看来谷歌最近更新了他们的官方Cloud Speech API,你也可能觉得它很有用。他们有一个nodejs教程here,以及更广泛的详细信息about the file formats supported here