API dịch lời nói (AI tạo sinh)

API Dịch lời nói GenAI của Bộ công cụ học máy cho phép dịch âm thanh lời nói theo thời gian thực trên thiết bị bằng nhiều ngôn ngữ. Sử dụng các mô hình giọng nói AI tạo sinh của Google, API Dịch lời nói cung cấp dịch vụ dịch lời nói thành văn bản có độ trễ thấp, chất lượng cao và chú trọng đến quyền riêng tư mà không cần xử lý âm thanh trên đám mây.

Các chức năng chính

  • Quản lý toàn bộ quy trình thông qua một API duy nhất, từ việc xác minh xem mô hình đã sẵn sàng hay chưa, bắt đầu tải xuống cho đến thực hiện bản dịch thực tế. Hãy xem bài viết Tích hợp API dịch lời nói để biết thông tin chi tiết về cách triển khai.
  • Xử lý âm thanh trực tiếp từ micrô hoặc tệp, đồng thời nhận cả kết quả văn bản trung gian và kết quả văn bản cuối cùng bằng Kotlin Flow để cập nhật theo thời gian thực.
  • Thực hiện tất cả các nhiệm vụ phân tích và dịch âm thanh trên thiết bị để duy trì quyền riêng tư của người dùng và hỗ trợ đầy đủ chức năng khi không có mạng.

Kết quả mẫu

Âm thanh đầu vào Ngôn ngữ gốc Ngôn ngữ đích Văn bản đầu ra
Âm thanh lời nói: "Xin chào, hôm nay bạn thế nào?" Tiếng Anh (en-US) Tiếng Tây Ban Nha (es-ES) "Hola, ¿cómo estás hoy?"
Âm thanh lời nói: "こんにちは、はじめまして" Tiếng Nhật (ja-JP) Tiếng Anh (en-US) "Xin chào, rất vui được gặp bạn"

Điều kiện tiên quyết

Để sử dụng Speech Translation API, bạn phải đáp ứng các yêu cầu sau:

Bắt đầu

Để bắt đầu, hãy thêm phần phụ thuộc Dịch lời nói của Bộ công cụ học máy vào tệp build.gradle.kts (hoặc build.gradle) cấp mô-đun:

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'
}

Tích hợp Speech Translation API

Để tích hợp SDK Dịch lời nói vào ứng dụng, hãy hoàn tất các bước sau:

  1. Khởi động ứng dụng SpeechTranslator bằng cách tạo một đối tượng cấu hình SpeechTranslatorOptions.
  2. Sử dụng API Kotlin Flow để xác minh phạm vi cung cấp tính năng và quản lý việc tải mô hình xuống.
  3. Tạo đối tượng SpeechTranslatorRequest để truyền trực tuyến các gói dữ liệu TranslationAudio và quan sát kết quả dịch theo thời gian thực. Âm thanh đầu vào phải ở định dạng PCM 16 bit, 16kHz, đơn âm.
// 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()

Thiết bị được hỗ trợ

Để sử dụng API Dịch lời nói, thiết bị của bạn phải có một bộ tăng tốc nơron (TPU/NPU) hiệu suất cao được tích hợp trong chipset. Bảng sau đây liệt kê một số mẫu điện thoại chính được hỗ trợ, nhưng xin lưu ý rằng để xác minh khả năng hỗ trợ, bạn nên kiểm tra chipset của thiết bị.

Nhóm bộ vi mạch Mã nhận dạng chipset Thiết bị mẫu Phiên bản hệ điều hành tối thiểu
Google Tensor Google Tensor G5, G6 trở lên
  • 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
  • Xiaomi 15
  • OnePlus 13
  • Motorola Razr 60 Ultra
Android 15
MediaTek Dimensity 9300, 9400 trở lên
  • OPPO Find X10, X10 Pro
  • Samsung Galaxy Tab S12
Android 15

Các vấn đề thường gặp khi thiết lập

Các API GenAI của Bộ công cụ học máy dựa vào ứng dụng Android AICore để truy cập vào Gemini Nano. Khi một thiết bị vừa được thiết lập (bao gồm cả việc đặt lại) hoặc ứng dụng AICore vừa được đặt lại (ví dụ: xoá dữ liệu, gỡ cài đặt rồi cài đặt lại), ứng dụng AICore có thể không có đủ thời gian để hoàn tất quá trình khởi chạy (bao gồm cả việc tải các cấu hình mới nhất xuống từ máy chủ). Do đó, các API GenAI của Bộ công cụ học máy có thể không hoạt động như mong đợi. Dưới đây là các thông báo lỗi thiết lập thường gặp mà bạn có thể thấy và cách xử lý:

Ví dụ về thông báo lỗi Cách xử lý
AICore không thành công với loại lỗi 4-CONNECTION_ERROR và mã lỗi 601-BINDING_FAILURE: Dịch vụ AICore không liên kết được. Điều này có thể xảy ra khi bạn cài đặt ứng dụng bằng API GenAI của Bộ công cụ học máy ngay sau khi thiết lập thiết bị hoặc khi AICore bị gỡ cài đặt sau khi ứng dụng của bạn được cài đặt. Bạn có thể khắc phục vấn đề này bằng cách cập nhật ứng dụng AICore rồi cài đặt lại ứng dụng.
AICore không thành công với loại lỗi 3-PREPARATION_ERROR và mã lỗi 606-FEATURE_NOT_FOUND: Tính năng ... không hoạt động. Điều này có thể xảy ra khi AICore chưa tải xong các cấu hình mới nhất. Khi thiết bị kết nối với Internet, quá trình cập nhật thường mất từ vài phút đến vài giờ. Việc khởi động lại thiết bị có thể đẩy nhanh quá trình cập nhật.

Lưu ý rằng nếu trình tải khởi động của thiết bị được mở khoá, bạn cũng sẽ thấy lỗi này. API này không hỗ trợ các thiết bị có trình tải khởi động đã mở khoá.
AICore không thành công với loại lỗi 1-DOWNLOAD_ERROR và mã lỗi 0-UNKNOWN: Tính năng ... không thành công với trạng thái không thành công 0 và lỗi esz: UNAVAILABLE: Không thể phân giải máy chủ lưu trữ ... Duy trì kết nối mạng, đợi vài phút rồi thử lại.