使用命令行将语音转录为文本
本页面介绍了如何使用 REST 接口和 curl
命令向 Speech-to-Text 发送语音识别请求。
Speech-to-Text 能够将 Google 语音识别技术轻松集成到开发者应用中。您可以向 Speech-to-Text API 发送音频数据,然后该 API 会返回该音频文件的文字转录。如需详细了解该服务,请参阅 Speech-to-Text 基础知识。
准备工作
- 登录您的 Google Cloud 帐号。如果您是 Google Cloud 新手,请创建一个帐号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
-
在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目。
-
确保您的 Cloud 项目已启用结算功能。了解如何检查项目是否已启用结算功能。
-
启用 Speech-to-Text API。
-
确保您在项目中拥有以下一个或多个角色: Cloud Speech Administrator
检查角色
-
在 Google Cloud 控制台中,前往 IAM 页面。
转到 IAM - 选择项目。
-
在主帐号列中找到您的电子邮件地址所在的行。
如果您的电子邮件地址不在此列,则表示您没有任何角色。
- 在您的电子邮件地址所在的行对应的角色列中,检查角色列表是否包含所需的角色。
授予角色
-
在 Google Cloud 控制台中,前往 IAM 页面。
转到 IAM - 选择项目。
- 点击 授予访问权限。
- 在新的主帐号字段中,输入您的电子邮件地址。
- 在选择角色列表中,选择一个角色。
- 如需授予其他角色,请点击 添加其他角色,然后添加其他各个角色。
- 点击 Save(保存)。
-
- 安装 Google Cloud CLI。
-
如需初始化 gcloud CLI,请运行以下命令:
gcloud init
-
在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目。
-
确保您的 Cloud 项目已启用结算功能。了解如何检查项目是否已启用结算功能。
-
启用 Speech-to-Text API。
-
确保您在项目中拥有以下一个或多个角色: Cloud Speech Administrator
检查角色
-
在 Google Cloud 控制台中,前往 IAM 页面。
转到 IAM - 选择项目。
-
在主帐号列中找到您的电子邮件地址所在的行。
如果您的电子邮件地址不在此列,则表示您没有任何角色。
- 在您的电子邮件地址所在的行对应的角色列中,检查角色列表是否包含所需的角色。
授予角色
-
在 Google Cloud 控制台中,前往 IAM 页面。
转到 IAM - 选择项目。
- 点击 授予访问权限。
- 在新的主帐号字段中,输入您的电子邮件地址。
- 在选择角色列表中,选择一个角色。
- 如需授予其他角色,请点击 添加其他角色,然后添加其他各个角色。
- 点击 Save(保存)。
-
- 安装 Google Cloud CLI。
-
如需初始化 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 请求。
-
创建包含以下文本的 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')\" }
-
使用
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 发送了您的第一个请求!
清理
为避免因本页中使用的资源导致您的 Google Cloud 帐号产生费用,请按照以下步骤操作。
-
可选:撤消您创建的身份验证凭据,并删除本地凭据文件。
gcloud auth application-default revoke
-
可选:从 gcloud CLI 撤消凭据。
gcloud auth revoke
控制台
gcloud CLI
删除 Cloud 项目:
gcloud projects delete PROJECT_ID
后续步骤
- 练习转录短音频文件。
- 了解如何转录流式音频,例如来自麦克风的音频。
- 通过使用 Speech-to-Text 客户端库,以您选择的语言开始使用 Speech-to-Text。
- 如需了解关于最佳性能、准确度和其他方面的提示,请参阅最佳做法文档。