Skip to main content
Hotword kustom

Referensi SDK Java hotwords kustom

Gunakan SDK Java untuk membuat, mengkueri, memperbarui, dan menghapus kosakata kustom untuk pengenalan ucapan.

Alibaba Cloud Model Studio telah merilis domain khusus ruang kerja untuk wilayah China (Beijing) dan Singapura. Domain khusus baru ini memberikan performa yang lebih unggul dan stabilitas lebih tinggi untuk permintaan inferensi. Kami merekomendasikan migrasi ke domain berikut:
  • China (Beijing): dari dashscope.aliyuncs.com ke {WorkspaceId}.cn-beijing.maas.aliyuncs.com
  • Singapura: dari dashscope-intl.aliyuncs.com ke {WorkspaceId}.ap-southeast-1.maas.aliyuncs.com
Ganti {WorkspaceId} dengan Workspace ID Anda yang sebenarnya. Domain yang ada tetap berfungsi penuh.
Panduan pengguna: Tingkatkan akurasi pengenalan.
Kosakata kustom hanya didukung di ruang kerja utama. Sub-ruang kerja tidak mendukungnya.

Endpoint

SDK menggunakan endpoint China (Beijing) secara default. Untuk beralih ke wilayah lain, ubah Constants.baseHttpApiUrl sebelum inisialisasi.
  • Singapura
  • China (Beijing)
https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1Ganti {WorkspaceId} dengan Workspace ID Anda yang sebenarnya.
Untuk menggunakan wilayah Singapura, atur Constants.baseHttpApiUrl sebelum inisialisasi:
import com.alibaba.dashscope.utils.Constants;

// Atur ini di awal kode Anda
Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
Catatan:
  • Kunci API berbeda di setiap wilayah. Gunakan Kunci API yang sesuai dengan wilayah Anda.
  • Pengaturan wilayah bersifat global dan memengaruhi semua panggilan API DashScope.

VocabularyService

Paket: com.alibaba.dashscope.audio.asr.vocabulary.VocabularyService Deskripsi: Membuat, mengkueri, memperbarui, dan menghapus kosakata kustom.

Konstruktor

public VocabularyService(String apiKey)
Parameter:

Parameter

Tipe

Deskripsi

apiKey

String

DashScope API key

createVocabulary() - Membuat kosakata kustom

Signature metode:
public Vocabulary createVocabulary(String targetModel,String prefix,JsonArray vocabulary) throws NoApiKeyException, InputRequiredException
Parameter:

Parameter

Tipe

Wajib

Deskripsi

targetModel

String

Ya

Model pengenalan ucapan yang menggunakan kosakata ini. Nilai ini harus sesuai dengan model yang Anda tentukan saat memanggil API pengenalan ucapan.

prefix

String

Ya

Awalan kustom untuk kosakata. Hanya huruf kecil dan angka yang diperbolehkan, dengan panjang maksimum 10 karakter.

vocabulary

JsonArray

Ya

Daftar hotword. Setiap JsonObject berisi bidang seperti text, weight, dan lang.

Untuk informasi selengkapnya, lihat Struktur objek hotword.

Nilai kembalian:

Tipe

Deskripsi

Vocabulary

Objek kosakata kustom yang berisi ID kosakata dan metadata lainnya.

Pengecualian:

Pengecualian

Deskripsi

NoApiKeyException

Kunci API kosong.

InputRequiredException

Parameter yang diperlukan kosong.

listVocabulary() - Menampilkan daftar kosakata kustom

Signature metode:
public Vocabulary[] listVocabulary(String prefix) throws NoApiKeyException, InputRequiredException

public Vocabulary[] listVocabulary(String prefix, int pageIndex, int pageSize) throws NoApiKeyException, InputRequiredException
Parameter:

Parameter

Tipe

Wajib

Deskripsi

prefix

String

Tidak

Awalan kustom dari kosakata. Jika ditentukan, hanya kosakata dengan awalan ini yang dikembalikan.

pageIndex

int

Tidak

Nomor halaman, dimulai dari 0.

Nilai default: 0.

pageSize

int

Tidak

Jumlah entri per halaman.

Nilai default: 10.

Nilai kembalian:

Tipe

Deskripsi

Vocabulary[]

Array objek kosakata kustom.

Bidang yang dikembalikan oleh listVocabulary():

Bidang

Tipe

Deskripsi

vocabularyId

String

ID kosakata.

gmtCreate

String

Waktu pembuatan.

gmtModified

String

Waktu modifikasi terakhir.

status

String

Status:

  • OK: Siap.

  • UNDEPLOYED: Tidak tersedia.

Pengecualian:

Pengecualian

Deskripsi

NoApiKeyException

Kunci API kosong.

InputRequiredException

Parameter yang diperlukan kosong.

queryVocabulary() - Mengkueri kosakata kustom

Signature metode:
public Vocabulary queryVocabulary(String vocabularyId) throws NoApiKeyException, InputRequiredException
Parameter:

Parameter

Tipe

Wajib

Deskripsi

vocabularyId

String

Ya

ID kosakata kustom yang akan dikueri.

Nilai kembalian:

Tipe

Deskripsi

Vocabulary

Objek Vocabulary dengan entri hotword dan metadata.

Bidang yang dikembalikan oleh queryVocabulary():

Bidang

Tipe

Deskripsi

vocabulary

JsonArray

Konten kosakata kustom.

targetModel

String

Model pengenalan ucapan yang menggunakan kosakata ini. Nilai ini harus sesuai dengan model yang Anda tentukan saat memanggil API pengenalan ucapan.

gmtCreate

String

Waktu pembuatan.

gmtModified

String

Waktu modifikasi terakhir.

status

String

Status:

  • OK: Siap.

  • UNDEPLOYED: Tidak tersedia.

Pengecualian:

Pengecualian

Deskripsi

NoApiKeyException

Kunci API kosong.

InputRequiredException

Parameter yang diperlukan kosong.

updateVocabulary() - Memperbarui kosakata kustom

Signature metode:
public void updateVocabulary(String vocabularyId,JsonArray vocabulary) throws NoApiKeyException, InputRequiredException
Parameter:

Parameter

Tipe

Wajib

Deskripsi

vocabularyId

String

Ya

ID kosakata yang akan diperbarui.

vocabulary

JsonArray

Ya

Kosakata baru. Ini sepenuhnya menggantikan entri yang ada.

Nilai kembalian: Tidak ada Pengecualian:

Pengecualian

Deskripsi

NoApiKeyException

Kunci API kosong.

InputRequiredException

Parameter yang diperlukan kosong.

deleteVocabulary() - Menghapus kosakata kustom

Signature metode:
public void deleteVocabulary(String vocabularyId) throws NoApiKeyException, InputRequiredException
Parameter:

Parameter

Tipe

Wajib

Deskripsi

vocabularyId

String

Ya

ID kosakata yang akan dihapus.

Nilai kembalian: Tidak ada Pengecualian:

Pengecualian

Deskripsi

NoApiKeyException

Kunci API kosong.

InputRequiredException

Parameter yang diperlukan kosong.

Kelas Vocabulary

Paket: com.alibaba.dashscope.audio.asr.vocabulary.Vocabulary Deskripsi: Menyimpan metadata dan konten kosakata kustom.

Metode

Metode

Tipe kembalian

Deskripsi

getVocabularyId()

String

Mengembalikan ID kosakata.

getTargetModel()

String

Mengembalikan model target.

getVocabulary()

JsonArray

Mengembalikan konten kosakata kustom.

getStatus()

String

Mengembalikan status.

getGmtCreate()

String

Mengembalikan waktu pembuatan.

getGmtModified()

String

Mengembalikan waktu modifikasi terakhir.

getData()

JsonObject

Mengembalikan data lengkap dalam format JSON.

Struktur objek hotword

Field dalam setiap JsonObject hotword:

Bidang

Tipe

Wajib

Deskripsi

text

String

Ya

Teks entri kosakata.

Bahasa teks harus didukung oleh model yang dipilih. Bahasa yang didukung bervariasi tergantung model.

Gunakan kata-kata aktual, bukan kombinasi karakter sembarang, untuk meningkatkan akurasi pengenalan.

Panjang maksimum: 15 karakter untuk teks yang mencakup karakter non-ASCII, atau 7 kata yang dipisahkan spasi untuk teks ASCII saja.

weight

int

Ya

Bobot entri kosakata. Nilai yang direkomendasikan: 4.

Nilai valid: 1 hingga 5.

Jika akurasi pengenalan tidak meningkat, tingkatkan bobotnya. Bobot yang terlalu tinggi dapat mengurangi akurasi pengenalan kata lain.

lang

String

Tidak

Kode bahasa audio yang akan dikenali. Saat diatur, sistem meningkatkan pengenalan entri kosakata dalam bahasa yang ditentukan. Jika Anda tidak dapat menentukan bahasa sebelumnya, biarkan parameter ini tidak diatur. Model akan mendeteksi bahasa secara otomatis.

Nilai valid (berbeda-beda tergantung model):

  • Paraformer:

    • zh: Chinese

    • en: English

    • ja: Japanese

    • yue: Cantonese

    • ko: Korean

    • de: German

    • fr: French

    • ru: Russian

  • Fun-ASR:

    • zh: Chinese

    • en: English

    • ja: Japanese

Kode contoh

Membuat kosakata kustom

import com.alibaba.dashscope.audio.asr.vocabulary.Vocabulary;
import com.alibaba.dashscope.audio.asr.vocabulary.VocabularyService;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.utils.Constants;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;

import java.util.ArrayList;
import java.util.List;

public class Main {
    // Kunci API untuk wilayah Singapura dan China (Beijing) berbeda. Dapatkan kunci API: https://www.alibabacloud.com/help/en/model-studio/get-api-key
    // Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan kunci API Model Studio Anda: public static String apiKey = "sk-xxx"
    public static String apiKey = System.getenv("DASHSCOPE_API_KEY");

    public static void main(String[] args) throws NoApiKeyException, InputRequiredException {
        // Konfigurasi berikut untuk wilayah Singapura. Ganti "{WorkspaceId}" dengan workspace ID Anda yang sebenarnya. Konfigurasi bervariasi tergantung wilayah.
        Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
        String targetModel = "fun-asr";

        JsonArray vocabularyJson = new JsonArray();
        List<Hotword> wordList = new ArrayList<>();
        wordList.add(new Hotword("Wu yi gong", 4));
        wordList.add(new Hotword("A Family in Queli", 4));

        for (Hotword word : wordList) {
            JsonObject jsonObject = new JsonObject();
            jsonObject.addProperty("text", word.text);
            jsonObject.addProperty("weight", word.weight);
            vocabularyJson.add(jsonObject);
        }

        VocabularyService service = new VocabularyService(apiKey);
        Vocabulary vocabulary = service.createVocabulary(targetModel, "testpfx", vocabularyJson);
        System.out.println("ID kosakata kustom: " + vocabulary.getVocabularyId());
    }
}

class Hotword {
    String text;
    int weight;

    public Hotword(String text, int weight) {
        this.text = text;
        this.weight = weight;
    }
}

Menampilkan daftar kosakata kustom

import com.alibaba.dashscope.audio.asr.vocabulary.Vocabulary;
import com.alibaba.dashscope.audio.asr.vocabulary.VocabularyService;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.utils.Constants;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

public class Main {
    // Kunci API untuk wilayah Singapura dan China (Beijing) berbeda. Dapatkan kunci API: https://www.alibabacloud.com/help/en/model-studio/get-api-key
    // Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan kunci API Model Studio Anda: public static String apiKey = "sk-xxx"
    public static String apiKey = System.getenv("DASHSCOPE_API_KEY");

    public static void main(String[] args) throws NoApiKeyException, InputRequiredException {
        // Konfigurasi berikut untuk wilayah Singapura. Ganti "{WorkspaceId}" dengan workspace ID Anda yang sebenarnya. Konfigurasi bervariasi tergantung wilayah.
        Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";

        VocabularyService service = new VocabularyService(apiKey);
        Vocabulary[] vocabularies = service.listVocabulary("testpfx");
        Gson gson = new GsonBuilder()
                .setPrettyPrinting()
                .create();
        System.out.println("Kosakata kustom: " + gson.toJson(vocabularies));
    }
}

Mengkueri kosakata kustom

import com.alibaba.dashscope.audio.asr.vocabulary.Vocabulary;
import com.alibaba.dashscope.audio.asr.vocabulary.VocabularyService;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.utils.Constants;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

public class Main {
    // Kunci API untuk wilayah Singapura dan China (Beijing) berbeda. Dapatkan kunci API: https://www.alibabacloud.com/help/en/model-studio/get-api-key
    // Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan kunci API Model Studio Anda: public static String apiKey = "sk-xxx"
    public static String apiKey = System.getenv("DASHSCOPE_API_KEY");

    public static void main(String[] args) throws NoApiKeyException, InputRequiredException {
        // Konfigurasi berikut untuk wilayah Singapura. Ganti "{WorkspaceId}" dengan workspace ID Anda yang sebenarnya. Konfigurasi bervariasi tergantung wilayah.
        Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";

        VocabularyService service = new VocabularyService(apiKey);
        // Ganti dengan ID kosakata kustom yang sebenarnya saat mengkueri
        Vocabulary vocabulary = service.queryVocabulary("vocab-testpfx-xxxx");
        Gson gson = new GsonBuilder()
                .setPrettyPrinting()
                .create();
        System.out.println("Kosakata kustom: " + gson.toJson(vocabulary.getData()));
    }
}

Memperbarui kosakata kustom

import com.alibaba.dashscope.audio.asr.vocabulary.VocabularyService;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.utils.Constants;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;

import java.util.ArrayList;
import java.util.List;

public class Main {
    // Kunci API untuk wilayah Singapura dan China (Beijing) berbeda. Dapatkan kunci API: https://www.alibabacloud.com/help/en/model-studio/get-api-key
    // Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan kunci API Model Studio Anda: public static String apiKey = "sk-xxx"
    public static String apiKey = System.getenv("DASHSCOPE_API_KEY");

    public static void main(String[] args) throws NoApiKeyException, InputRequiredException {
        // Konfigurasi berikut untuk wilayah Singapura. Ganti "{WorkspaceId}" dengan workspace ID Anda yang sebenarnya. Konfigurasi bervariasi tergantung wilayah.
        Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";

        JsonArray vocabularyJson = new JsonArray();
        List<Hotword> wordList = new ArrayList<>();
        wordList.add(new Hotword("Wu yi gong", 4, "en"));
        wordList.add(new Hotword("A Family in Queli", 4, "en"));

        for (Hotword word : wordList) {
            JsonObject jsonObject = new JsonObject();
            jsonObject.addProperty("text", word.text);
            jsonObject.addProperty("weight", word.weight);
            jsonObject.addProperty("lang", word.lang);
            vocabularyJson.add(jsonObject);
        }

        VocabularyService service = new VocabularyService(apiKey);
        // Ganti dengan ID kosakata kustom yang sebenarnya
        service.updateVocabulary("vocab-testpfx-xxx", vocabularyJson);
    }
}

class Hotword {
    String text;
    int weight;
    String lang;

    public Hotword(String text, int weight, String lang) {
        this.text = text;
        this.weight = weight;
        this.lang = lang;
    }
}

Menghapus kosakata kustom

import com.alibaba.dashscope.audio.asr.vocabulary.VocabularyService;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.utils.Constants;

public class Main {
    // Kunci API untuk wilayah Singapura dan Beijing berbeda. Dapatkan kunci API: https://www.alibabacloud.com/help/en/model-studio/get-api-key
    // Jika tidak ada variabel lingkungan yang dikonfigurasi, ganti baris berikut dengan kunci API Model Studio Anda: public static String apiKey = "sk-xxx"
    public static String apiKey = System.getenv("DASHSCOPE_API_KEY");

    public static void main(String[] args) throws NoApiKeyException, InputRequiredException {
        // Konfigurasi berikut untuk wilayah Singapura. Ganti "{WorkspaceId}" dengan workspace ID Anda yang sebenarnya. Konfigurasi bervariasi tergantung wilayah.
        Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";

        VocabularyService service = new VocabularyService(apiKey);
        // Ganti dengan ID kosakata yang sebenarnya saat menghapus
        service.deleteVocabulary("vocab-testpfx-xxxx");
    }
}
Pembuatan Gambar
  • FAQ
Video Generation
Model Dunia
Audio
Realtime API
Penyematan Teks
TokenPlan
Model production