GenAI Speech Translation API

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 คุณต้องมีคุณสมบัติตรงตามข้อกำหนดต่อไปนี้

เริ่มต้นใช้งาน

หากต้องการเริ่มต้นใช้งาน ให้เพิ่มทรัพยากร 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 เข้ากับแอป ให้ทำตามขั้นตอนต่อไปนี้

  1. เริ่มต้นไคลเอ็นต์ SpeechTranslator โดยสร้างออบเจ็กต์การกำหนดค่า SpeechTranslatorOptions
  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) ประสิทธิภาพสูงที่ผสานรวมอยู่ในชิปเซ็ต ตารางต่อไปนี้แสดงรุ่นโทรศัพท์หลักๆ บางรุ่นที่รองรับ แต่โปรดทราบว่าหากต้องการยืนยันการรองรับ คุณควรตรวจสอบชิปเซ็ตของอุปกรณ์

ตระกูลชิปเซ็ต รหัสชิปเซ็ต อุปกรณ์ตัวอย่าง เวอร์ชันระบบปฏิบัติการขั้นต่ำ
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
  • Xiaomi 15
  • OnePlus 13
  • Motorola Razr 60 Ultra
Android 15
MediaTek Dimensity 9300, 9400+
  • OPPO Find X10, X10 Pro
  • Samsung Galaxy Tab S12
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: ไม่สามารถแปลงโฮสต์ ... เชื่อมต่อเครือข่ายไว้ รอสักครู่ แล้วลองอีกครั้ง