Utilice el SDK de Python para crear, listar, consultar, actualizar y eliminar vocabularios personalizados para el reconocimiento de voz.
ImportanteAlibaba 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.coma{WorkspaceId}.cn-beijing.maas.aliyuncs.com - Singapur: de
dashscope-intl.aliyuncs.coma{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.
ImportanteEl vocabulario personalizado solo es compatible con el espacio de trabajo principal. Los subespacios de trabajo no lo admiten.
Endpoint
El SDK se conecta al endpoint de China (Beijing) de forma predeterminada. Para usar una región diferente, configure dashscope.base_http_api_url antes de realizar cualquier llamada a la API.
Singapore
https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1
Reemplace {WorkspaceId} con su ID de espacio de trabajo real.
China (Beijing)
https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1
Reemplace {WorkspaceId} con su ID de espacio de trabajo real.
Para usar la región Singapore, configure dashscope.base_http_api_url antes de realizar cualquier llamada:
import dashscope
# Set this at the beginning of your code
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
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 global y afecta a todas las llamadas a la API de DashScope.
VocabularyService
Paquete: dashscope.audio.asr.VocabularyService
Descripción: Crea, lista, consulta, actualiza y elimina vocabularios personalizados.
Constructor
VocabularyService(api_key: str = None, workspace: str = None, model: str = None)
Si no se pasa api_key, el SDK utiliza la variable global dashscope.api_key.
create_vocabulary() - Crear un vocabulario personalizado
Firma del método:
def create_vocabulary(
self,
target_model: str,
prefix: str,
vocabulary: List[dict]) -> str
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 |
|---|---|
str | El ID del vocabulario creado. |
list_vocabularies() - Listar vocabularios personalizados
Se asigna a la API HTTP action: list_vocabulary (HTTP usa la forma singular, mientras que el nombre del método de Python list_vocabularies usa el plural).
Firma del método:
def list_vocabularies(
self,
prefix: str = None,
page_index: int = 0,
page_size: int = 10) -> List[dict]
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 |
|---|---|
List[dict] | Una lista de objetos de vocabulario, cada uno conteniendo vocabulary_id, gmt_create, gmt_modified y status. |
Campos devueltos por list_vocabularies():
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:
|
query_vocabulary() - Consultar un vocabulario personalizado
Firma del método:
def query_vocabulary(
self,
vocabulary_id: str) -> dict
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 |
|---|---|
dict | Un objeto de vocabulario que contiene vocabulary, target_model, gmt_create, gmt_modified y status. |
Campos devueltos por query_vocabulary():
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:
|
update_vocabulary() - Actualizar un vocabulario personalizado
Firma del método:
def update_vocabulary(
self,
vocabulary_id: str,
vocabulary: List[dict]) -> None
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: None
delete_vocabulary() - Eliminar un vocabulario personalizado
Firma del método:
def delete_vocabulary(
self,
vocabulary_id: str) -> None
Parámetros:
Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
vocabulary_id | str | Sí | El ID del vocabulario que se desea eliminar. |
Valor de retorno: None
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):
|
Código de ejemplo
Todos los ejemplos leen la clave API desde una variable de entorno.
Crear un vocabulario personalizado
import dashscope
from dashscope.audio.asr import *
import os
# The API keys for the Singapore and Beijing regions are different. Get an API key: https://www.alibabacloud.com/help/model-studio/get-api-key
# If no environment variable is configured, replace the following line with your Model Studio API key: dashscope.api_key = "sk-xxx"
dashscope.api_key = os.environ.get('DASHSCOPE_API_KEY')
# The following configuration is for the Singapore region. Replace "{WorkspaceId}" with your actual workspace ID. The configuration varies by region.
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
prefix = 'testpfx'
target_model = "fun-asr"
my_vocabulary = [
{"text": "Seediq Bale", "weight": 4}
]
# Create a custom vocabulary
service = VocabularyService()
vocabulary_id = service.create_vocabulary(
prefix=prefix,
target_model=target_model,
vocabulary=my_vocabulary)
print(f"Vocabulary ID: {vocabulary_id}")
Listar vocabularios personalizados
import dashscope
from dashscope.audio.asr import *
import json
import os
# The API keys for the Singapore and Beijing regions are different. Get an API key: https://www.alibabacloud.com/help/model-studio/get-api-key
# If no environment variable is configured, replace the following line with your Model Studio API key: dashscope.api_key = "sk-xxx"
dashscope.api_key = os.environ.get('DASHSCOPE_API_KEY')
# The following configuration is for the Singapore region. Replace "{WorkspaceId}" with your actual workspace ID. The configuration varies by region.
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
service = VocabularyService()
vocabularies = service.list_vocabularies()
print(f"Vocabularies: {json.dumps(vocabularies)}")
Consultar un vocabulario personalizado
import dashscope
from dashscope.audio.asr import *
import json
import os
# The API keys for the Singapore and Beijing regions are different. Get an API key: https://www.alibabacloud.com/help/model-studio/get-api-key
# If no environment variable is configured, replace the following line with your Model Studio API key: dashscope.api_key = "sk-xxx"
dashscope.api_key = os.environ.get('DASHSCOPE_API_KEY')
# The following configuration is for the Singapore region. Replace "{WorkspaceId}" with your actual workspace ID. The configuration varies by region.
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
service = VocabularyService()
# Replace with the actual vocabulary ID when querying
vocabulary = service.query_vocabulary("vocab-testpfx-xxx")
print(f"Vocabulary: {json.dumps(vocabulary, ensure_ascii=False)}")
Actualizar un vocabulario personalizado
import dashscope
from dashscope.audio.asr import *
import os
# The API keys for the Singapore and Beijing regions are different. Get an API key: https://www.alibabacloud.com/help/model-studio/get-api-key
# If no environment variable is configured, replace the following line with your Model Studio API key: dashscope.api_key = "sk-xxx"
dashscope.api_key = os.environ.get('DASHSCOPE_API_KEY')
# The following configuration is for the Singapore region. Replace "{WorkspaceId}" with your actual workspace ID. The configuration varies by region.
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
service = VocabularyService()
my_vocabulary = [
{"text": "Seediq Bale", "weight": 4, "lang": "en"}
]
# Replace with the actual vocabulary ID when updating
service.update_vocabulary("vocab-testpfx-xxx", my_vocabulary)
Eliminar un vocabulario personalizado
import dashscope
from dashscope.audio.asr import *
import os
# The API keys for the Singapore and Beijing regions are different. Get an API key: https://www.alibabacloud.com/help/model-studio/get-api-key
# If no environment variable is configured, replace the following line with your Model Studio API key: dashscope.api_key = "sk-xxx"
dashscope.api_key = os.environ.get('DASHSCOPE_API_KEY')
# The following configuration is for the Singapore region. Replace "{WorkspaceId}" with your actual workspace ID. The configuration varies by region.
dashscope.base_http_api_url = 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1'
service = VocabularyService()
# Replace with the actual vocabulary ID when deleting
service.delete_vocabulary("vocab-testpfx-xxxx")