借助 Cloud Speech API,您可以从 80 多种语言的音频文件中进行语音转文字转录。
在本实验中,我们将录制一个音频文件并将其发送到 Cloud Speech API 进行转录。
学习内容
- 创建 Speech API 请求并使用 curl 调用 API
- 使用不同语言的音频文件调用 Speech API
您需要满足的条件
您将如何使用本教程?
您如何评价自己在使用 Google Cloud Platform 方面的经验水平?
自定进度的环境设置
如果您还没有 Google 帐号(Gmail 或 Google Apps),则必须创建一个。登录 Google Cloud Platform Console (console.cloud.google.com) 并创建一个新项目:
请记住项目 ID,它在所有 Google Cloud 项目中都是唯一名称(很抱歉,上述名称已被占用,您无法使用!)。它稍后将在此 Codelab 中被称为 PROJECT_ID
。
接下来,您需要在 Cloud Console 中启用结算功能,才能使用 Google Cloud 资源。
在此 Codelab 中运行仅花费几美元,但是如果您决定使用更多资源或继续让它们运行,费用可能更高(请参阅本文档末尾的“清理”部分)。
Google Cloud Platform 的新用户有资格获享 $300 免费试用。
点击屏幕左上角的菜单图标。
从下拉菜单中选择 API 和服务信息中心。
点击启用 API 和服务。
然后,在搜索框中搜索“语音”。点击 Google Cloud Speech API:
点击启用以启用 Cloud Speech API:
请稍等片刻,以将其启用。启用之后,您将看到以下内容:
Google Cloud Shell 是在云端运行的命令行环境。这是一款基于 Debian 的虚拟机,其中预装了您需要的所有开发工具(gcloud
、bq
、git
等),并提供 5GB 的永久性主目录。我们将使用 Cloud Shell 创建对 Speech API 的请求。
如需开始使用 Cloud Shell,请点击标题栏右上角的“激活 Google Cloud Shell”图标
一个 Cloud Shell 会话随即会在控制台底部的新框内打开,并显示命令行提示符。等待 user@project:~$ 提示出现
由于我们将使用 curl
向 Speech API 发送请求,因此需要生成一个 API 密钥来传入请求网址。如需创建 API 密钥,请转到项目信息中心的 API 和服务 > 凭据部分:
然后点击创建凭据:
在下拉菜单中选择 API 密钥:
接下来,复制您刚刚生成的密钥,然后选择关闭(不限制密钥)。
现在您已经有了 API 密钥,请将其保存到环境变量,这样就不必在每个请求中插入 API 密钥的值了。您可以在 Cloud Shell 中执行此操作。请务必将 <your_api_key>
替换为您刚刚复制的密钥。
export API_KEY=<YOUR_API_KEY>
您可以在 request.json
文件中向 Speech API 构建请求。如需创建和修改此文件,您可以使用任一首选命令行编辑器(nano、vim、emacs),也可以使用 Cloud Shell 中的内置网页编辑器:
在您的主目录中创建该文件,以便轻松引用该文件并将其添加到 request.json
文件:
request.json
{
"config": {
"encoding":"FLAC",
"languageCode": "en-US"
},
"audio": {
"uri":"gs://cloud-samples-tests/speech/brooklyn.flac"
}
}
请求正文包含 config
和 audio
对象。在 config
中,我们会告知 Speech API 如何处理请求。encoding
参数用于告知 API 您要向 API 发送哪种类型的音频编码。FLAC
是 .raw 文件的编码类型(如需了解详情,请参阅关于编码类型的文档)。您还可以向 config
对象添加其他参数,但 encoding
是唯一的参数。如果请求中未提供,languageCode
将默认为英语。
在 audio
对象中,您可以向 Cloud Storage 中的音频文件的 URI 传递字符串形式的 base64 编码音频。以下是使用 Cloud Storage 网址的情况。下一步是调用 Speech API!
您现在可以通过以下 curl
命令(通过一个命令行),将请求正文和您之前保存的 API 密钥环境变量一起传递给 Speech API:
curl -s -X POST -H "Content-Type: application/json" --data-binary @request.json "https://speech.googleapis.com/v1/speech:recognize?key=${API_KEY}"
此 curl
命令返回的响应应如下所示:
{
"results": [
{
"alternatives": [
{
"transcript": "how old is the Brooklyn Bridge",
"confidence": 0.98267895
}
]
}
]
}
transcript
值将返回 Speech API 对您的音频文件的文本转录,confidence
值表示 API 确认其准确转录您的音频的程度。
您会发现,我们在上面的请求中调用了 recognize
方法。Speech API 同时支持同步和异步语音转文字转录。在本例中,我们发送了一个完整的音频文件,但您也可以使用 longrunningrecognize
方法,在用户仍在讲话的同时执行流式语音转文字转录。
您是否通晓多种语言?Speech API 支持 100 多种语言的语音转文字转录!您可以在 request.json
中更改 languageCode
参数。您可以在此处找到支持的语言列表。
我们来试一个法语音频文件(如果您想试听,请点击此处收听)。将 request.json 更改为以下内容:
request.json
{
"config": {
"encoding":"FLAC",
"languageCode": "fr"
},
"audio": {
"uri":"gs://speech-language-samples/fr-sample.flac"
}
}
您应该会看到以下响应:
{
"results": [
{
"alternatives": [
{
"transcript": "maître corbeau sur un arbre perché tenait en son bec un fromage",
"confidence": 0.9710122
}
]
}
]
}
这个句子取自一个热门的法国儿童故事。如果您有其他语言的音频文件,可以尝试将其添加到 Cloud Storage 中,然后更改请求中的 languageCode
参数。
您已了解如何使用 Speech API 执行语音转文字转录。在此示例中,您将音频文件的 Google Cloud Storage URI 传递给了 API。或者,您也可以传递音频内容的 base64 编码字符串。
所学内容
- 向 Speech API 传递音频文件的 Google Cloud Storage URI
- 创建 Speech API 请求并使用 curl 调用 API
- 使用不同语言的音频文件调用 Speech API
后续步骤
- 查看相关文档中的 Speech API 教程。
- 试用 Vision API 和 Natural Language API!