使用命令行将语音转录为文本

本页面介绍了如何使用 REST 接口curl 命令向 Speech-to-Text 发送语音识别请求。

Speech-to-Text 能够将 Google 语音识别技术轻松集成到开发者应用中。您可以向 Speech-to-Text API 发送音频数据,然后该 API 会返回该音频文件的文字转录。如需详细了解该服务,请参阅 Speech-to-Text 基础知识

准备工作

  1. 登录您的 Google Cloud 账号。如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  2. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  3. 确保您的 Google Cloud 项目已启用结算功能

  4. 启用 Speech-to-Text API。

    启用 API

  5. 确保您拥有项目的以下一个或多个角色: Cloud Speech Administrator

    检查角色

    1. 在 Google Cloud 控制台中,前往 IAM 页面。

      转到 IAM
    2. 选择项目。
    3. 主账号列中,找到您的电子邮件地址所在的行。

      如果您的电子邮件地址不在此列,则表示您没有任何角色。

    4. 在您的电子邮件地址所在的行对应的角色列中,检查角色列表是否包含所需的角色。

    授予角色

    1. 在 Google Cloud 控制台中,前往 IAM 页面。

      转到 IAM
    2. 选择项目。
    3. 点击 授予访问权限
    4. 新的主账号字段中,输入您的电子邮件地址。
    5. 选择角色列表中,选择一个角色。
    6. 如需授予其他角色,请点击 添加其他角色,然后添加其他各个角色。
    7. 点击 Save(保存)。
  6. 安装 Google Cloud CLI。
  7. 如需初始化 gcloud CLI,请运行以下命令:

    gcloud init
  8. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  9. 确保您的 Google Cloud 项目已启用结算功能

  10. 启用 Speech-to-Text API。

    启用 API

  11. 确保您拥有项目的以下一个或多个角色: Cloud Speech Administrator

    检查角色

    1. 在 Google Cloud 控制台中,前往 IAM 页面。

      转到 IAM
    2. 选择项目。
    3. 主账号列中,找到您的电子邮件地址所在的行。

      如果您的电子邮件地址不在此列,则表示您没有任何角色。

    4. 在您的电子邮件地址所在的行对应的角色列中,检查角色列表是否包含所需的角色。

    授予角色

    1. 在 Google Cloud 控制台中,前往 IAM 页面。

      转到 IAM
    2. 选择项目。
    3. 点击 授予访问权限
    4. 新的主账号字段中,输入您的电子邮件地址。
    5. 选择角色列表中,选择一个角色。
    6. 如需授予其他角色,请点击 添加其他角色,然后添加其他各个角色。
    7. 点击 Save(保存)。
  12. 安装 Google Cloud CLI。
  13. 如需初始化 gcloud CLI,请运行以下命令:

    gcloud init

发出音频转录请求

请使用以下代码示例向 Speech-to-Text API 发送 recognize REST 请求。

  1. 运行以下命令以创建 JSON 文件作为请求的输入。将 /full/path/to/audio/file.wav 替换为您要转写的音频文件的路径:

    echo "{
      \"config\": {
        \"auto_decoding_config\": {},
        \"language_codes\": [\"en-US\"],
        \"model\": \"long\"
      },
      \"content\": \"$(base64 -w 0 /full/path/to/audio/file.wav | sed 's/+/-/g; s/\//_/g')\"
    }" > /tmp/data.txt
    
  2. 使用 curl 发出 recognize 请求:

    curl -X POST -H "Content-Type: application/json; charset=utf-8" \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -d @/tmp/data.txt \
        https://speech.googleapis.com/v2/projects/PROJECT_ID/locations/global/recognizers/_:recognize
    

    您应该会看到如下所示的响应:

      {
        "results": [
          {
            "alternatives": [
              {
                "transcript": "how old is the Brooklyn Bridge",
                "confidence": 0.98267895
              }
            ]
          }
        ]
      }
    

您向 Speech-to-Text 发送了第一个请求。

清理

为避免因本页中使用的资源导致您的 Google Cloud 账号产生费用,请按照以下步骤操作。

  1. 可选:撤消您创建的身份验证凭据,并删除本地凭据文件。

    gcloud auth application-default revoke
  2. 可选:从 gcloud CLI 撤消凭据。

    gcloud auth revoke

控制台

  • 在 Google Cloud 控制台中,进入管理资源页面。

    转到“管理资源”

  • 在项目列表中,选择要删除的项目,然后点击删除
  • 在对话框中输入项目 ID,然后点击关闭以删除项目。
  • gcloud

    删除 Google Cloud 项目:

    gcloud projects delete PROJECT_ID

    后续步骤