生成式 AI 语音翻译 API

借助 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 集成到您的应用中,请完成以下步骤:

  1. 通过构建 SpeechTranslatorOptions 配置对象来初始化 SpeechTranslator 客户端。
  2. 使用 Kotlin Flow API 验证功能可用性并管理模型下载。
  3. 创建一个 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+
  • Google Pixel 10、11
Android 14
Qualcomm Snapdragon SM8650、SM8750、SM8850、SM8845、SM8975、SM8950、SM8735
  • Samsung Galaxy S25、S25+、S25 Ultra
  • Samsung Galaxy S26、S26+、S26 Ultra
  • Samsung Galaxy Z Fold7
  • 小米 15
  • OnePlus 13
  • Motorola Razr 60 Ultra
Android 15
MediaTek 天玑 9300、9400+
  • OPPO Find X10、X10 Pro
  • Samsung Galaxy Tab S12
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… 请保持网络连接,等待几分钟,然后重试。