Skip to main content

Referencia del SDK de Python para palabras clave personalizadas

Utilice el SDK de Python para crear, listar, consultar, actualizar y eliminar vocabularios personalizados para el reconocimiento de voz.

Alibaba Cloud Model Studio ha lanzado dominios específicos de espacio de trabajo para las regiones de China (Beijing) y Singapur. Los nuevos dominios dedicados ofrecen un rendimiento superior y una mayor estabilidad para las solicitudes de inferencia. Recomendamos migrar a los nuevos dominios:
  • China (Pekín): de dashscope.aliyuncs.com a {WorkspaceId}.cn-beijing.maas.aliyuncs.com
  • Singapur: de dashscope-intl.aliyuncs.com a {WorkspaceId}.ap-southeast-1.maas.aliyuncs.com
Reemplace {WorkspaceId} con su ID de espacio de trabajo real. Los dominios existentes permanecen totalmente funcionales.
Guía del usuario: Mejorar la precisión del reconocimiento.
El vocabulario personalizado solo es compatible con el espacio de trabajo principal. Los subespacios de trabajo no lo admiten.

Endpoint

El SDK utiliza por defecto el endpoint de la región de China (Pekín). Para cambiar a otra región, especifique el parámetro region al construir dashscope.Client (por ejemplo, ap-southeast-1 para la región de Singapur).
  • Singapore
  • China (Beijing)
https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1Reemplace {WorkspaceId} con su ID de espacio de trabajo real.
Cambio a la región de Singapur:
import os
import dashscope

# Especifique la región al construir el Client
client = dashscope.Client(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    workspace="{WorkspaceId}",
    region="ap-southeast-1",
)
Nota:
  • Las claves de API difieren entre regiones. Utilice la clave de API que coincida con su región.
  • La configuración de región es un ajuste a nivel de instancia de dashscope.Client y solo afecta a las llamadas a la API realizadas con ese client.

client.audio.vocabularies

Entrada de recurso: el recurso client.audio.vocabularies de una instancia de dashscope.Client Función: gestiona el ciclo de vida de los vocabularios personalizados (creación, consulta, actualización y eliminación).

Constructor

import os
import dashscope

client = dashscope.Client(
    api_key=os.getenv('DASHSCOPE_API_KEY'),
    workspace='{WorkspaceId}',
    region='ap-southeast-1',
)
Si no se pasa api_key, el SDK lee automáticamente el valor de la variable de entorno DASHSCOPE_API_KEY.

create() - Crear un vocabulario personalizado

Firma del método:
def create(
    self,
    *,
    target_model: str,
    prefix: str,
    vocabulary: List[dict]) -> Vocabulary
Parámetros:

Parámetro

Tipo

Obligatorio

Descripción

target_model

str

Sí

El modelo de reconocimiento de voz que utiliza este vocabulario. Este valor debe coincidir con el modelo que especifique al llamar a la API de reconocimiento de voz.

prefix

str

Sí

Un prefijo personalizado para el vocabulario. Solo se permiten letras minúsculas y dígitos, con una longitud máxima de 10 caracteres.

vocabulary

List[dict]

Sí

Una lista de palabras clave. Cada entrada es un dict con los campos text, weight y lang.

Para obtener más información, consulte Estructura del diccionario de palabras clave.

Valor de retorno:

Tipo

Descripción

Vocabulary

Objeto de vocabulario; obtenga el ID del vocabulario mediante el campo vocabulary_id.

list() - Listar vocabularios personalizados

Se asigna a la API HTTP action: list_vocabulary. Firma del método:
def list(
    self,
    *,
    prefix: str = None,
    page_index: int = 0,
    page_size: int = 10) -> VocabularyList
Parámetros:

Parámetro

Tipo

Obligatorio

Descripción

prefix

str

No

El prefijo personalizado del vocabulario. Cuando se especifica, solo se devuelven los vocabularios con este prefijo.

page_index

int

No

El número de página, comenzando desde 0.

Valor predeterminado: 0.

page_size

int

No

El número de entradas por página.

Valor predeterminado: 10.

Valor de retorno:

Tipo

Descripción

VocabularyList

Objeto paginado de vocabularios; el campo vocabularies es una matriz con la información de cada vocabulario (vocabulary_id, gmt_create, gmt_modified, status).

Campos devueltos por list():

Campo

Tipo

Descripción

vocabulary_id

str

El ID del vocabulario.

gmt_create

str

La hora de creación.

gmt_modified

str

La hora de la última modificación.

status

str

El estado:

  • OK: Listo.

  • UNDEPLOYED: No disponible.

get() - Consultar un vocabulario personalizado

Corresponde a query_vocabulary() del SDK 1.x. Firma del método:
def get(
    self,
    vocabulary_id: str) -> Vocabulary
Parámetros:

Parámetro

Tipo

Obligatorio

Descripción

vocabulary_id

str

Sí

El ID del vocabulario personalizado que se desea consultar.

Valor de retorno:

Tipo

Descripción

Vocabulary

Objeto con la información detallada del vocabulario, que contiene vocabulary, target_model, gmt_create, gmt_modified y status.

Campos devueltos por get():

Campo

Tipo

Descripción

vocabulary

List[dict]

El contenido de la lista de palabras clave.

target_model

str

El modelo de reconocimiento de voz que utiliza este vocabulario. Este valor debe coincidir con el modelo que especifique al llamar a la API de reconocimiento de voz.

gmt_create

str

La hora de creación.

gmt_modified

str

La hora de la última modificación.

status

str

El estado:

  • OK: Listo.

  • UNDEPLOYED: No disponible.

update() - Actualizar un vocabulario personalizado

Firma del método:
def update(
    self,
    vocabulary_id: str,
    *,
    vocabulary: List[dict]) -> JobStatus
Parámetros:

Parámetro

Tipo

Obligatorio

Descripción

vocabulary_id

str

Sí

El ID del vocabulario que se desea actualizar.

vocabulary

List[dict]

Sí

El nuevo vocabulario. Esto reemplaza por completo las entradas existentes.

Valor de retorno: objeto JobStatus; el campo status indica el estado de la operación.

delete() - Eliminar un vocabulario personalizado

Firma del método:
def delete(
    self,
    vocabulary_id: str) -> JobStatus
Parámetros:

Parámetro

Tipo

Obligatorio

Descripción

vocabulary_id

str

Sí

El ID del vocabulario que se desea eliminar.

Valor de retorno: objeto JobStatus; el campo status indica el estado de la operación.

Estructura del diccionario de palabras clave

Campos en cada diccionario de vocabulario:

Campo

Tipo

Obligatorio

Descripción

text

str

Sí

El texto de la entrada de vocabulario.

El idioma del texto debe ser compatible con el modelo seleccionado. Los idiomas admitidos varían según el modelo.

Utilice palabras reales en lugar de combinaciones arbitrarias de caracteres para mejorar la precisión del reconocimiento.

Longitud máxima: 15 caracteres para texto que incluye caracteres no ASCII, o 7 palabras separadas por espacios para texto solo ASCII.

weight

int

Sí

El peso de la entrada de vocabulario. Valor recomendado: 4.

Valores válidos: de 1 a 5.

Si la precisión del reconocimiento no mejora, aumente el peso. Un peso excesivamente alto puede reducir la precisión del reconocimiento de otras palabras.

lang

str

No

El código de idioma del audio que se va a reconocer. Cuando se establece, el sistema mejora el reconocimiento de las entradas de vocabulario en el idioma especificado. Si no puede determinar el idioma de antemano, deje este parámetro sin configurar. El modelo detecta el idioma automáticamente.

Valores válidos (varían según el modelo):

  • Paraformer:

    • zh: Chino

    • en: Inglés

    • ja: Japonés

    • yue: Cantonés

    • ko: Coreano

    • de: Alemán

    • fr: Francés

    • ru: Ruso

  • Fun-ASR:

    • zh: Chino

    • en: Inglés

    • ja: Japonés

Código de ejemplo

Todos los ejemplos leen la clave API desde una variable de entorno.

Crear un vocabulario personalizado

import os
import dashscope

# La API Key difiere entre las regiones de Singapur y Pekín. Obtenga una API Key: https://www.alibabacloud.com/help/model-studio/get-api-key
# Si la variable de entorno no está configurada, sustituya la siguiente línea por su API Key de Model Studio: api_key="sk-xxx"
client = dashscope.Client(
    api_key=os.environ.get('DASHSCOPE_API_KEY'),
    # La siguiente es la configuración de la región de Singapur (ap-southeast-1). Al llamar, sustituya "{WorkspaceId}" por el ID real de su espacio de trabajo. La configuración varía según la región.
    workspace='{WorkspaceId}',
    region='ap-southeast-1',
)

prefix = 'testpfx'
target_model = "fun-asr"

my_vocabulary = [
    {"text": "Seediq Bale", "weight": 4}
]

# Crea el vocabulario
vocabulary = client.audio.vocabularies.create(
    prefix=prefix,
    target_model=target_model,
    vocabulary=my_vocabulary)

print(f"El ID de la lista de vocabulario es: {vocabulary.vocabulary_id}")

Listar vocabularios personalizados

import json
import os
import dashscope

import os
import dashscope

# La API Key difiere entre las regiones de Singapur y Pekín. Obtenga una API Key: https://www.alibabacloud.com/help/model-studio/get-api-key
# Si la variable de entorno no está configurada, sustituya la siguiente línea por su API Key de Model Studio: api_key="sk-xxx"
client = dashscope.Client(
    api_key=os.environ.get('DASHSCOPE_API_KEY'),
    # La siguiente es la configuración de la región de Singapur (ap-southeast-1). Al llamar, sustituya "{WorkspaceId}" por el ID real de su espacio de trabajo. La configuración varía según la región.
    workspace='{WorkspaceId}',
    region='ap-southeast-1',
)

result = client.audio.vocabularies.list()
print(f"Lista de vocabulario: {json.dumps(result.vocabularies)}")

Consultar un vocabulario personalizado

import json
import os
import dashscope

import os
import dashscope

# La API Key difiere entre las regiones de Singapur y Pekín. Obtenga una API Key: https://www.alibabacloud.com/help/model-studio/get-api-key
# Si la variable de entorno no está configurada, sustituya la siguiente línea por su API Key de Model Studio: api_key="sk-xxx"
client = dashscope.Client(
    api_key=os.environ.get('DASHSCOPE_API_KEY'),
    # La siguiente es la configuración de la región de Singapur (ap-southeast-1). Al llamar, sustituya "{WorkspaceId}" por el ID real de su espacio de trabajo. La configuración varía según la región.
    workspace='{WorkspaceId}',
    region='ap-southeast-1',
)

# Reemplace con el ID de vocabulario real al consultar
vocabulary = client.audio.vocabularies.get("vocab-testpfx-xxx")
print(f"Lista de vocabulario: {json.dumps(vocabulary.vocabulary, ensure_ascii=False)}")

Actualizar un vocabulario personalizado

import os
import dashscope

# La API Key difiere entre las regiones de Singapur y Pekín. Obtenga una API Key: https://www.alibabacloud.com/help/model-studio/get-api-key
# Si la variable de entorno no está configurada, sustituya la siguiente línea por su API Key de Model Studio: api_key="sk-xxx"
client = dashscope.Client(
    api_key=os.environ.get('DASHSCOPE_API_KEY'),
    # La siguiente es la configuración de la región de Singapur (ap-southeast-1). Al llamar, sustituya "{WorkspaceId}" por el ID real de su espacio de trabajo. La configuración varía según la región.
    workspace='{WorkspaceId}',
    region='ap-southeast-1',
)

my_vocabulary = [
    {"text": "Seediq Bale", "weight": 4, "lang": "en"}
]
# Reemplace con el ID de vocabulario real
result = client.audio.vocabularies.update("vocab-testpfx-xxx", vocabulary=my_vocabulary)
print(f"Estado de la actualización: {result.status}")

Eliminar un vocabulario personalizado

import os
import dashscope

# La API Key difiere entre las regiones de Singapur y Pekín. Obtenga una API Key: https://www.alibabacloud.com/help/model-studio/get-api-key
# Si la variable de entorno no está configurada, sustituya la siguiente línea por su API Key de Model Studio: api_key="sk-xxx"
client = dashscope.Client(
    api_key=os.environ.get('DASHSCOPE_API_KEY'),
    # La siguiente es la configuración de la región de Singapur (ap-southeast-1). Al llamar, sustituya "{WorkspaceId}" por el ID real de su espacio de trabajo. La configuración varía según la región.
    workspace='{WorkspaceId}',
    region='ap-southeast-1',
)

# Reemplace con el ID real de la tabla de vocabulario
result = client.audio.vocabularies.delete("vocab-testpfx-xxxx")
print(f"Estado de la eliminación: {result.status}")