借助 ML Kit GenAI Speech Translation API,您可以实时在设备端翻译各种语言的语音。Speech Translation API 使用 Google 的生成式 AI 语音模型,提供低延迟、高质量且注重隐私保护的语音转文字翻译,而无需进行基于云的音频处理。
主要功能
- 通过单个 API 管理整个流程,从验证模型是否准备就绪、启动下载到执行实际翻译。如需了解实现详情,请参阅集成 Speech Translation API。
- 处理来自麦克风或文件的实时音频,并使用 Kotlin Flow 接收中间和最终文本结果,以实现实时更新。
- 在设备端执行所有音频分析和翻译任务,以保护用户隐私并支持完整的离线功能。
示例结果
| 输入音频 | 源语言 | 目标语言 | 输出文本 |
|---|---|---|---|
| 语音:“你好,今天过得怎么样?” | 英语 (en-US) | 西班牙语 (es-ES) | "Hola, ¿cómo estás hoy?" |
| "こんにちは、はじめまして" | 日语 (ja-JP) | 英语 (en-US) | “你好,很高兴认识你” |
前提条件
如需使用 Speech Translation API,您必须满足以下要求:
- 您必须拥有受支持的设备。
- 您的设备必须安装有最新 Beta 版(
versionCode 210665810或更高版本)的 Google 语音识别和语音合成应用 (com.google.android.tts)。 - 您的设备必须至少有 4.0 GB 的可用存储空间才能下载 Gemini Nano V4。
开始使用
首先,将机器学习套件语音翻译依赖项添加到模块级 build.gradle.kts(或 build.gradle)文件中:
Kotlin
dependencies {
// ML Kit Base Infrastructure
implementation("com.google.mlkit:common:18.10.0")
// ML Kit GenAI Speech Translation SDK
implementation("com.google.mlkit:genai-speech-translation:1.0.0-alpha1")
}
Groovy
dependencies {
// ML Kit Base Infrastructure
implementation 'com.google.mlkit:common:18.10.0'
// ML Kit GenAI Speech Translation SDK
implementation 'com.google.mlkit:genai-speech-translation:1.0.0-alpha1'
}
集成 Speech Translation API
如需将 Speech Translation SDK 集成到您的应用中,请完成以下步骤:
- 通过构建
SpeechTranslatorOptions配置对象来初始化SpeechTranslator客户端。 - 使用 Kotlin Flow API 验证功能可用性并管理模型下载。
- 创建一个
SpeechTranslatorRequest对象,以流式传输TranslationAudio数据包并观察实时翻译结果。输入音频必须采用 PCM 16 位、16kHz、单声道格式。
// Initialize the client.
val options = SpeechTranslatorOptions.Builder(Locale.US, Locale.CHINESE).build()
val client = SpeechTranslation.getClient(options)
// Check and download the on-device model.
if (client.checkStatus() == FeatureStatus.DOWNLOADABLE) {
client.download().collect { status ->
println("Download progress: $status")
}
}
// Construct a streaming request with raw audio (PCM 16-bit, 16kHz, mono).
val audioFlow = flow {
emit(TranslationAudio(Locale.US, rawAudioBytes))
}
val request = SpeechTranslatorRequest.Builder(audioFlow).build()
// Start a session and collect translated responses.
client.startTranslation(request).collect { response ->
when (response) {
is SpeechTranslatorResponse.Text -> {
println("Translation (${response.locale}): ${response.translatedText}")
}
is SpeechTranslatorResponse.ErrorResponse -> {
println("Translation failed: ${response.e.message}")
}
is SpeechTranslatorResponse.CompletedResponse -> {
println("Session closed.")
}
}
}
// Close the client when done.
client.close()
支持的设备
如需使用 Speech Translation API,您的设备必须在其芯片组中集成高性能神经加速器 (TPU/NPU)。下表列出了一些受支持的主要手机型号,但请注意,您应检查设备的芯片组,以验证是否受支持。
| 芯片组系列 | 芯片组 ID | 示例设备 | 操作系统版本最低要求 |
|---|---|---|---|
| Google Tensor | Google Tensor G5、G6+ |
|
Android 14 |
| Qualcomm Snapdragon | SM8650、SM8750、SM8850、SM8845、SM8975、SM8950、SM8735 |
|
Android 15 |
| MediaTek | 天玑 9300、9400+ |
|
Android 15 |
常见设置问题
机器学习套件生成式 AI API 依赖于 Android AICore 应用来访问 Gemini Nano。当设备刚设置完毕(包括重置)或 AICore 应用刚重置(例如清除数据、卸载后重新安装)时,AICore 应用可能没有足够的时间完成初始化(包括从服务器下载最新配置)。因此,ML Kit GenAI API 可能无法按预期运行。以下是您可能会看到的常见设置错误消息以及处理方法:
| 错误消息示例 | 如何处理 |
| AICore 失败,错误类型为 4-CONNECTION_ERROR,错误代码为 601-BINDING_FAILURE:AICore 服务未能绑定。 | 如果您在设备设置完成后立即安装使用机器学习套件生成式 AI API 的应用,或者在应用安装后卸载 AICore,就可能会发生这种情况。更新 AICore 应用,然后重新安装您的应用,应该可以解决此问题。 |
| AICore 失败,错误类型为 3-PREPARATION_ERROR,错误代码为 606-FEATURE_NOT_FOUND:功能…不可用。 |
如果 AICore 尚未完成最新配置的下载,就可能会发生这种情况。设备连接到网络后,通常需要几分钟到几小时才能完成更新。重启设备可以加快更新速度。
请注意,如果设备的引导加载程序已解锁,您也会看到此错误,因为此 API 不支持引导加载程序已解锁的设备。 |
| AICore 失败,错误类型为 1-DOWNLOAD_ERROR,错误代码为 0-UNKNOWN:功能…失败,失败状态为 0,错误为 esz: UNAVAILABLE: Unable to resolve host… | 请保持网络连接,等待几分钟,然后重试。 |