Hotwords personalizadas Python SDK
Use o Python SDK para criar, listar, consultar, atualizar e excluir vocabulários personalizados para reconhecimento de fala.
Guia do usuário: Melhorar a precisão do reconhecimento.
Pré-requisitos
- Uma chave de API configurado como o
DASHSCOPE_API_KEYvariável de ambiente - O SDK DashScope mais recente
URL do serviço
Defina o URL base antes de criar o serviço:
import dashscope
dashscope.base_http_api_url = 'https://maas.qwencloudapi.com/api/v1'
Classe VocabularyService
Pacote: dashscope.audio.asr.VocabularyService
Gerencia o ciclo de vida de vocabulários personalizados (criar, listar, consultar, atualizar, excluir).
Construtor
VocabularyService(api_key: str = None, workspace: str = None, model: str = None)
Se api_key não for aprovado, o SDK usará o global dashscope.api_key.
criar_vocabulário()
Crie um vocabulário personalizado.
def create_vocabulary(self, target_model: str, prefix: str,
vocabulary: List[dict]) -> str
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| alvo_modelo | Sim | O modelo de reconhecimento de fala que usa esse vocabulário. Deve corresponder ao modelo especificado ao chamar a API de reconhecimento de fala. | |
| prefixo | Sim | Um prefixo personalizado para o vocabulário. Somente letras minúsculas e dígitos são permitidos, no máximo 10 caracteres. | |
| vocabulário | Lista[dict] | Sim | Uma lista de palavras-chave. Consulte Estrutura de entrada de hotword. |
Retornos: str — o ID do vocabulário criado.
import dashscope
from dashscope.audio.asr import VocabularyService
import os
dashscope.api_key = os.environ.get('DASHSCOPE_API_KEY')
dashscope.base_http_api_url = 'https://maas.qwencloudapi.com/api/v1'
prefix = 'testpfx'
target_model = "fun-asr"
my_vocabulary = [
{"text": "Seediq Bale", "weight": 4}
]
service = VocabularyService()
vocabulary_id = service.create_vocabulary(
prefix=prefix,
target_model=target_model,
vocabulary=my_vocabulary)
print(f"Vocabulary ID: {vocabulary_id}")
lista_vocabulários()
Liste vocabulários personalizados com filtragem e paginação opcionais.
A API HTTP usa o formato singular list_vocabulary, enquanto o nome do método Python usa o plural list_vocabularies.
def list_vocabularies(self, prefix: str = None,
page_index: int = 0,
page_size: int = 10) -> List[dict]
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| prefixo | Não | Filtre por prefixo de vocabulário. | |
| página_índice | interno | Não | Número da página, começando em 0. Padrão: 0. |
| página_tamanho | interno | Não | Número de entradas por página. Padrão: 10. |
Retornos: List[dict] — uma lista de objetos de vocabulário, cada um contendo:
| Campo | Tipo | Descrição |
|---|---|---|
| vocabulário_id | O ID do vocabulário. | |
| gmt_criar | O tempo de criação. | |
| gmt_modificado | A hora da última modificação. | |
| estado | OK: Pronto. UNDEPLOYED: Não disponível. |
import dashscope
from dashscope.audio.asr import VocabularyService
import json
import os
dashscope.api_key = os.environ.get('DASHSCOPE_API_KEY')
dashscope.base_http_api_url = 'https://maas.qwencloudapi.com/api/v1'
service = VocabularyService()
vocabularies = service.list_vocabularies()
print(f"Vocabularies: {json.dumps(vocabularies)}")
consulta_vocabulário()
Consulte detalhes de um vocabulário personalizado específico.
def query_vocabulary(self, vocabulary_id: str) -> dict
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| vocabulário_id | Sim | O ID do vocabulário personalizado a ser consultado. |
Retornos: dict — um objeto de vocabulário contendo:
| Campo | Tipo | Descrição |
|---|---|---|
| vocabulário | Lista[dict] | O conteúdo da lista de hotwords. |
| alvo_modelo | O modelo de reconhecimento de fala que usa esse vocabulário. | |
| gmt_criar | O tempo de criação. | |
| gmt_modificado | A hora da última modificação. | |
| estado | OK: Pronto. UNDEPLOYED: Não disponível. |
import dashscope
from dashscope.audio.asr import VocabularyService
import json
import os
dashscope.api_key = os.environ.get('DASHSCOPE_API_KEY')
dashscope.base_http_api_url = 'https://maas.qwencloudapi.com/api/v1'
service = VocabularyService()
vocabulary = service.query_vocabulary("vocab-testpfx-xxx")
print(f"Vocabulary: {json.dumps(vocabulary, ensure_ascii=False)}")
atualização_vocabulário()
Atualize um vocabulário personalizado. Isso substitui completamente as entradas existentes.
def update_vocabulary(self, vocabulary_id: str,
vocabulary: List[dict]) -> None
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| vocabulário_id | Sim | O ID do vocabulário a ser atualizado. | |
| vocabulário | Lista[dict] | Sim | As novas entradas de vocabulário. Consulte Estrutura de entrada de hotword. |
Retornos: None
import dashscope
from dashscope.audio.asr import VocabularyService
import os
dashscope.api_key = os.environ.get('DASHSCOPE_API_KEY')
dashscope.base_http_api_url = 'https://maas.qwencloudapi.com/api/v1'
service = VocabularyService()
my_vocabulary = [
{"text": "Seediq Bale", "weight": 4, "lang": "en"}
]
service.update_vocabulary("vocab-testpfx-xxx", my_vocabulary)
deletar_vocabulário()
Exclua um vocabulário personalizado.
def delete_vocabulary(self, vocabulary_id: str) -> None
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| vocabulário_id | Sim | O ID do vocabulário a ser excluído. |
Retornos: None
import dashscope
from dashscope.audio.asr import VocabularyService
import os
dashscope.api_key = os.environ.get('DASHSCOPE_API_KEY')
dashscope.base_http_api_url = 'https://maas.qwencloudapi.com/api/v1'
service = VocabularyService()
service.delete_vocabulary("vocab-testpfx-xxxx")
Estrutura de entrada de hotword
Cada entrada no vocabulary lista possui os seguintes campos:
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| texto | Sim | O texto de entrada do vocabulário. O idioma do texto deve ser suportado pelo modelo selecionado. Use palavras reais em vez de combinações arbitrárias de caracteres. Comprimento máximo: 15 caracteres para texto que inclua caracteres não ASCII ou 7 palavras separadas por espaço para texto somente ASCII. | |
| peso | interno | Sim | O peso da entrada do vocabulário. Valor recomendado: 4. Valores válidos: 1 a 5. Se a precisão do reconhecimento não melhorar, aumente o peso. Um peso excessivamente alto pode reduzir a precisão do reconhecimento de outras palavras. |
| idioma | Não | O código do idioma do áudio a ser reconhecido. Quando definido, o sistema melhora o reconhecimento de entradas de vocabulário no idioma especificado. Se não for possível determinar o idioma antecipadamente, deixe esse parâmetro indefinido. Os valores válidos variam de acordo com o modelo. Fun-ASR: zh (chinês), en (Inglês), ja (Japonês). |