QwenCloudBRASIL
Tradução de apoio para consulta. Código e identificadores técnicos preservados. Consultar referência original ↗

Qwen-Audio-3.0-ASR-Flash-Filetrans/Fun-ASR gravando Android SDK

Transcrição de arquivos Android SDK para Qwen-Audio-3.0-ASR-Flash-Filetrans/Fun-ASR

Guia do usuário: Reconhecimento de fala em tempo não real. Para requisitos de entrada, como formatos de áudio suportados, limites de tamanho de arquivo e limites de duração, consulte Especificações de áudio.

Início rápido

  1. Obtenha uma chave de API: Obtenha uma chave de API. Para melhor segurança, armazene a chave API em uma variável de ambiente.

  2. Baixe o SDK e execute o código de exemplo:

    • Baixe o pacote SDK mais recente.
    • Extraia o pacote ZIP. Encontre o SDK em formato AAR no app/libs diretório e adicione-o às dependências do seu projeto. Para integração com Android C++, use android_libs e android_include no pacote ZIP para obter as bibliotecas dinâmicas e arquivos de cabeçalho.
    • Abra o projeto no Android Studio. O código de exemplo está em DashFunAsrFileTranscriberActivity.java. Substitua a chave de API e experimente o recurso.

Procedimento de chamada

Synchronous mode

1. Inicialize o SDK.
2. Configure os parâmetros exigidos pelo seu negócio.
3. Definir `async_request` para `false` e chame [startFileTransscriber](#startfiletranscriber) para enviar uma solicitação de reconhecimento de fala em tempo não real e aguardar o resultado.
4. Ouça o `EVENT_FILE_TRANS_RESULT` evento no [onFileTransEventCallback](#onfiletranseventcallback-listen-for-events-and-recognition-results) interface para obter o resultado final do reconhecimento.
5. Ligue para [liberação](#release) para liberar os recursos do SDK.

Asynchronous mode

1. Inicialize o SDK.
2. Configure os parâmetros exigidos pelo seu negócio.
3. Definir `async_request` para `true` e chame [startFileTransscriber](#startfiletranscriber) para enviar uma solicitação de reconhecimento de fala em tempo não real.
4. Chame [queryFileTranscriber](#queryfiletranscriber) para pesquisar o progresso e o resultado do reconhecimento.
5. Ouça o `EVENT_FILE_TRANS_QUERY_RESULT` evento no [onFileTransEventCallback](#onfiletranseventcallback-listen-for-events-and-recognition-results) para obter o resultado da consulta atual.
6. Ouça o `EVENT_FILE_TRANS_RESULT` evento no [onFileTransEventCallback](#onfiletranseventcallback-listen-for-events-and-recognition-results) interface para obter o resultado final do reconhecimento.
7. Ligue para [liberação](#release) para liberar os recursos do SDK.

Parâmetros de solicitação

Parâmetros de conexão e controle

Configure esses parâmetros passando uma string JSON no arquivo parameters argumento do inicializar interface.

{
    "url": "wss://maas.qwencloudapi.com/api/v1/services/audio/asr/transcription",
    "apikey": "st-****",
    "device_id": "my_device_id",
    "service_mode": "1"
}
Parâmetro Tipo Obrigatório Descrição
url String Sim O ponto final. Isto é fixado em wss://maas.qwencloudapi.com/api/v1/services/audio/asr/transcription.
apikey String Sim A chave da API.
service_mode String Sim O modo de execução. Corrigido para "1" para reconhecimento de fala gravada.
device_id String Sim Uma string exclusiva que identifica o usuário final. Defina-o como um ID de usuário no aplicativo ou um identificador de dispositivo gerado pelo cliente. Esse ID é usado principalmente para rastreamento de log e solução de problemas.
debug_path String Não O caminho de armazenamento do arquivo de log.
Este parâmetro entra em vigor somente quando save_log é definido como verdadeiro no initialize interface. Nesse caso, você deverá definir o caminho do arquivo de log ou um erro será relatado.
No máximo dois arquivos de log são mantidos localmente.
max_log_file_size int Não O tamanho máximo do arquivo de log, em bytes.
Este parâmetro entra em vigor somente quando save_log é definido como verdadeiro no initialize interface.
Padrão: 104857600 (100 * 1024 * 1024 bytes, ou seja, 100 MiB).
log_track_level int Não O nível de filtro para o conteúdo do log enviado por meio do retorno de chamada do log (onFileTransLogTrackCallback).
Padrão: 2.
Valores válidos:
<ul><li>0: LOG_LEVEL_VERBOSE</li><li>1: LOG_LEVEL_DEBUG</li><li>2: LOG_LEVEL_INFO</li><li>3: LOG_LEVEL_WARNING</li><li>4: LOG_LEVEL_ERROR</li><li>5: LOG_LEVEL_NONE (desativa este recurso)</li></ul>
Nota: log_track_level e level (definido através do initialize interface) juntos determinam quais logs serão enviados para o retorno de chamada. Um log é enviado para o retorno de chamada somente quando seu valor de nível é maior ou igual a ambos log_track_level e level. Por exemplo, se log_track_level está definido como 2 (INFO) e level estiver definido como 3 (WARNING), somente logs no nível WARNING ou superior (valor >= 3) serão enviados para o retorno de chamada.

Parâmetros de reconhecimento de fala

Configure todos os parâmetros de reconhecimento de fala através do startFileTransscriber interface.

{
    "apikey": "st-****",
    "file_urls": [
        "{YOUR_AUDIO_URL}"
    ],
    "async_request": false,
    "nls_config": {
        "model":"qwen-audio-3.0-asr-flash-filetrans",
        "diarization_enabled": false
    }
}
Parâmetro Tipo Obrigatório Descrição
file_urls array[string] Sim Uma lista de URLs dos arquivos de áudio ou vídeo a serem transcritos. HTTP e HTTPS são suportados. Uma única solicitação oferece suporte a apenas um URL. Para requisitos de entrada, como formatos de áudio suportados, limites de tamanho de arquivo e limites de duração, consulte Especificações de áudio.
Se a gravação for armazenada no Alibaba Cloud OSS, a API RESTful suporta URLs temporários prefixados com oss://, enquanto o SDK não oferece suporte oss://URLs temporários com prefixo.
<ul><li>Um URL temporário é válido por 48 horas e não pode ser usado após expirar. Não use em produção.</li><li>A interface de upload de credenciais tem taxa limitada a 100 QPS e não pode ser ampliada. Não use-o em cenários de produção, alta simultaneidade ou testes de carga.</li><li>Para produção, use armazenamento estável, como o Alibaba Cloud OSS, para manter os arquivos disponíveis a longo prazo e evitar a limitação de taxas.</li><li>Se um URL de arquivo de áudio definido como um URL público temporário de OSS estiver inacessível, defina X-DashScope-OssResourceResolve para enable no cabeçalho da solicitação (não recomendado).</li></ul>
O SDK não oferece suporte à configuração de cabeçalhos de solicitação.
async_request boolean Não Se a solicitação de reconhecimento é assíncrona.
Padrão: false.
Valores válidos:
<ul><li>verdadeiro: solicitação assíncrona</li><li>falso: solicitação síncrona</li></ul>
apikey string Não Se o apikey em Parâmetros de conexão e controle é uma chave de API temporária, você pode atualizá-lo aqui para evitar a expiração.
nls_config object Sim O objeto de configuração principal para reconhecimento de fala. Ele contém parâmetros importantes, como seleção de modelo e controle de reconhecimento.
nls_config.model string Sim O nome do modelo. Os valores suportados incluem o Qwen-Audio-3.0-ASR-Flash-Filetrans e Fun-ASR famílias modelo. Para obter detalhes, consulte Modelos e regiões compatíveis.
nls_config.special_word_filter object Não As palavras sensíveis a serem processadas durante o reconhecimento de fala. Você pode definir um método de tratamento diferente para cada palavra sensível. Para obter detalhes, consulte Filtragem de palavras sensíveis.
nls_config.channel_id array[integer] Não O índice das trilhas de áudio a serem reconhecidas em um arquivo de áudio multitrilha. O índice começa em 0. Por exemplo, [0] reconhece a primeira faixa e [0, 1] reconhece a primeira e a segunda faixas ao mesmo tempo. Se você omitir este parâmetro, somente a primeira faixa será processada.
Cada faixa especificada é cobrada de forma independente. Por exemplo, solicitar [0, 1] para um único arquivo incorre em duas cobranças separadas.

Valor padrão: [0]. | | nls_config.diarization_enabled | boolean | Não | Se deve ativar a diarização do orador. Desativado por padrão. Aplica-se apenas ao áudio mono. O áudio multicanal não suporta diarização de alto-falante. Quando ativado, o resultado do reconhecimento inclui um speaker_id campo que distingue diferentes falantes. Quando a diarização do alto-falante estiver ativada, mantenha a duração do áudio em 2 horas. Caso contrário, o reconhecimento poderá falhar ou expirar.

Padrão: falso. Para um exemplo de speaker_id, consulte Descrição do resultado de reconhecimento. | | nls_config.speaker_count | integer | Não | Entra em vigor somente quando a diarização do alto-falante está habilitada (diarization_enabled está definido para true).

Um valor de referência para o número de alto-falantes. O intervalo válido é um número inteiro de 2 a 100 (inclusive). Por padrão, o número de alto-falantes é detectado automaticamente. Se você definir esse valor, ele apenas orientará o algoritmo para gerar a contagem especificada quando possível e não garantirá essa contagem exata. Nenhum valor padrão. | | nls_config.vocabulary_id | string | Não | O ID de uma lista de hot word pré-compilada. Gere esse ID antecipadamente chamando a API de criação de lista de palavras quentes. Passe o ID durante o reconhecimento para usar as palavras quentes da lista. Adequado para cenários onde o vocabulário é conhecido e relativamente estável, e onde é necessário reutilizar a mesma lista de palavras em solicitações. Para obter detalhes de uso, consulte Hotwords pré-compiladas. | | nls_config.input_context | array | Não | Uma lista de mensagens contendo contexto de conversação opcional para melhorar a precisão do reconhecimento. O contexto ajuda a melhorar o reconhecimento de termos específicos de domínio. Para uso, consulte Aprimoramento de contexto. Você pode incluir até 5 mensagens de cada tipo de contexto: input_text e text. Se este limite for excedido, apenas as 5 mensagens mais recentes de cada tipo serão retidas. O comprimento combinado do text campos no user e assistant as mensagens em cada turno não devem exceder 400 caracteres. Cada caractere conta como 1. O excesso de texto é truncado no final.

Ao incluir contexto, organize messages por turno de conversa. Em cada turno, o user mensagem (input_text tipo) deve preceder o correspondente assistant mensagem (text tipo). O user mensagem contendo input_audio deve ser a última mensagem do messages matriz.

Veja o exemplo abaixo desta tabela. | | nls_config.instant_vocabulary | object | Não | Hotwords instantâneas, passadas como pares de valores-chave. Cada chave é o texto da hotword (string), e cada valor é seu peso (integer). Nenhuma lista de hotwords pré-compilada é necessária. Use este parâmetro para hotwords temporárias em nível de sessão. Os pesos válidos são números inteiros de 1 a 5 ou 50. Um peso mais alto de 1 a 5 aumenta a probabilidade de o modelo gerar a hotword. Um peso de 50 define uma super hotword e melhora significativamente a recuperação. Você pode especificar até 50 super hotwords. Se você também configurar hotwords pré-compiladas, os dois conjuntos serão mesclados. Se o conjunto mesclado exceder 2.000 hotwords, 2.000 serão selecionadas aleatoriamente. Para uso, consulte Hotwords instantâneas. Somente qwen-audio-3.0-asr-flash-filetrans suporta hotwords instantâneas.

Veja o exemplo abaixo desta tabela. | | nls_config.language_hints | array[string] | Não | Os códigos de idioma a serem reconhecidos. Se você não conseguir determinar o idioma antecipadamente, deixe-o sem definição e o modelo detectará o idioma automaticamente. Para Qwen-Audio-3.0-ASR-Flash-Filetrans modelos, você pode configurar até 4 valores; quaisquer valores além dos 4 primeiros são ignorados. Para Fun-ASR modelos, você pode definir apenas 1 valor; se você definir vários, apenas o primeiro terá efeito.

Clique para ver os códigos de idioma aceitos

<ul><li>qwen-audio-3.0-asr-flash-filetrans, fun-asr:</li></ul> <ul><li>zh: chinês</li><li>pt: Inglês</li><li>sim: japonês</li><li>ko: Coreano</li><li>vi: vietnamita</li><li>º: Tailandês</li><li>id: indonésio</li><li>senhora: Malaio</li><li>tl: filipino</li><li>oi: hindi</li><li>ar: árabe</li><li>fr: francês</li><li>de: alemão</li><li>ex: espanhol</li><li>pt: Português</li><li>ru: russo</li><li>isso: italiano</li><li>nl: Holandês</li><li>sv: Sueco</li><li>da: dinamarquês</li><li>fi: Finlandês</li><li>não: norueguês</li><li>el: Grego</li><li>pl: Polonês</li><li>cs: Tcheco</li><li>hu: Húngaro</li><li>ro: romeno</li><li>bg: búlgaro</li><li>hr: Croata</li><li>sk: Eslovaco</li></ul> |

nls_config.input_context exemplo:

[
  {
    "role": "user",
    "content": [
      {
        "type": "input_text",
        "text": "你好啊,我是通义千问,有什么可以帮助你的?"
      }
    ]
  }
]

nls_config.instant_vocabulary exemplo:

{
  "张三": 5,
  "李四": 5
}

Interfaces principais

NativoNui

inicializar

Inicializa a instância do SDK de reconhecimento de fala. O SDK é um singleton. Não inicialize-o novamente antes de chamar release.

Esta interface é bloqueada, então chame-a em um thread que não seja da UI.

public synchronized int initialize(final INativeFileTransCallback callback,
                                   String parameters,
                                   final Constants.LogLevel level,
                                   final boolean save_log)
Parâmetro Tipo Descrição
callback INativeFileTransCallback A implementação da interface de retorno de chamada de eventos e dados.
parameters String Uma string JSON que contém os parâmetros de autenticação, conexão e depuração. Consulte Parâmetros de conexão e controle.
level Constants.LogLevel Controla o nível de impressão dos próprios logs do SDK.
save_log boolean Se os logs devem ser salvos localmente. Se true, especifique o caminho com debug_path em Parâmetros de conexão e controle e, opcionalmente, defina o tamanho do arquivo com max_log_file_size.

####setParams

Use esta interface para definir ou atualizar o nls_config parâmetros separadamente. Se você fornecer todos os parâmetros de uma vez em startFileTranscriber, você não precisa chamar esse método.

public synchronized int setParams(String params);
Parâmetro Tipo Descrição
params String O nls_config parâmetro em Parâmetros de reconhecimento de fala. Parâmetros diferentes de nls_config não pode ser definido através deste método.
Veja o exemplo abaixo desta tabela.

params exemplo:

{
    "nls_config": {
        "model":"qwen-audio-3.0-asr-flash-filetrans",
        "diarization_enabled": false
    }
}

startFileTranscriber

Inicia o reconhecimento.

public synchronized int startFileTranscriber(String params, byte[] task_id)
Parâmetro Tipo Descrição
params String Parâmetros de reconhecimento de fala.
Veja o exemplo abaixo desta tabela.
task_id byte[] O ID da tarefa. O SDK gera uma string aleatória internamente. Você obtém o task_id depois que esta interface retorna com sucesso.

params exemplo:

{
    "file_urls": [
        "{YOUR_AUDIO_URL}"
    ],
    "async_request": false,
    "nls_config": {
        "model":"qwen-audio-3.0-asr-flash-filetrans",
        "diarization_enabled": false
    }
}

queryFileTranscriber

Use esta interface para consultar o status atual e o resultado de uma tarefa assíncrona. Depois que a chamada for bem-sucedida, o resultado será retornado por meio do método EVENT_FILE_TRANS_QUERY_RESULT evento no onFileTransEventCallback retorno de chamada.

Obtenha o task_id passado para este método a partir do EVENT_FILE_TRANS_UPLOADED evento.

public synchronized int queryFileTranscriber(String task_id)
Parâmetro Tipo Descrição
task_id String O ID da tarefa a ser consultada, obtido do EVENT_FILE_TRANS_UPLOADED evento.

cancelarFileTranscriber

Cancela a tarefa atual imediatamente.

public synchronized int cancelFileTranscriber(String task_id)
Parâmetro Tipo Descrição
task_id String O ID da tarefa a ser cancelada, obtido do EVENT_FILE_TRANS_UPLOADED evento.

lançamento

Libera todos os recursos internos do SDK. Depois de chamar esse método, a instância do SDK fica inutilizável. Para usá-lo novamente, você deve chamar initialize para inicializá-lo novamente.

public synchronized int release();

Obter versão

Obtém as informações da versão atual do SDK.

public synchronized String GetVersion();

INativeFileTransCallback: retornos de chamada do ouvinte

onFileTransEventCallback: ouça eventos e resultados de reconhecimento

void onFileTransEventCallback(NuiEvent event, final int resultCode, final int arg2, AsrResult asrResult, String taskId);
Parâmetro Tipo Descrição
event Evento Nui O evento de retorno de chamada.
resultCode int O código de erro. Válido quando ocorre o evento EVENT_ASR_ERROR.
asrResult AsrResult O resultado do reconhecimento de fala.
taskId String O ID da tarefa.
arg2 int Um parâmetro reservado.

onFileTransLogTrackCallback: escuta logs de rastreamento

Esse retorno de chamada recebe logs internos detalhados do SDK para diagnóstico e depuração de problemas.

default void onFileTransLogTrackCallback(Constants.LogLevel level, String log)

NuiEvent: tipos de eventos

Evento Descrição
EVENTO_FILE_TRANS_CONNECTED A conexão de serviço foi bem-sucedida.
EVENTO_ARQUIVO_TRANS_UPLOADED O arquivo de áudio a ser reconhecido foi carregado com sucesso. Agora você pode obter o task_id da tarefa atual.
EVENTO_ARQUIVO_TRANS_QUERY_RESULT Uma consulta de resultado de tarefa.
EVENTO_ARQUIVO_TRANS_RESULT O resultado final do reconhecimento.
EVENTO_ASR_ERRO Ocorreu um erro durante o reconhecimento de fala.