【问题标题】:Google Speech to text alternativeLanguageCodes support not workingGoogle Speech to text AlternativeLanguageCodes 支持不起作用
【发布时间】:2018-07-31 21:32:20
【问题描述】:

我正在使用 node js 客户端开发 Google Cloud Speech to Text API。 我在这里找到了这个项目https://github.com/googleapis/nodejs-speech 并尝试了其中的示例。 一切正常,但我找不到替代语言代码的示例。 我发现它在 V1P1Beta1 版本中受支持,如此处所述: https://cloud.google.com/speech-to-text/docs/reference/rest/v1p1beta1/RecognitionConfig , 如果我们提供替代语言代码,api 将尝试将音频转录为最相关的语言。 我观察到的是它总是只转录为 languageCode 中指定的语言。

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

【问题讨论】:

  • 您能否提供更多有关您正在使用的语言和替代语言代码的信息?您的实际音频语言是什么?如果更改替代语言代码的顺序,或者添加一些不同的替代语言代码,您是否注意到有什么不同?
  • 嗨,这是来自 nodejs-speech 示例的代码 sn-p function const request = { config: { encoding: encoding, sampleRateHertz: sampleRateHertz, languageCode: 'en-US', alternativeLanguageCodes: [' hi-IN'] }, interimResults: false, };
  • 继续我之前的评论...我已将alternateLanguageCodes 添加到现有的请求对象中。这个请求对象被传递给 streamingRecognize。我尝试了不同的alternateLanguageCodes,但没有一个起作用。 StreamingRecognize 总是尝试使用 languageCode 转换输入音频,即使音频中的语言不同。
  • 您可以在这里分享一些您正在使用的小音频文件吗?
  • 我使用麦克风作为音频输入。我使用了来自github.com/googleapis/nodejs-speech/blob/master/samples 的示例,我修改了recognize.js streamingMicRecognize 函数impl,请求变量被修改为包含alternativeLanguageCodes:[languageCodes.language1,languageCodes.language2] 和模型:'command_and_search'。而且我还修改了 const speech = require('@google-cloud/speech');成为 const speech = require('@google-cloud/speech').v1p1beta1;我希望您能够替换这些值并尝试一下。由于章程限制,我无法粘贴修改后的功能。

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


【解决方案1】:

使用下面的代码对我有用,尽管它确实没有检测到正确的语言。考虑到这个功能is still in Beta。无论如何,请参阅in official docs 它声明即:

...功能非常理想...用于转录语音命令或搜索等简短语句。

在我的代码中使用了这个特定的音频(用英文写着“布鲁克林大桥有多旧”),运行它几次,有时它返回正确的转录,有时它是“一个 bre kod brać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);});

【讨论】:

  • 感谢您的回复。我观察到的是它会以你开始说话的语言正确转录。在您的示例中,您有英语和西班牙语等替代语言。如果你开始说英语,然后改成西班牙语,它会认为一切都是英语。如果您开始说西班牙语,它将始终将其转换为西班牙语。语言考虑不是基于整个对话中的音频输入。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-22
  • 2018-10-12
  • 1970-01-01
  • 2020-01-21
  • 2019-04-16
  • 1970-01-01
相关资源
最近更新 更多