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ạn phải có thiết bị được hỗ trợ.
- Thiết bị của bạn phải có phiên bản thử nghiệm mới nhất (
versionCode 210665810trở lên) của ứng dụng Nhận dạng và tổng hợp lời nói (com.google.android.tts) của Google. - Thiết bị của bạn phải có ít nhất 4 GB dung lượng lưu trữ trống để tải Gemini Nano V4 xuống.
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:
- Khởi động ứng dụng
SpeechTranslatorbằng cách tạo một đối tượng cấu hìnhSpeechTranslatorOptions. - 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.
- Tạo đối tượng
SpeechTranslatorRequestđể truyền trực tuyến các gói dữ liệuTranslationAudiovà 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 |
|
Android 14 |
| Qualcomm Snapdragon | SM8650, SM8750, SM8850, SM8845, SM8975, SM8950, SM8735 |
|
Android 15 |
| MediaTek | Dimensity 9300, 9400 trở lên |
|
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. |