使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

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

本页面介绍了如何使用 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. 确保您的 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. 确保您的 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

设置身份验证

客户端库可以使用应用默认凭据轻松进行 Google API 身份验证,并向这些 API 发送请求。借助应用默认凭据,您可以在本地测试应用并部署它,无需更改底层代码。如需了解详情(包括代码示例),请参阅 Google Cloud 身份验证指南

为您的 Google 帐号创建身份验证凭据:

gcloud auth application-default login

创建识别器

如需发送识别请求,您必须先创建识别器。使用以下命令来创建识别器。

PROJECT_ID 替换为您的 Google Cloud 项目 ID,并将 RECOGNIZER_ID 替换为您的识别器的标识符。

curl -X POST \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    --data "{\"languageCodes\": \"en-US\", \"model\": \"latest_long\"}" \
    https://speech.googleapis.com/v2/projects/PROJECT_ID/locations/global/recognizers?recognizer_id=RECOGNIZER_ID

发出音频转录请求

现在您可以使用 Speech-to-Text 将音频文件转录为文字。请使用以下代码示例向 Speech-to-Text API 发送 recognize REST 请求。

  1. 创建包含以下文本的 JSON 请求文件,然后将其另存为 sync-request.json 纯文本文件。将 /full/path/to/audio/file.wav 替换为您要转录的音频文件的路径:

    {
      \"config\": {
        \"auto_decoding_config": {}
      },
      \"content\": \"$(base64 -w 0 /full/path/to/audio/file.wav | sed 's/+/-/g; s/\//_/g')\"
    }
      
  2. 使用 curl 发出 speech:recognize 请求,并向其传递您在步骤 1 中设置的 JSON 请求的文件名:

    curl -s -H "Content-Type: application/json" \
        -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
        https://speech.googleapis.com/v2/projects/PROJECT_ID/locations/global/recognizers/RECOGNIZER_ID:recognize \
        -d @sync-request.json
      

    请注意,要将文件名传递给 curl,您可以使用 -d 选项(表示“数据”)并在文件名前面加上 @ 符号。此文件应该位于您执行 curl 命令所在的目录中。

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

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

恭喜!您已向 Speech-to-Text 发送了您的第一个请求!

如果您收到来自 Speech-to-Text 的错误或空响应,请查看问题排查纠错步骤。

清理

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

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

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

    gcloud auth revoke

控制台

  • 在 Google Cloud 控制台中,转到管理资源页面:

    转到“管理资源”

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

    删除 Cloud 项目:

    gcloud projects delete PROJECT_ID

    后续步骤