Google语音文本替代语言代码支持不起作用

时间:2018-07-31 21:32:20

标签: speech-to-text google-cloud-speech

我正在使用Node JS客户端开发Google Cloud Speech to Text API。 我在https://github.com/googleapis/nodejs-speech处找到了该项目,并从中试用了示例。 一切正常,但是我找不到用于alternateLanguageCodes的示例。 我发现它在V1P1Beta1版本中受支持,如下所示: https://cloud.google.com/speech-to-text/docs/reference/rest/v1p1beta1/RecognitionConfig, 如果我们提供AlternativeLanguageCodes,则api会尝试将音频转录为最相关的语言。 我观察到的是,它始终只转录为languageCode中指定的语言。

有人有机会尝试使用此API吗?如果是这样,您能否解释一下如何检测替代语言。

1 个答案:

答案 0 :(得分:0)

使用下面的代码对我有用,尽管确实没有检测到正确的语言。考虑到此功能is still in Beta。无论如何,看到in official docs的内容为:

  

...功能非常适合...抄录语音命令或搜索之类的简短语句。

在我的代码中使用了这种特殊的音频(用英语说“布鲁克林大桥的年龄”),运行了几次,有时返回了正确的转录,有时则是“ bre kodbraća几岁“。此行为可能会有所不同,具体取决于所提供的语言,音频示例...

const speech = require('@google-cloud/speech').v1p1beta1;

var client = new speech.SpeechClient();

var languageCode = 'sr-SR';
var alternativeLanguageCodes = [`es-ES`,`en-US`];
var model = 'command_and_search';
const config = {
  alternativeLanguageCodes:alternativeLanguageCodes,
  model:model,
  languageCode: languageCode,
};
var uri = 'gs://cloud-samples-tests/speech/brooklyn.flac';
const audio = {
  uri: uri,
};
const request = {
  config: config,
  audio: audio,
};


client.recognize(request).then(data => {const response = data[0]; const transcription = response.results.map(result => result.alternatives[0].transcript).join('\n');console.log(`Transcription: `, transcription); }).catch(err => {console.error('Error:',err);});