Media Translation 可将音频文件或语音流翻译为另一种语言的文本。本页面提供的代码示例展示了如何使用 Media Translation 客户端库将流式音频翻译成文本。
设置项目
在使用 Media Translation 之前,您需要先设置一个 Google Cloud 项目,并为该项目启用 Media Translation API。
- 登录您的 Google Cloud 帐号。如果您是 Google Cloud 新手,请创建一个帐号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
-
在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目。
-
确保您的 Google Cloud 项目已启用结算功能。了解如何检查项目是否已启用结算功能。
-
启用 Media Translation API。
-
创建服务帐号:
-
在 Google Cloud 控制台中,转到创建服务帐号页面。
转到“创建服务帐号” - 选择您的项目。
-
在服务帐号名称字段中,输入一个名称。Google Cloud 控制台会根据此名称填充服务帐号 ID 字段。
在服务帐号说明字段中,输入说明。例如,
Service account for quickstart
。 - 点击创建并继续。
-
如需提供对项目的访问权限,请向服务帐号授予 Project > Owner 角色。
如需授予该角色,请找到选择角色列表,然后选择 Project > Owner。
- 点击继续。
-
点击完成以完成服务帐号的创建过程。
不要关闭浏览器窗口。您将在下一步骤中用到它。
-
-
创建服务帐号密钥:
- 在 Google Cloud 控制台中,点击您创建的服务帐号的电子邮件地址。
- 点击密钥。
- 点击添加密钥,然后点击创建新密钥。
- 点击创建。JSON 密钥文件将下载到您的计算机上。
- 点击关闭。
-
将环境变量
GOOGLE_APPLICATION_CREDENTIALS
设置为包含您的服务帐号密钥的 JSON 文件的路径。 此变量仅适用于当前的 shell 会话,因此,如果您打开新的会话,请重新设置该变量。 - 安装 Google Cloud CLI。
-
如需初始化 gcloud CLI,请运行以下命令:
gcloud init
-
在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目。
-
确保您的 Google Cloud 项目已启用结算功能。了解如何检查项目是否已启用结算功能。
-
启用 Media Translation API。
-
创建服务帐号:
-
在 Google Cloud 控制台中,转到创建服务帐号页面。
转到“创建服务帐号” - 选择您的项目。
-
在服务帐号名称字段中,输入一个名称。Google Cloud 控制台会根据此名称填充服务帐号 ID 字段。
在服务帐号说明字段中,输入说明。例如,
Service account for quickstart
。 - 点击创建并继续。
-
如需提供对项目的访问权限,请向服务帐号授予 Project > Owner 角色。
如需授予该角色,请找到选择角色列表,然后选择 Project > Owner。
- 点击继续。
-
点击完成以完成服务帐号的创建过程。
不要关闭浏览器窗口。您将在下一步骤中用到它。
-
-
创建服务帐号密钥:
- 在 Google Cloud 控制台中,点击您创建的服务帐号的电子邮件地址。
- 点击密钥。
- 点击添加密钥,然后点击创建新密钥。
- 点击创建。JSON 密钥文件将下载到您的计算机上。
- 点击关闭。
-
将环境变量
GOOGLE_APPLICATION_CREDENTIALS
设置为包含您的服务帐号密钥的 JSON 文件的路径。 此变量仅适用于当前的 shell 会话,因此,如果您打开新的会话,请重新设置该变量。 - 安装 Google Cloud CLI。
-
如需初始化 gcloud CLI,请运行以下命令:
gcloud init
- 根据您的首选语言安装客户端库。
翻译语音内容
以下代码示例展示了如何翻译通过包含最长五分钟音频的文件或直播麦克风采集到的语音。如需有关如何提供语音数据以取得最佳识别准确率的建议,请参阅最佳做法。
无论音频源如何,主要操作步骤都是相同的:
初始化一个
SpeechTranslationServiceClient
客户端,以用于向 Media Translation 发送请求。您可以使用同一个客户端重复发出多个请求。
创建一个
StreamingTranslateSpeechConfig
请求对象,以指定如何处理音频。StreamingTranslateSpeechConfig
对象包含一个TranslateSpeechConfig
对象(提供有关音频源文件的信息)和一个single_utterance
属性(指定在讲话人暂停讲话时 Media Translation 是否继续执行翻译)。TranslateSpeechConfig
对象提供音频源的技术规范(例如其编码和采样率)、设置翻译的源语言和目标语言(使用相应的 BCP-47 语言代码指定),并定义 Media Translation 使用何种翻译模型处理转录。发送一系列
StreamingTranslateSpeechRequest
请求对象。您需要为待翻译的每个音频文件发送一系列请求。 第一个请求提供请求的
StreamingTranslateSpeechConfig
对象,随后的请求则以流式传输方式提供音频内容。接收
StreamingTranslateSpeechResult
响应对象。虽然会接收
text_translation_result.is_final
值为false
的任何响应,但最新的翻译结果会覆盖上一个结果。当 Media Translation 生成最终结果时,
text_translation_result.is_final
字段设置为true
,后续收到的任何翻译结果都会附加到上一个结果之后。(在本例中不会覆盖上一个结果)。您可以输出完成的翻译,并从新的部分开始,处理下一部分转录和相应音频。当讲话人停止时,如果
StreamingTranslateSpeechConfig
请求对象中的single_utterance
字段设为 true,Media Translation 将为响应中的speech_event_type
事件返回END_OF_SINGLE_UTTERANCE
事件。客户端将停止发送请求,但仍会继续接收响应,直到翻译完成。流式传输的时长上限为 5 分钟。如果超出此上限,系统将返回 OUT_OF_RANGE 错误。
代码示例
翻译音频文件中的语音内容
Java
Node.js
Python
翻译麦克风中的语音内容
Java
Node.js
Python