GenAI Speech Translation API ของ ML Kit ช่วยให้แปลเสียงพูดแบบเรียลไทม์ในอุปกรณ์ได้ในภาษาต่างๆ Speech Translation API ใช้โมเดลเสียงพูด Generative AI ของ Google เพื่อให้บริการแปลเสียงพูดเป็นข้อความที่มีเวลาในการตอบสนองต่ำ คุณภาพสูง และมุ่งเน้นความเป็นส่วนตัว โดยไม่ต้องประมวลผลเสียงในระบบคลาวด์
ความสามารถหลัก
- จัดการกระบวนการทั้งหมดผ่าน API เดียว ตั้งแต่การตรวจสอบว่าโมเดลพร้อมใช้งานหรือไม่ การเริ่มดาวน์โหลด ไปจนถึงการแปลจริง ดูรายละเอียดการติดตั้งใช้งานได้ที่หัวข้อผสานรวม Speech Translation API
- ประมวลผลเสียงสดจากไมโครโฟนหรือไฟล์ และรับทั้งผลลัพธ์ข้อความระดับกลางและขั้นสุดท้ายโดยใช้ Kotlin Flow สำหรับการอัปเดตแบบเรียลไทม์
- ดำเนินการวิเคราะห์เสียงและแปลภาษาทั้งหมดในอุปกรณ์เพื่อรักษาความเป็นส่วนตัวของผู้ใช้และรองรับฟังก์ชันการทำงานแบบออฟไลน์อย่างเต็มรูปแบบ
ตัวอย่างผลการแข่ง
| เสียงอินพุต | ภาษาต้นฉบับ | ภาษาเป้าหมาย | ข้อความเอาต์พุต |
|---|---|---|---|
| เสียงพูด: "สวัสดี วันนี้เป็นอย่างไรบ้าง" | อังกฤษ (อเมริกา) | Spanish (es-ES) | "Hola, ¿cómo estás hoy?" |
| เสียงพูด: "こんにちは、はじめまして" | ญี่ปุ่น (ja-JP) | อังกฤษ (อเมริกา) | "สวัสดี ยินดีที่ได้รู้จัก" |
ข้อกำหนดเบื้องต้น
หากต้องการใช้ Speech Translation API คุณต้องมีคุณสมบัติตรงตามข้อกำหนดต่อไปนี้
- คุณต้องมีอุปกรณ์ที่รองรับ
- อุปกรณ์ของคุณต้องมีแอปการแปลงเสียงพูดเป็นข้อความและการอ่านออกเสียงข้อความ (
com.google.android.tts) เวอร์ชันเบต้าล่าสุด (versionCode 210665810ขึ้นไป) จาก Google - อุปกรณ์ของคุณต้องมีพื้นที่เก็บข้อมูลว่างอย่างน้อย 4.0 GB เพื่อดาวน์โหลด Gemini Nano V4
เริ่มต้นใช้งาน
หากต้องการเริ่มต้นใช้งาน ให้เพิ่มทรัพยากร Dependency ของ ML Kit Speech Translation ลงในไฟล์ 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")
}
ดึงดูด
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 เข้ากับแอป ให้ทำตามขั้นตอนต่อไปนี้
- เริ่มต้นไคลเอ็นต์
SpeechTranslatorโดยสร้างออบเจ็กต์การกำหนดค่าSpeechTranslatorOptions - ใช้ 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) ประสิทธิภาพสูงที่ผสานรวมอยู่ในชิปเซ็ต ตารางต่อไปนี้แสดงรุ่นโทรศัพท์หลักๆ บางรุ่นที่รองรับ แต่โปรดทราบว่าหากต้องการยืนยันการรองรับ คุณควรตรวจสอบชิปเซ็ตของอุปกรณ์
| ตระกูลชิปเซ็ต | รหัสชิปเซ็ต | อุปกรณ์ตัวอย่าง | เวอร์ชันระบบปฏิบัติการขั้นต่ำ |
|---|---|---|---|
| Google Tensor | Google Tensor G5, G6+ |
|
Android 14 |
| Qualcomm Snapdragon | SM8650, SM8750, SM8850, SM8845, SM8975, SM8950, SM8735 |
|
Android 15 |
| MediaTek | Dimensity 9300, 9400+ |
|
Android 15 |
ปัญหาการตั้งค่าที่พบบ่อย
GenAI API ของ ML Kit อาศัยแอป Android AICore เพื่อเข้าถึง Gemini Nano เมื่อเพิ่งตั้งค่าอุปกรณ์ (รวมถึงรีเซ็ต) หรือเพิ่งรีเซ็ตแอป AICore (เช่น ล้างข้อมูล ถอนการติดตั้งแล้วติดตั้งอีกครั้ง) แอป AICore อาจมีเวลาไม่เพียงพอในการเริ่มต้นระบบให้เสร็จสมบูรณ์ (รวมถึงการดาวน์โหลดการกำหนดค่าล่าสุดจากเซิร์ฟเวอร์) ด้วยเหตุนี้ GenAI API ของ ML Kit จึงอาจไม่ทำงานตามที่คาดไว้ ข้อความแสดงข้อผิดพลาดในการตั้งค่าที่พบบ่อยซึ่งคุณอาจเห็นและวิธีจัดการมีดังนี้
| ตัวอย่างข้อความแสดงข้อผิดพลาด | วิธีรับมือ |
| AICore ไม่สำเร็จโดยมีข้อผิดพลาดประเภท 4-CONNECTION_ERROR และรหัสข้อผิดพลาด 601-BINDING_FAILURE: บริการ AICore เชื่อมโยงไม่สำเร็จ | กรณีนี้อาจเกิดขึ้นเมื่อคุณติดตั้งแอปโดยใช้ GenAI API ของ ML Kit ทันทีหลังจากตั้งค่าอุปกรณ์ หรือเมื่อถอนการติดตั้ง AICore หลังจากติดตั้งแอปแล้ว การอัปเดตแอป AICore แล้วติดตั้งแอปอีกครั้งน่าจะช่วยแก้ปัญหาได้ |
| AICore ไม่สำเร็จโดยมีข้อผิดพลาดประเภท 3-PREPARATION_ERROR และรหัสข้อผิดพลาด 606-FEATURE_NOT_FOUND: ฟีเจอร์ ... ไม่พร้อมใช้งาน |
กรณีนี้อาจเกิดขึ้นเมื่อ AICore ยังดาวน์โหลดการกำหนดค่าล่าสุดไม่เสร็จ เมื่ออุปกรณ์เชื่อมต่ออินเทอร์เน็ต โดยปกติแล้วจะใช้เวลาอัปเดต 2-3 นาทีถึง 2-3 ชั่วโมง การรีสตาร์ทอุปกรณ์จะช่วยให้การอัปเดตเร็วขึ้น
โปรดทราบว่าหาก Bootloader ของอุปกรณ์ปลดล็อกอยู่ คุณจะเห็นข้อผิดพลาดนี้ด้วย เนื่องจาก API นี้ไม่รองรับอุปกรณ์ที่มี Bootloader ที่ปลดล็อกแล้ว |
| AICore ไม่สำเร็จโดยมีประเภทข้อผิดพลาด 1-DOWNLOAD_ERROR และรหัสข้อผิดพลาด 0-UNKNOWN: ฟีเจอร์ ... ไม่สำเร็จโดยมีสถานะความล้มเหลว 0 และข้อผิดพลาด esz: UNAVAILABLE: ไม่สามารถแปลงโฮสต์ ... | เชื่อมต่อเครือข่ายไว้ รอสักครู่ แล้วลองอีกครั้ง |