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

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

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

准备工作

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

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

  3. 启用 Speech-to-Text API。

    启用 API

  4. Make sure that you have the following role or roles on the project: Cloud Speech Administrator

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

    4. For all rows that specify or include you, check the Role colunn to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Google Cloud console, go to the IAM page.

      前往 IAM
    2. 选择项目。
    3. 点击 授予访问权限
    4. 新的主账号字段中,输入您的用户标识符。 这通常是 Google 账号的电子邮件地址。

    5. 选择角色列表中,选择一个角色。
    6. 如需授予其他角色,请点击 添加其他角色,然后添加其他各个角色。
    7. 点击保存
    8. Install the Google Cloud CLI.
    9. To initialize the gcloud CLI, run the following command:

      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

    控制台

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

    转到“管理资源”

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

    删除 Google Cloud 项目:

    gcloud projects delete PROJECT_ID

    后续步骤