【问题标题】:how to get a text from long audio using google speech to text node.js如何使用谷歌语音从长音频中获取文本到文本 node.js
【发布时间】:2020-10-06 11:39:39
【问题描述】:

我遵循官方文档 Google Cloud Speech-to-Text API 中的指南,但我不断收到错误消息:

starting-account-.iam.gserviceaccount.com 没有 拥有 storage.objects.get 访问权限。

  const client = new speech.SpeechClient();
  const gcsUri = bucket uri;
  const encoding = 'LINEAR16';
  const sampleRateHertz = 16000;
  const languageCode = 'en-US';
  const config = {
    encoding: encoding,
    sampleRateHertz: sampleRateHertz,
    languageCode: languageCode
  };
  const audio = {
    uri: gcsUri
  };

  const request = {
    config: config,
    audio: audio
  };

  const [operation] = await client.longRunningRecognize(request);
  // Get a Promise representation of the final result of the job
  console.log('operation', operation);
  const [response] = await operation.promise();
  const transcription = response.results
    .map(result => result.alternatives[0].transcript)
    .join('\n');
  console.log(`Transcription: ${transcription}`);

我应该怎么做才能获得访问权限?

【问题讨论】:

  • 请阅读此How to Ask...无论如何,您有 gcloud 权限问题,这不是代码问题

标签: node.js google-cloud-storage google-speech-api


【解决方案1】:

对于谷歌云语音转文本:

文档推荐 16000Hz 的 .wav 文件

16bit 16000Hz mono .wav 为我工作。

我使用我的原始录音(或从视频中翻录)并使用一些 EQ 和语音限制效果(使用免费软件 Audacty 或 Adob​​e Audition)然后save as 上述格式 - 然后将其上传到 gc 存储,然后在上面运行ml speech

您还可以使用ml speechalpha 版本……它还有一些标志可以帮助人工智能进行转录。我的命令如下所示:

gcloud alpha ml speech recognize-long-running gs://my-bucket/my-audio-16bit-16k.wav --language-code=en-US --enable-automatic-punctuation --sample-rate=16000 --max-alternatives=1 --interaction-type=dictation --original-media-type=video --recording-device-type=pc --naics-code=541613 > my-transcript.txt

...你看我将输出写入.txt

这里是关于 alpha 的文档:https://cloud.google.com/sdk/gcloud/reference/alpha/ml/speech/recognize-long-running

【讨论】:

  • 感谢您提出alpha 命令。那很有帮助。没有发现它记录在其他任何地方。
【解决方案2】:

由于您收到的错误状态,您的服务帐户没有storage.objects.getpermission

可以通过授予您的服务帐户相关的角色 (如roles/storage.objectViewer来解决此问题。正如 Google Cloud Platform documentation 所述,您可以通过以下方式授予它:

  1. 在 GCP 控制台中打开 IAM & Admin 页面。
  2. 选择您的项目并点击继续
  3. 确定您要添加角色的服务帐号
  4. 如果服务帐户尚未在成员列表中,它不会 分配给它的任何角色。点击添加并输入电子邮件地址 服务帐号。
  5. 如果服务帐户已在成员列表中,则它具有现有角色。点击角色下的下拉列表 您要修改的服务帐号。
  6. 选择一个或多个角色以应用于服务帐号。
  7. 点击添加保存将角色应用到服务帐号。

或者,您可以使用具有相关权限的另一个服务帐户进行身份验证。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多